神经驱动
具有矢量索引存储、上下文感知文档生成和代理工作流的AI原生工作空间。
特性
- 文档驱动器 --通过自动解析、分块和矢量索引上传和管理文档(PDF、DOCX、CSV、XLSX、TXT)。在分层文件夹系统中组织文件。
Document Drive
- 副驾驶 --对话式AI助手,具有可选择的文档上下文、知识中心范围和MCP工具集成。支持带有源引用的流式响应。
Copilot
- 语义搜索 --使用自然语言搜索所有文档。混合搜索通过pgvector将向量相似性与关键字匹配相结合。
Semantic Search
- 文件工厂 --基于人工智能的内容生成,结合您知识库中的RAG上下文。包括模板、摘要和问答。
Document Editor
- 自动化 --具有事件驱动触发器(文件上传、计划、webhook、手动)和可配置操作节点的可视化工作流构建器。支持条件逻辑、循环和并行执行。
Automations
Workflow Builder
- MCP工具 --通过模型上下文协议连接外部工具和服务。注册STDIO或HTTP服务器,发现它们的功能,并在Copilot和工作流中使用它们。
MCP Tools
- 知识中心 --精心策划的文档收藏,配备专用聊天界面。使用自动包含规则配置每个集线器的RAG设置。
Knowledge Hubs
- AI表格 --将文档中的结构化数据提取到可配置的表模式中。使用提取提示定义列并导出到CSV/JSON。
AI Tables
快速开始
使用Docker(推荐)
- 克隆存储库并复制环境文件:
cp .env.example .env
- 将API密钥添加到
.env:
OPENAI_API_KEY=your-key-here
# or
ANTHROPIC_API_KEY=your-key-here
- 启动所有服务:
docker-compose up --build
- 访问应用程序:
- 前端: http://localhost:3000
- 后端API: http://localhost:8000
- API文件: http://localhost:8000/docs
本地开发
后端
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
# Install dependencies
pip install -r requirements.txt
# Start PostgreSQL and Redis (via Docker or locally)
docker-compose up postgres redis -d
# Run database migrations
alembic upgrade head
# Start the server
uvicorn app.main:app --reload
前端
cd frontend
# Install dependencies
npm install
# Start development server
npm run dev
芹菜工人
cd backend
# Worker (background tasks)
celery -A app.worker.celery_app worker --loglevel=info
# Beat (scheduled tasks)
celery -A app.worker.celery_app beat --loglevel=info
建筑
NeuralDrive在后端使用六边形架构(端口和适配器),在前端使用Next.js App Router。
DMS/
├── backend/ # FastAPI backend (Python 3.11)
│ ├── app/
│ │ ├── api/v1/ # Route handlers
│ │ │ ├── auth.py # Authentication
│ │ │ ├── documents.py # Document CRUD & upload
│ │ │ ├── folders.py # Folder management
│ │ │ ├── search.py # Semantic & hybrid search
│ │ │ ├── generation.py # Content generation & RAG
│ │ │ ├── automations.py # Workflow automation
│ │ │ ├── mcp.py # MCP server management
│ │ │ ├── ai_tables.py # AI table operations
│ │ │ ├── knowledge_hubs.py# Knowledge hub management
│ │ │ └── hub_chat.py # Knowledge hub chat
│ │ │
│ │ ├── domain/ # Core business logic
│ │ │ ├── entities/ # Domain models (dataclasses)
│ │ │ ├── ports/ # Abstract interfaces (LLM, embedding, storage)
│ │ │ └── events/ # Domain events
│ │ │
│ │ ├── application/ # Use cases & services
│ │ │ └── services/ # Business logic orchestration
│ │ │ ├── agent_service.py # Unified agent executor
│ │ │ ├── agentic_rag_service.py # Two-stage RAG retrieval
│ │ │ ├── ingestion_service.py # Document processing
│ │ │ ├── search_service.py # Search operations
│ │ │ ├── generation_service.py # LLM generation
│ │ │ ├── automation_service.py # Workflow management
│ │ │ ├── mcp_service.py # MCP integration
│ │ │ ├── tool_registry.py # Tool discovery & management
│ │ │ ├── ai_table_service.py # AI table logic
│ │ │ ├── knowledge_hub_service.py
│ │ │ └── chat_service.py
│ │ │
│ │ ├── infrastructure/ # External implementations
│ │ │ ├── adapters/ # Port implementations
│ │ │ │ ├── llm/ # OpenAI, Anthropic, Ollama
│ │ │ │ ├── embedding/ # OpenAI, local sentence-transformers
│ │ │ │ ├── storage/ # Local filesystem, S3
│ │ │ │ └── web_search/ # Tavily
│ │ │ ├── database/ # SQLAlchemy models & repositories
│ │ │ └── parsers/ # PDF, DOCX, CSV, XLSX, TXT parsers
│ │ │
│ │ ├── worker/ # Celery background tasks
│ │ │ └── tasks/ # Ingestion, embedding, automation, AI table tasks
│ │ │
│ │ ├── config.py # Pydantic settings
│ │ ├── dependencies.py # FastAPI dependency injection
│ │ └── main.py # App factory & lifespan
│ │
│ ├── alembic/ # Database migrations
│ └── tests/ # pytest test suite
│
├── frontend/ # Next.js 14 frontend (TypeScript)
│ └── src/
│ ├── app/ # App Router pages
│ │ ├── copilot/ # AI assistant
│ │ ├── drive/ # File manager
│ │ ├── editor/ # Document editor
│ │ ├── search/ # Search interface
│ │ ├── automations/ # Workflow management & builder
│ │ ├── mcp/ # MCP server configuration
│ │ ├── ai-tables/ # AI table interface
│ │ ├── knowledge-hubs/ # Knowledge hub management & chat
│ │ └── settings/ # Application settings
│ ├── components/ # React components
│ │ ├── ui/ # Base UI components
│ │ ├── copilot/ # Copilot interface
│ │ ├── workflow/ # Workflow builder (ReactFlow)
│ │ ├── ai-tables/ # AI table components
│ │ ├── knowledge-hubs/ # Knowledge hub components
│ │ ├── drive/ # File browser
│ │ ├── editor/ # Rich text editor (TipTap)
│ │ └── settings/ # Settings & MCP config
│ ├── lib/api/ # API client modules
│ ├── stores/ # Zustand state stores
│ ├── hooks/ # Custom React hooks
│ └── types/ # TypeScript type definitions
│
└── docker-compose.yml # PostgreSQL, Redis, Backend, Celery, Frontend
API 参考
所有端点都以前缀 /api/v1.完整的互动文档可在 /docs 跑步时。
身份验证(/auth)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /auth/register | 注册新用户 |
| 职位 | /auth/login | 登录并获取JWT代币 |
| 职位 | /auth/refresh | 刷新访问令牌 |
| 得到 | /auth/me | 获取当前用户配置文件 |
文件(/documents)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /documents/upload | 上传文档文件 |
| 职位 | /documents/create | 创建文本文档 |
| 得到 | /documents/ | 列出文件 |
| 得到 | /documents/{id} | 获取文档详细信息 |
| 补丁 | /documents/{id}/content | 更新文档内容 |
| 得到 | /documents/{id}/download | 下载文档文件 |
| 删除 | /documents/{id} | 删除文档 |
| 职位 | /documents/{id}/reprocess | 重新处理文档 |
文件夹(/folders)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /folders/ | 创建文件夹 |
| 得到 | /folders/ | 按级别列出文件夹 |
| 得到 | /folders/{id} | 获取包含内容的文件夹 |
| 得到 | /folders/tree/all | 获取完整文件夹树 |
| 得到 | /folders/{id}/breadcrumb | 获取面包屑路径 |
| 补丁 | /folders/{id} | 更新文件夹 |
| 删除 | /folders/{id} | 删除文件夹 |
| 职位 | /folders/{id}/move | 移动文件夹 |
搜索(/search)
| 方法 | 端点 | 描述 |
|---|
| 得到 | /search/?q=query | 语义搜索 |
| 得到 | /search/hybrid?q=query | 混合搜索(矢量+关键字) |
| 得到 | /search/context?q=query | 获取RAG上下文 |
世代(/generation)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /generation/generate | 使用RAG生成内容 |
| 职位 | /generation/generate/agentic | 使用工具的代理RAG |
| 职位 | /generation/generate/stream | 流式生成内容 |
| 职位 | /generation/template | 从模板生成 |
| 职位 | /generation/summarize | 总结文档 |
| 职位 | /generation/ask | 与RAG一起回答问题 |
自动化(/automations)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /automations/ | 创建自动化 |
| 得到 | /automations/ | 列表自动化 |
| 得到 | /automations/{id} | 实现自动化 |
| 补丁 | /automations/{id} | 更新自动化 |
| 删除 | /automations/{id} | 删除自动化 |
| 职位 | /automations/{id}/pause | 暂停自动化 |
| 职位 | /automations/{id}/resume | 简历自动化 |
| 职位 | /automations/{id}/trigger | 手动触发自动化 |
| 得到 | /automations/{id}/runs | 获取跑步历史记录 |
| 得到 | /automations/meta/trigger-types | 列出触发器类型 |
| 得到 | /automations/meta/action-types | 列出操作类型 |
MCP服务器(/mcp)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /mcp/servers | 注册MCP服务器 |
| 得到 | /mcp/servers | 列出MCP服务器 |
| 得到 | /mcp/servers/{id} | 获取MCP服务器 |
| 补丁 | /mcp/servers/{id} | 更新MCP服务器 |
| 删除 | /mcp/servers/{id} | 删除MCP服务器 |
| 职位 | /mcp/servers/{id}/connect | 连接和发现工具 |
| 职位 | /mcp/servers/{id}/disconnect | 断开与服务器的连接 |
| 得到 | /mcp/servers/{id}/tools | 获取服务器工具 |
| 职位 | /mcp/servers/{id}/tools/{name} | 执行工具 |
AI表格(/ai-tables)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /ai-tables/ | 创建AI表 |
| 得到 | /ai-tables/ | 列出AI表 |
| 得到 | /ai-tables/{id} | 获取AI表 |
| PUT | /ai-tables/{id} | 更新AI表 |
| 删除 | /ai-tables/{id} | 删除AI表 |
| 职位 | /ai-tables/{id}/columns | 添加列 |
| PUT | /ai-tables/{id}/columns/{col_id} | 更新列 |
| 删除 | /ai-tables/{id}/columns/{col_id} | 删除列 |
| 得到 | /ai-tables/{id}/rows | 列出行 |
| 职位 | /ai-tables/{id}/rows | 手动添加行 |
| 职位 | /ai-tables/{id}/rows/process | 从文档中提取数据 |
| PUT | /ai-tables/{id}/rows/{row_id} | 更新行值 |
| 职位 | /ai-tables/{id}/rows/{row_id}/review | 标记行已审核 |
| 得到 | /ai-tables/{id}/export | 导出表(CSV/JSON) |
知识中心(/knowledge-hubs)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /knowledge-hubs/ | 创建中心 |
| 得到 | /knowledge-hubs/ | 列出枢纽 |
| 得到 | /knowledge-hubs/{id} | 获取中心 |
| PUT | /knowledge-hubs/{id} | 更新中心 |
| 删除 | /knowledge-hubs/{id} | 删除中心 |
| 职位 | /knowledge-hubs/{id}/documents | 添加文档 |
| 删除 | /knowledge-hubs/{id}/documents | 删除文档 |
| 职位 | /knowledge-hubs/{id}/folders | 添加文件夹 |
| 删除 | /knowledge-hubs/{id}/folders | 删除文件夹 |
| 职位 | /knowledge-hubs/{id}/rules | 添加包含规则 |
| 删除 | /knowledge-hubs/{id}/rules/{idx} | 删除规则 |
| 得到 | /knowledge-hubs/{id}/documents | 列出中心文档 |
| 职位 | /knowledge-hubs/{id}/refresh | 刷新中心索引 |
知识中心聊天(/knowledge-hubs/{hub_id}/chat)
| 方法 | 端点 | 描述 |
|---|
| 职位 | /chat/sessions | 创建聊天会话 |
| 得到 | /chat/sessions | 列出会话 |
| 得到 | /chat/sessions/{id} | 获取包含消息的会话 |
| 补丁 | /chat/sessions/{id} | 更新会话 |
| 删除 | /chat/sessions/{id} | 删除会话 |
| 职位 | /chat/sessions/{id}/archive | 存档会话 |
| 职位 | /chat/sessions/{id}/messages | 发送消息 |
| 职位 | /chat/sessions/{id}/messages/stream | 流消息(SSE) |
| 得到 | /chat/sessions/{id}/messages | 获取消息 |
配置
大语言模型提供商
NeuralDrive通过可插拔适配器模式支持多个LLM提供商。集 DEFAULT_LLM_PROVIDER 在 .env:
| 提供者 | 模型 | 配置 |
|---|
| 开放人工智能 | GPT-4、GPT-4涡轮增压器、GPT-3.5涡轮增压器 | OPENAI_API_KEY, OPENAI_MODEL |
| Anthropic | 克劳德3作品,十四行诗,俳句 | ANTHROPIC_API_KEY, ANTHROPIC_MODEL |
| 奥拉玛 | Llama 2、Mistral和其他当地模特 | OLLAMA_BASE_URL, OLLAMA_MODEL |
嵌入提供者
集 DEFAULT_EMBEDDING_PROVIDER 在 .env:
| 提供者 | 型号 | 尺寸 |
|---|
| 开放人工智能 | 文本嵌入-3小,文本嵌入-3大 | 1536 |
| 本地 | 全MiniLM-L6-v2(句子转换) | 384 |
存储后端
集 STORAGE_BACKEND 在 .env:
| 后端 | 配置 |
|---|
| 本地 | STORAGE_PATH (默认值: ./storage) |
| 第3页 | S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY |
网络搜索(可选)
集 ENABLE_WEB_SEARCH=true 并配置 TAVILY_API_KEY 在Copilot和代理工作流中启用网络搜索。
认证
基于JWT的身份验证。配置 SECRET_KEY, ALGORITHM (默认值:HS256),以及 ACCESS_TOKEN_EXPIRE_MINUTES (默认值:30)。
技术栈
后端
- 快速API --异步web框架
- SQLAlchemy 2.0 --异步ORM
- PostgreSQL+pgvector --具有向量相似性搜索的数据库
- Celery+Redis --后台任务处理与调度
- 蒸馏器 --数据库迁移
- Pydantic v2 --设置和请求/响应验证
- passlib+python jose --身份验证(JWT+bcrypt)
前端
- Next.js 14 --React框架(App Router)
- TypeScript --型式安全
- TanStack查询 --数据提取和缓存
- 状态 --国家管理(与伊默)
- TipTap 的 --富文本编辑器
- 反应器流量 --工作流可视化
- Tailwind CSS --造型
- React Dropzone --文件上传
基础设施
- Docker Compose --编排(PostgreSQL、Redis、后端、Celery Worker、Celery Beat、前端)
许可证
麻省理工学院