feat(system):优化后端

1.新增后端测试
2.增加了后端的加密
3.增加了i18n(国际化)
This commit is contained in:
2026-05-31 15:39:34 +00:00
parent affe460180
commit 99520c69d7
118 changed files with 8174 additions and 1491 deletions
@@ -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-aiAgent对象
被实例化的 pydantic-aiAgent 对象
"""
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