# ag_vector **Repository Path**: zqystudy/ag_vector ## Basic Information - **Project Name**: ag_vector - **Description**: 格向量检索服务 - 基于LangChain和Chroma的智能检索系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-28 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 表格向量检索服务 基于LangChain和Chroma的表格行级向量检索系统,支持Excel/CSV文件的智能检索。 ## 特性 - ✅ 支持Excel多Sheet加载 - ✅ 支持CSV文件加载 - ✅ 每行作为独立向量存储 - ✅ RESTful API接口 - ✅ 完整的日志系统 - ✅ 自动处理长文本截断 - ✅ 支持元数据过滤检索 - ✅ Swagger API文档 ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash # Windows CMD set DASHSCOPE_API_KEY=your_api_key # Windows PowerShell $env:DASHSCOPE_API_KEY="your_api_key" # Linux/Mac export DASHSCOPE_API_KEY=your_api_key ``` ### 3. 启动服务 ```bash python api_server.py ``` 服务将运行在 http://127.0.0.1:8000 ### 4. 访问API文档 打开浏览器访问:http://127.0.0.1:8000/docs ## API接口 ### 上传文件 ```bash POST /api/v1/upload ``` **参数:** - `file`: Excel或CSV文件 - `load_all_sheets`: 是否加载所有sheet(默认false) - `source_column`: 来源列名(可选) - `content_column`: 内容列名(可选) **示例:** ```bash curl -X POST "http://127.0.0.1:8000/api/v1/upload" \ -F "file=@data.xlsx" \ -F "load_all_sheets=true" \ -F "source_column=标题" \ -F "content_column=正文" ``` ### 检索 ```bash POST /api/v1/search ``` **请求体:** ```json { "query": "餐饮发票如何入账", "top_k": 5, "filter_dict": {"sheet_name": "税筹划"}, "with_score": true } ``` ### 查看统计信息 ```bash GET /api/v1/stats ``` ### 查看存储的文档 ```bash GET /api/v1/documents?limit=10 ``` ### 清空数据库 ```bash DELETE /api/v1/clear ``` ## 项目结构 ``` rag_vector/ ├── api_server.py # FastAPI服务 ├── table_vector_service.py # 核心向量服务 ├── config.py # 配置文件 ├── requirements.txt # 依赖包 ├── .env.example # 环境变量示例 ├── .gitignore # Git忽略文件 └── README.md # 说明文档 ``` ## 配置说明 在 `config.py` 中可以修改: - `DASHSCOPE_API_KEY`: DashScope API密钥 - `VECTOR_DB_PATH`: 向量数据库存储路径 - `EMBEDDING_MODEL`: Embedding模型名称 - `DEFAULT_TOP_K`: 默认返回结果数量 - `API_PORT`: API服务端口 ## 技术栈 - **FastAPI**: Web框架 - **LangChain**: LLM应用框架 - **Chroma**: 向量数据库 - **DashScope**: 阿里云Embedding服务 - **Pandas**: 数据处理 ## 注意事项 1. 首次使用需要设置 `DASHSCOPE_API_KEY` 环境变量 2. 文本长度限制为8000字符(DashScope限制8192) 3. 数据会持久化保存,重启服务后仍然存在 4. 如需重新加载数据,先调用 `/api/v1/clear` 清空数据库 ## 常见问题 ### Q: 如何处理多Sheet的Excel文件? A: 上传时设置 `load_all_sheets=true` 参数。 ### Q: 如何查看已加载的数据? A: 使用 `/api/v1/stats` 查看统计信息,或使用 `/api/v1/documents` 查看具体文档。 ### Q: 文本过长怎么办? A: 系统会自动截断超过8000字符的文本,并在日志中提示。 ### Q: 如何过滤检索结果? A: 在检索时使用 `filter_dict` 参数,例如 `{"sheet_name": "税筹划"}`。 ## 许可证 MIT License ## 作者 AI_Big_Model_RAG_Agent_Dev