logo
0
0
Login

AI Agent Backend Service

这是一个基于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

  1. 注册 Agent,使用 agent.json 来注册,注意需要修改 endpoint 的值为实际后端地址
  2. 注册 Agent 的请求为:POST /enterprises/{{enteprise-id}}/agents 需要在浏览器console进行注册
  3. 其他接口参考: https://zhiyan.woa.com/plugin_ifbook/15362/repo/#/ifbook/repo/ifbook-managed/ver/baseline/interface/ifbif-cW8qMEvxRi/detail
  4. 详细内容参考 https://iwiki.woa.com/p/4013359652?from=back_link

二、部署后端endpoint

  1. 克隆项目到本地
  2. 安装依赖:
pip install -r requirements.txt

配置

在运行服务前,需要设置以下配置:

  1. CODING平台访问令牌,这里需要使用个管理员的个人令牌
  2. AI模型访问配置

运行

启动服务:

python main.py

服务将在 http://0.0.0.0:16000 启动。

API接口

1. 健康检查

GET /

返回服务运行状态。

2. 智能助手接口

POST /issue

支持以下功能:

  • 项目列表查询
  • 需求列表获取
  • AI对话实现建议

请求参数示例:

{ "agent": "coding", "command": "implementation", "contextVariables": [ { "name": "userInfo", "value": { "id": "user_id", "name": "username", "nickname": "nickname" } } ] }

开发说明

主要模块

  1. FastAPI应用(main.py)

    • 处理HTTP请求
    • 管理用户会话
    • 集成各个功能模块
  2. CODING API(coding_api.py)

    • 封装CODING平台API调用
    • 处理项目和需求数据
  3. AI对话(aicopilot.py)

    • 管理AI模型交互
    • 处理对话流

数据模型

项目使用Pydantic模型进行数据验证,主要包括:

  • UserInfo: 用户信息
  • IssueRequest: 请求参数
  • TreeNode: 项目树节点
  • TreeResponse: 响应数据结构

错误处理

服务实现了完整的错误处理机制:

  • HTTP异常处理
  • API调用异常处理
  • 数据验证错误处理

日志

使用Python标准库logging模块,配置了详细的日志记录:

  • 请求/响应日志
  • 错误追踪
  • API调用记录

About

No description, topics, or website provided.
Language
Python81.2%
Markdown18.4%
Others0.4%