mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 13:05:18 +00:00
- 重构工作流模块目录结构,迁移代码文件 - 修复类型断言空值安全问题,添加 ! 操作符 - 优化样式类名,替换 flex-cc 为标准 flex 工具类 - 更新路由标签简化文案,移除冗余注释 - 调整 ruff 配置,放宽行长度限制 - 更新 README 与多语言文案,优化项目描述 - 修复表单、图表组件的类型与样式问题 - 简化搜索表单、数据卡片的布局代码
69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
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:
|
|
"""
|
|
创建带 Agent 的 Team 实例。
|
|
|
|
参数:
|
|
- user_id (str): 用户标识。
|
|
- dept_id (str): 部门/团队标识。
|
|
- session_id (str): 会话 ID。
|
|
- db (Any | None): Agno 持久化数据库实例,可选。
|
|
|
|
返回:
|
|
- 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
|