README.md 3.8 KB

Knowledge Agent API

基于 FastAPI + LangGraph 的智能内容识别和结构化处理服务。

🚀 快速开始

1. 安装依赖

pip install -r requirements.txt

2. 启动服务

方式一:使用启动脚本(推荐)

./start_service.sh

方式二:直接运行

python3 agent.py

方式三:使用 uvicorn

uvicorn agent:app --host 0.0.0.0 --port 8080 --reload

3. 访问服务

📚 API 接口

POST /parse

同步解析内容处理

请求体:

{
  "requestId": "your_request_id"
}

响应:

{
  "requestId": "your_request_id",
  "processed": 5,
  "success": 4,
  "details": [
    {
      "index": 1,
      "dbInserted": true,
      "identifyError": null,
      "status": "success"
    }
  ]
}

POST /parse/async

异步解析内容处理(后台任务)

请求体:

{
  "requestId": "your_request_id"
}

响应:

{
  "requestId": "your_request_id",
  "status": "processing",
  "message": "任务已提交到后台处理"
}

GET /health

健康检查接口

响应:

{
  "status": "healthy",
  "timestamp": 1703123456.789
}

🔧 配置

环境变量

  • GEMINI_API_KEY: Gemini API 密钥(必需)

LangSmith 配置

系统支持 LangSmith 追踪功能,可以通过 .env 文件配置:

  1. .env 文件中配置: ```bash

    启用 LangSmith 追踪

    LANGCHAIN_TRACING_V2=true

LangSmith API 端点

LANGCHAIN_ENDPOINT=https://api.smith.langchain.com

你的 LangSmith API 密钥

LANGCHAIN_API_KEY=your_langsmith_api_key_here

项目名称(可选)

LANGCHAIN_PROJECT=knowledge-agent


3. 重启服务即可生效

**注意**: 如果没有配置 `.env` 文件或相关环境变量,系统将自动禁用 LangSmith 追踪以避免网络连接错误。

### 数据库配置

在 `utils/mysql_db.py` 中配置数据库连接信息。

## 📁 项目结构

knowledge-agent/ ├── agent.py # FastAPI + LangGraph 主服务文件 ├── agent_tools.py # 核心工具类 ├── gemini.py # Gemini API 处理器 ├── indentify/ # 内容识别模块 │ ├── image_identifier.py # 图像识别 │ ├── video_identifier.py # 视频识别 │ └── indentify.py # 识别主逻辑 ├── structure/ # 结构化处理模块 │ └── structure_processor.py ├── utils/ # 工具模块 │ ├── mysql_db.py # 数据库操作 │ ├── logging_config.py # 日志配置 │ └── file.py # 文件操作 ├── prompt/ # 提示词模板 ├── requirements.txt # 依赖包列表 └── start_service.sh # 启动脚本 ```

🎯 核心功能

  1. 内容识别: 支持图像和视频的智能识别
  2. 结构化处理: 使用 Gemini API 进行内容结构化
  3. 数据存储: 自动存储处理结果到数据库
  4. 异步处理: 支持后台异步任务处理
  5. RESTful API: 现代化的 HTTP API 接口
  6. 工作流管理: 基于 LangGraph 的强大流程控制
  7. 状态管理: 完整的处理状态跟踪和错误处理

🚨 注意事项

  1. 确保设置了正确的 GEMINI_API_KEY 环境变量
  2. 确保数据库连接配置正确
  3. 服务默认监听 8080 端口,可通过参数修改

🔍 故障排除

常见问题

  1. 导入错误: 确保所有依赖已正确安装
  2. 数据库连接失败: 检查数据库配置和网络连接
  3. Gemini API 错误: 验证 API 密钥是否正确

日志查看

服务运行时会输出详细日志,包括:

  • 请求处理状态
  • 错误信息
  • 处理进度
  • 性能指标