Go to file
eason 42d432acb1 feat: 添加低空飞行相关文档和测试文档
- 新增低空飞行政策法规及技术规范文档
- 添加测试文档以验证文档处理和向量化功能
- 更新数据库以支持新文档的存储和检索
2026-01-22 16:19:04 +08:00
alembic chore: 提交所有代码 2026-01-21 13:45:39 +08:00
apps/drgraph chore: 提交所有代码 2026-01-21 13:45:39 +08:00
data feat: 添加低空飞行相关文档和测试文档 2026-01-22 16:19:04 +08:00
scripts feat: 添加 Zhipu 嵌入模型支持并修复 Python 3.9 兼容性问题 2026-01-22 16:18:29 +08:00
test chore: 提交所有代码 2026-01-21 13:45:39 +08:00
th_agenter feat: 添加 Zhipu 嵌入模型支持并修复 Python 3.9 兼容性问题 2026-01-22 16:18:29 +08:00
utils chore: 提交所有代码 2026-01-21 13:45:39 +08:00
webIOs/configs chore: 提交所有代码 2026-01-21 13:45:39 +08:00
.gitignore chore: 提交所有代码 2026-01-21 13:45:39 +08:00
README.md feat: 添加 Zhipu 嵌入模型支持并修复 Python 3.9 兼容性问题 2026-01-22 16:18:29 +08:00
alembic.ini chore: 提交所有代码 2026-01-21 13:45:39 +08:00
check_db_constraint.py chore: 提交所有代码 2026-01-21 13:45:39 +08:00
check_jwt.py chore: 提交所有代码 2026-01-21 13:45:39 +08:00
docker-compose.yml chore: 提交所有代码 2026-01-21 13:45:39 +08:00
env03_db.txt chore: 提交所有代码 2026-01-21 13:45:39 +08:00
knowledge.txt feat: 添加低空飞行相关文档和测试文档 2026-01-22 16:19:04 +08:00
main.py chore: 提交所有代码 2026-01-21 13:45:39 +08:00
requirements.txt chore: 提交所有代码 2026-01-21 13:45:39 +08:00
vl_main.py chore: 提交所有代码 2026-01-21 13:45:39 +08:00

README.md

项目简介

这是一个基于 FastAPI 的后端服务,提供「智能工作流」「知识库问答」「数据库智能查询」等能力,前端可以通过 REST API 调用这些能力。

主要目录结构(前端常用关注点)

  • th_agenter/api/endpoints/:对外 HTTP 接口(路由)
    • auth.py:登录、鉴权相关接口
    • users.py / roles.py:用户与角色管理
    • chat.py / smart_chat.py / smart_query.py:普通聊天、智能问答、智能查询
    • knowledge_base.py:知识库管理(上传文档、构建向量库、检索)
    • workflow.py:工作流定义、获取、执行等接口
  • th_agenter/services/业务逻辑层API 绝大部分会调用这里
    • workflow_engine.py / smart_workflow.py:工作流执行引擎与智能工作流封装
    • knowledge_chat.py / document_processor.py / embedding_factory.py:知识库问答、向量检索、文档处理
    • auth.py / user.py 等:账号、权限等业务
  • th_agenter/schemas/Pydantic 模型,定义接口请求/响应的数据结构
  • th_agenter/models/SQLAlchemy 模型,对应数据库表结构
  • th_agenter/core/:应用配置、上下文、中间件、异常处理、权限控制等
  • th_agenter/db/数据库连接、基础模型、Alembic 迁移脚本封装
  • utils/:日志(util_log.py)、文件、环境、异常等通用工具
  • scripts/:本地开发相关脚本(如 start_local.shinstall_mysql.sh 等)
  • data/:本地数据与向量库文件(如 Chroma 存储)

核心能力与典型接口

  • 鉴权与用户体系

    • 登录、Token 相关接口在 auth.py 中定义,一般使用 Bearer Token 放在 Authorization 头里。
    • 用户、角色、权限相关接口在 users.pyroles.pycore/simple_permissions.py 等文件中。
  • 聊天与智能问答

    • 普通聊天接口:chat.py
    • 智能聊天 / 智能问答:smart_chat.pysmart_query.pylangchain_chat.py
    • 有些接口可能支持流式返回或长连接(如 SSE可直接查看对应 endpoint 的返回类型。
  • 知识库管理

    • 相关接口在 knowledge_base.py 中,业务逻辑在 services/knowledge_base.pyservices/document_processor.pyservices/knowledge_chat.py 中。
    • 支持上传文档(通常是 multipart、构建向量库、基于文档进行问答。
  • 工作流引擎

    • 路由在 workflow.py,核心执行逻辑在 services/workflow_engine.pyservices/smart_workflow.pyservices/workflow_engine.py 中。
    • 支持定义工作流、查询工作流详情、执行工作流,并在执行过程中写入日志/上下文(如 session.desc)。

前端对接小提示

  • 接口文档:服务启动后可以访问 http://localhost:8000/docs 查看 Swagger 文档(或 /redoc)。
  • 认证方式:大多需要携带 Authorization: Bearer <token>,具体登录接口与返回字段可在 auth.py 与对应 schemas 中查看。
  • 上传文件:知识库相关接口通常使用 multipart/form-data,前端可以用 FormData 构造请求。
  • 错误格式:统一使用 FastAPI 的 JSON 错误响应格式,并在 core/exceptions.py 中做了封装,前端可以根据 code/detail 等字段做统一处理。
  • 调试追踪:很多服务里会给 session.desc 等字段写入本次请求的行为描述(例如「获取工作流引擎」),方便在日志中排查问题。

启动项目(本地)

  1. 准备环境

    • 推荐 Python 3.11+
    • 创建并激活虚拟环境:python3 -m venv .venv && source .venv/bin/activate
    • 依赖安装:pip install -r requirements.txt(若 requirements.txt 为 UTF-16需要先转 UTF-8
  2. 配置数据库

    • 确保本地 MySQL 运行,并创建数据库/账号(例):
      CREATE DATABASE allm DEFAULT CHARACTER SET utf8mb4;
      ALTER USER 'root'@'localhost' IDENTIFIED BY '*******';
      GRANT ALL PRIVILEGES ON allm.* TO 'root'@'localhost';
      FLUSH PRIVILEGES;
      
    • 启动前设置环境变量:
      export DATABASE_URL="******"
      
  3. 迁移(首次必跑)

    python -m alembic upgrade head
    
  4. 启动服务

    # 启动项目命令
    python3 -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
    
  5. 查看日志

    tail -f /tmp/uvicorn.log