# AI Knowledge Explorer

> Drop files - documents or source code - into a chatbot. The agent extracts entities, concepts, and relationships (or modules, classes, functions, and dependencies), then renders an interactive knowledge graph you can explore.

- Source: https://doutorai.pt/en/apps/ai-knowledge-explorer
- Category: Generative Interfaces
- Difficulty: Advanced
- Models: OpenAI, Claude, Gemini
- Frameworks: CrewAI, LangChain, AutoGen/AG2
- Runs locally?: Needs cloud APIs
- Required keys: OPENAI_API_KEY, SECRET_KEY
- License: Apache-2.0
- Site: Doutor AI (https://doutorai.pt/en) - AI tools for small businesses

## Full tutorial

# AI Knowledge Explorer

Drop files - documents or source code - into a chatbot. The agent extracts entities, concepts, and relationships (or modules, classes, functions, and dependencies), then renders an interactive knowledge graph you can explore.

Click a node to see details. Double-click to expand it - the agent extracts sub-concepts (or sub-components for code) and adds them to the graph. Ask questions in chat to navigate.

![Demo](/assets/apps-img/20e57c71c60a8911.gif)

## How It Works

1. **Drop files** - drag documents (`.txt`, `.md`, `.json`, `.csv`) or code files (`.py`, `.ts`, `.js`, `.java`, `.go`, `.rs`, and more) onto the canvas
2. **Agent extracts** - the LLM identifies structure: entities and concepts for text, modules and functions for code
3. **Graph renders** - nodes and edges appear as the agent processes each file
4. **You explore** - click nodes, expand them, ask questions, steer the agent

## Architecture

- **Shared state**: The knowledge graph (nodes + edges) lives in agent state and syncs bidirectionally via CopilotKit v2
- **Generative UI**: Each tool call produces visible changes - new nodes, new edges, expanded detail
- **Human-in-the-loop**: Click to select, double-click to expand, chat to steer

### Tech Stack

| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS 4 |
| Agent | LangGraph (Python), CopilotKit Middleware |
| Graph | react-force-graph-2d |
| LLM | OpenAI (configurable via env) |
| Protocol | AG-UI (state streaming) |

**On the default model (`gpt-4o`)**: extraction (`extract_knowledge`, `find_connections`, `expand_node`) works by prompting the model to return raw JSON and parsing it - there's no function-calling schema or structured-output mode tuned specifically to gpt-4o, so any model with solid instruction-following should work as a drop-in swap via `OPENAI_MODEL`. gpt-4o was picked as a well-understood, inexpensive baseline for reliably following the "return only JSON" instruction, not because it was benchmarked against newer models for this task. If you swap in a newer or reasoning-focused model, expect it to work, but re-verify the "ONLY valid JSON" instruction is still being honored (some models wrap output in explanation or markdown even when told not to).

## Prerequisites

- Node.js 18+
- Python 3.12
- [uv](https://docs.astral.sh/uv/) - the agent's Python dependencies are managed with uv, and `npm install` runs `uv sync` automatically. Install it with `curl -LsSf https://astral.sh/uv/install.sh | sh` (macOS/Linux) or `powershell -c "irm https://astral.sh/uv/install.ps1 | iex"` (Windows). uv fetches Python 3.12 for you if it isn't already installed.

## Setup

```bash
# 1. Install dependencies (also runs `uv sync` for the Python agent)
npm install

# 2. Set your API key
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY

# 3. Start the app
npm run dev
```

This starts both the Next.js frontend (port 3000) and the LangGraph agent (port 8125). On Windows the same `npm` scripts run the `.bat` equivalents under `scripts/`.

## Example Content

Two built-in example sets let you try both modes - click the buttons on the empty state to load them instantly.

**Documents** - 3 markdown files about AI agents:
- `what-are-agents.md` - defines agents, core components (LLM, tools, memory, planning)
- `agent-frameworks.md` - compares LangGraph, CrewAI, AutoGen, CopilotKit
- `agent-challenges.md` - hallucination, tool reliability, evaluation, cost, security

Expected graph: ~15-22 nodes, ~20-33 edges covering the AI agent ecosystem.

**Codebase** - 3 Python files forming a FastAPI auth system:
- `auth.py` - JWT token creation, password hashing, TokenService class
- `routes.py` - login, register, refresh endpoints, dependency injection
- `models.py` - SQLAlchemy User, Post, AuditLog models

Expected graph: ~20 nodes showing modules, classes, functions, and their imports/calls/extends relationships.

## Agent Tools

| Tool | Purpose |
|---|---|
| `extract_knowledge` | Parse documents or code, extract entities/concepts/relationships or modules/classes/functions |
| `find_connections` | Discover deeper links between existing nodes |
| `expand_node` | Deep-dive into a node - adds sub-concepts and detail |

## Project Structure

```
ai-knowledge-explorer/
├── agent/                    # Python LangGraph agent
│   ├── main.py               # Agent entry point
│   └── src/
│       ├── state.py           # KnowledgeState schema
│       └── tools.py           # extract, connect, expand tools
├── src/                       # Next.js frontend
│   ├── app/
│   │   ├── page.tsx           # Main page (chat + graph canvas)
│   │   ├── layout.tsx         # CopilotKit v2 provider
│   │   └── api/
│   │       ├── copilotkit/    # CopilotKit runtime route
│   │       └── upload/        # File upload endpoint
│   ├── components/
│   │   ├── KnowledgeGraph.tsx  # Force-directed graph visualization
│   │   ├── NodeDetail.tsx      # Detail panel on node select
│   │   └── ToolReasoning.tsx   # Tool call status indicators
│   ├── hooks/
│   │   ├── use-knowledge-ui.tsx
│   │   └── use-suggestions.tsx
│   └── lib/
│       ├── types.ts            # KnowledgeNode, KnowledgeEdge types
│       └── example-content.ts  # Built-in example documents and code
├── package.json
└── .env.example
```

## Save hours every week with AI, no hassle

**Doutor AI** gives you 1,859 ready-to-copy AI prompts, by industry and in plain English - plus a complete technical library for those who want to go further. [See plans →](https://doutorai.pt/en/pricing)

---
Content by Doutor AI (https://doutorai.pt/en). When quoting, please cite the source: https://doutorai.pt/en/apps/ai-knowledge-explorer
