使用说明
CSV到嵌入MCP服务器
一个现代的、基于代理的MCP服务器,具有一个网络聊天界面,可以处理CSV文件,创建嵌入,将它们与pgvector一起存储在PostgreSQL中,并通过网络搜索提供具有基础功能的语义搜索。
建筑
- 基于代理:用于不同职责的模块化代理
- 可扩展的:关注点清晰分离,易于扩展
- 类型安全:具有严格类型检查的完整TypeScript
- 矢量数据库:PostgreSQL,带pgvector用于嵌入存储和搜索
- 网页用户界面:现代React/Next.js聊天界面
特性
- 📊 CSV摄取和解析
- 🧠 OpenAI嵌入生成
- 🔍 PostgreSQL pgvector存储和语义搜索
- 🌐 网络搜索基础
- 🤖 基于代理的体系结构
- 💬 现代网络聊天界面
- 📝 综合录井
快速开始
1.安装所有依赖项
npm run install:all
或单独安装:
npm install # Backend dependencies
npm run frontend:install # Frontend dependencies
2.配置环境
创建一个 .env 根目录下的文件:
# PostgreSQL Configuration
PG_HOST=localhost
PG_PORT=5432
PG_DATABASE=vector_db
PG_USER=postgres
PG_PASSWORD=postgres
PG_TABLE_NAME=embeddings
# OpenAI Configuration
OPENAI_API_KEY=your_openai_key_here
SERPER_API_KEY=your_serper_key_here # Optional
# Server Configuration
PORT=3030
LOG_LEVEL=info
# Embedding Configuration
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSIONS=512
⚠️ 重要:你需要安装PostgreSQL pg向量 扩展已启用。
3.建造
npm run build
npm run frontend:build
4.跑步
开发模式 (热重新加载):
# Terminal 1: Start HTTP backend server
npm run dev:http
# Terminal 2: Start frontend
npm run frontend:dev
生产模式:
npm run start:http # Backend on port 3030
npm run frontend:build && cd frontend && npm start # Frontend on port 3000
5.打开浏览器
导航至 http://localhost:3000
用法
- 上传CSV:点击“上传CSV”并选择您的文件
- 提出问题:键入有关数据的问题
- 获取AI答案:系统搜索嵌入并提供上下文感知响应
- 查看源代码:查看哪些记录提供了答案
- Web接地:来自网络搜索的其他上下文(如果启用)
项目结构
src/-后端TypeScript源代码services/-核心服务(CSV、嵌入、PostgreSQL等)agents/-代理编排httpServer.ts-HTTP API服务器index.ts-MCP服务器(可选)
frontend/-Next.js React前端app/-页面和API路线page.tsx-聊天界面
example-data/-CSV文件示例
API终点
POST /api/chat-与知识库聊天POST /api/ingest-上传和摄取CSVPOST /api/search-语义搜索GET /api/stats-获取索引统计信息
建筑细部
看 建筑.md 详细的系统设计。
许可证
麻省理工学院
