实现 AI Core 与 Agent Core 基础功能
- 更新 README 描述从后端壳子到 AI Core/Agent Core - 添加 ToolCall 和 ToolResult 数据结构定义 - 扩展 AgentRun 模型增加输出、错误码、工具调用结果等字段 - 添加 mock 提供商类型支持 - 实现聊天、代理运行、工具调用和提供商管理的核心路由逻辑 - 集成容器化依赖注入和错误处理机制 - 更新 API 接口契约和文档说明
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from collections.abc import AsyncIterator
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Protocol
|
||||
|
||||
from app.contracts import ModelEvent, ModelInfo, ModelRequest
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class ProviderToolCall:
|
||||
tool_call_id: str
|
||||
name: str
|
||||
arguments: dict[str, object] = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class ProviderTurn:
|
||||
text: str | None = None
|
||||
tool_calls: list[ProviderToolCall] = field(default_factory=list)
|
||||
input_tokens: int = 0
|
||||
output_tokens: int = 0
|
||||
|
||||
|
||||
class ModelProvider(Protocol):
|
||||
async def complete(self, request: ModelRequest) -> ProviderTurn: ...
|
||||
|
||||
def stream(self, request: ModelRequest) -> AsyncIterator[ModelEvent]: ...
|
||||
|
||||
async def list_models(self) -> list[ModelInfo]: ...
|
||||
|
||||
async def test_connection(self, model: str | None = None) -> tuple[bool, str]: ...
|
||||
Reference in New Issue
Block a user