mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-23 13:13:09 +00:00
feat(ai): 重构AI聊天模块,使用agno框架替代langchain
- 移除langchain相关依赖,引入agno作为大模型开发框架 - 重构聊天会话和消息存储,使用agno的TeamSession管理 - 合并chat_message和chat_session模块为统一的chat模块 - 更新前端API和类型定义,适配新的后端接口 - 优化数据库日志字段类型,根据数据库类型自动选择 - 重构AI助手组件,使用新的聊天API - 清理不再使用的模型、控制器和服务代码
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
from typing import Any
|
||||
|
||||
from agno.agent import Agent
|
||||
from agno.models.openai.like import OpenAILike
|
||||
from agno.team import Team
|
||||
|
||||
from app.config.setting import settings
|
||||
|
||||
|
||||
class AgnoFactory:
|
||||
"""Agno 工厂类 - 统一管理 Agent、Team 创建逻辑"""
|
||||
# 配置常量
|
||||
AGENT_DESCRIPTION = "你是一个有用的AI助手,可以帮助用户回答问题和提供帮助。"
|
||||
AGENT_INSTRUCTIONS = ["保持回答简洁明了", "如果不确定,请说明"]
|
||||
AGENT_EXPECTED_OUTPUT = "中文回答"
|
||||
AGENT_TEMPERATURE = 0.7
|
||||
NUM_HISTORY_RUNS = 3
|
||||
|
||||
def create_agent(
|
||||
self,
|
||||
user_id: str,
|
||||
dept_id: str,
|
||||
session_id: str,
|
||||
db: Any | None = None
|
||||
) -> Team:
|
||||
"""创建 Team 实例"""
|
||||
|
||||
# 创建 Agent
|
||||
fastapiadmin_agent = Agent(
|
||||
id=user_id,
|
||||
name="fastapiadmin_agent",
|
||||
role="You are a helpful AI assistant",
|
||||
description=self.AGENT_DESCRIPTION,
|
||||
tools=[],
|
||||
)
|
||||
|
||||
# 创建 Team
|
||||
fastapiadmin_team = Team(
|
||||
id=dept_id,
|
||||
user_id=user_id,
|
||||
session_id=session_id,
|
||||
model=OpenAILike(
|
||||
id=settings.OPENAI_MODEL,
|
||||
api_key=settings.OPENAI_API_KEY,
|
||||
base_url=settings.OPENAI_BASE_URL,
|
||||
temperature=self.AGENT_TEMPERATURE,
|
||||
),
|
||||
members=[fastapiadmin_agent],
|
||||
instructions=self.AGENT_INSTRUCTIONS,
|
||||
expected_output=self.AGENT_EXPECTED_OUTPUT,
|
||||
add_datetime_to_context=True,
|
||||
add_history_to_context=True,
|
||||
markdown=True,
|
||||
num_history_runs=self.NUM_HISTORY_RUNS,
|
||||
input_schema=None,
|
||||
output_schema=None,
|
||||
parse_response=True,
|
||||
read_chat_history=True,
|
||||
db=db,
|
||||
)
|
||||
|
||||
return fastapiadmin_team
|
||||
Reference in New Issue
Block a user