这是一个基于FastAPI的后端服务,提供AI智能助手功能,集成了CODING平台的项目管理能力和AI模型的对话能力。
-
项目管理集成
- 支持查询用户的项目列表
- 支持搜索特定关键词的项目
- 支持查看项目的需求列表
- 提供树形结构展示项目和需求
-
AI对话能力
- 支持流式对话响应
- 支持自定义对话模型参数
- 提供智能需求分析和实现建议
-
具体流程
- 用户通过 @coding 发起提问,提问的时候,可以携带“关键字”
- coding agent 会根据 “关键字” 查询该用户在 CODING 平台的项目列表,并用树形结构展示
- 用户点击某个项目,coding agent 会自动查询项目的需求列表
- 鼠标悬停到某个需求上的时候,会展示需求详情
- 点击某个需求的时候,会使用需求详情作为输入,请求 #codebase 的内容,从本地召回相关代码
- 将需求详情 和 #codebase 的内容,给到模型,让模型给出需求实现方案
- FastAPI: 现代、快速的Web框架
- Python 3.x: 编程语言
- aiohttp: 异步HTTP客户端/服务器
- Pydantic: 数据验证
- uvicorn: ASGI服务器
.
├── main.py # 主应用入口,包含FastAPI应用和路由
├── coding_api.py # CODING平台API封装
├── aicopilot.py # AI对话能力封装
└── requirements.txt # 项目依赖
一、注册Agent
- 注册 Agent,使用 agent.json 来注册,注意需要修改 endpoint 的值为实际后端地址
- 注册 Agent 的请求为:POST /enterprises/{{enteprise-id}}/agents 需要在浏览器console进行注册
- 其他接口参考: https://zhiyan.woa.com/plugin_ifbook/15362/repo/#/ifbook/repo/ifbook-managed/ver/baseline/interface/ifbif-cW8qMEvxRi/detail
- 详细内容参考 https://iwiki.woa.com/p/4013359652?from=back_link
二、部署后端endpoint
- 克隆项目到本地
- 安装依赖:
pip install -r requirements.txt
在运行服务前,需要设置以下配置:
- CODING平台访问令牌,这里需要使用个管理员的个人令牌
- AI模型访问配置
启动服务:
python main.py
服务将在 http://0.0.0.0:16000 启动。
GET /
返回服务运行状态。
POST /issue
支持以下功能:
请求参数示例:
{
"agent": "coding",
"command": "implementation",
"contextVariables": [
{
"name": "userInfo",
"value": {
"id": "user_id",
"name": "username",
"nickname": "nickname"
}
}
]
}
-
FastAPI应用(main.py)
-
CODING API(coding_api.py)
- 封装CODING平台API调用
- 处理项目和需求数据
-
AI对话(aicopilot.py)
项目使用Pydantic模型进行数据验证,主要包括:
- UserInfo: 用户信息
- IssueRequest: 请求参数
- TreeNode: 项目树节点
- TreeResponse: 响应数据结构
服务实现了完整的错误处理机制:
- HTTP异常处理
- API调用异常处理
- 数据验证错误处理
使用Python标准库logging模块,配置了详细的日志记录: