Files
2026-07-06 23:15:06 -04:00

68 lines
1.6 KiB
Python

"""共享 Protocol 端口定义。
LLMProvider / VLMProvider / TelemetryRecorder 是跨子包共享接口,
被 core/agent/、core/evolution/、app/ 各模块引用。
adapters/ 提供具体实现。
"""
from __future__ import annotations
from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable
if TYPE_CHECKING:
from pathlib import Path
from core.types import LLMResponse
@runtime_checkable
class LLMProvider(Protocol):
"""LLM 文本调用端口。"""
async def chat(
self,
messages: list[dict[str, Any]],
*,
session_id: str | None = None,
parent_call_id: str | None = None,
) -> LLMResponse: ...
@runtime_checkable
class VLMProvider(Protocol):
"""VLM 图文调用端口。"""
async def chat_with_images(
self,
messages: list[dict[str, Any]],
images: list[str | Path],
*,
session_id: str | None = None,
parent_call_id: str | None = None,
) -> LLMResponse: ...
@runtime_checkable
class TelemetryRecorder(Protocol):
"""LLM 调用遥测记录端口。"""
async def record_llm_call(
self,
*,
call_id: str,
parent_call_id: str | None,
session_id: str | None,
model_name: str,
provider: str,
messages: str,
response: str,
thinking: str,
prompt_tokens: int,
completion_tokens: int,
latency_ms: int,
ttft_ms: float | None,
max_inter_token_ms: float | None,
cache_hit: bool,
error: str | None,
) -> None: ...