feat(system):优化后端
1.新增后端测试 2.增加了后端的加密 3.增加了i18n(国际化)
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from typing import Sequence, Any
|
||||
|
||||
from pydantic_ai import Agent
|
||||
from pydantic_ai.models.openai import OpenAIChatModel
|
||||
from pydantic_ai.models.anthropic import AnthropicModel
|
||||
@@ -20,6 +22,8 @@ from pydantic_ai.providers.openai import OpenAIProvider
|
||||
from pydantic_ai.providers.anthropic import AnthropicProvider
|
||||
from pydantic_ai.providers.deepseek import DeepSeekProvider
|
||||
from pydantic_ai.providers.google import GoogleProvider
|
||||
from pydantic_ai.toolsets import AbstractToolset
|
||||
|
||||
from kilostar.core.global_state_machine.model_provider import Provider
|
||||
from kilostar.utils.agent_model import ResponseModel, DepsModel
|
||||
from kilostar.utils.error import ModelNotExistError
|
||||
@@ -30,6 +34,7 @@ class AgentFactory:
|
||||
|
||||
支持 openai / claude / deepseek / gemini 四类后端,差异通过
|
||||
``_models_mapping`` 中的 ``model_class`` + ``provider_class`` 键值对屏蔽。
|
||||
同时支持传入本地工具(tools)和外部工具集(toolsets),包括 MCP 服务器。
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
@@ -65,21 +70,22 @@ class AgentFactory:
|
||||
deps_type: DepsModel,
|
||||
agent_name: str,
|
||||
tools: list = None,
|
||||
toolsets: Sequence[AbstractToolset[Any]] = None,
|
||||
) -> Agent:
|
||||
"""
|
||||
create_agent方法,将输入的provider对象实例化为一个pydantic-ai的agent对象
|
||||
"""将输入的 provider 对象实例化为一个 pydantic-ai 的 agent 对象。
|
||||
|
||||
Args:
|
||||
provider: Provider对象,从global_state_machine中获取
|
||||
provider: Provider 对象,从 global_state_machine 中获取
|
||||
model_id: 模型名
|
||||
output_type: 输出格式
|
||||
system_prompt: 系统提示词
|
||||
deps_type: 依赖类型,在agent运行时动态输入的格式化消息
|
||||
agent_name: agent的名字
|
||||
tools: 工具列表
|
||||
deps_type: 依赖类型,在 agent 运行时动态输入的格式化消息
|
||||
agent_name: agent 的名字
|
||||
tools: 本地工具函数列表
|
||||
toolsets: 外部工具集列表(包括 MCP 服务器等 AbstractToolset 实例)
|
||||
|
||||
Returns:
|
||||
返回被实例化的pydantic-ai的Agent对象
|
||||
被实例化的 pydantic-ai 的 Agent 对象
|
||||
"""
|
||||
if model_id not in provider.provider_models:
|
||||
raise ModelNotExistError("模型不存在")
|
||||
@@ -109,13 +115,14 @@ class AgentFactory:
|
||||
else:
|
||||
model = model_class(model_id, provider=model_provider)
|
||||
|
||||
# 创建 Agent
|
||||
# 创建 Agent,同时传入 tools 和 toolsets
|
||||
agent = Agent(
|
||||
model=model,
|
||||
name=agent_name,
|
||||
system_prompt=system_prompt,
|
||||
output_type=output_type,
|
||||
deps_type=deps_type,
|
||||
tools=tools,
|
||||
tools=tools or [],
|
||||
toolsets=toolsets or [],
|
||||
)
|
||||
return agent
|
||||
|
||||
Reference in New Issue
Block a user