mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
feat: add agent token provider events
This commit is contained in:
@@ -64,6 +64,53 @@ class ChainEventData(BaseEventData):
|
||||
pass
|
||||
|
||||
|
||||
class AgentLLMProviderEventData(ChainEventData):
|
||||
"""
|
||||
Agent LLM 供应商选择事件数据。
|
||||
|
||||
事件发出方会带入当前系统配置作为默认值;插件可覆盖 provider、base_url、
|
||||
api_key、model 等字段,并通过 selected_provider_id 标记本次选择,方便
|
||||
后续用量事件精确回写到同一个配额条目。
|
||||
"""
|
||||
|
||||
provider: Optional[str] = Field(default=None, description="LLM provider ID")
|
||||
base_url: Optional[str] = Field(default=None, description="API Base URL")
|
||||
api_key: Optional[str] = Field(default=None, description="API Key")
|
||||
model: Optional[str] = Field(default=None, description="模型名称")
|
||||
base_url_preset: Optional[str] = Field(default=None, description="Base URL 预设ID")
|
||||
thinking_level: Optional[str] = Field(default=None, description="思考模式级别")
|
||||
selected_provider_id: Optional[str] = Field(default=None, description="插件侧供应商ID")
|
||||
selected_provider_name: Optional[str] = Field(default=None, description="插件侧供应商名称")
|
||||
source: Optional[str] = Field(default=None, description="选择来源")
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict, description="扩展元数据")
|
||||
|
||||
|
||||
class AgentTokensUsageEventData(BaseEventData):
|
||||
"""
|
||||
Agent Tokens 用量广播事件数据。
|
||||
|
||||
用量事件不携带 API Key,只携带选择事件返回的 selected_provider_id 以及
|
||||
聚合后的 token 统计,避免把密钥扩散给广播订阅者。
|
||||
"""
|
||||
|
||||
session_id: str = Field(..., description="Agent 会话ID")
|
||||
selected_provider_id: Optional[str] = Field(default=None, description="插件侧供应商ID")
|
||||
selected_provider_name: Optional[str] = Field(default=None, description="插件侧供应商名称")
|
||||
provider: Optional[str] = Field(default=None, description="实际 LLM provider ID")
|
||||
base_url: Optional[str] = Field(default=None, description="API Base URL")
|
||||
model: Optional[str] = Field(default=None, description="模型名称")
|
||||
input_tokens: int = Field(default=0, description="输入 tokens")
|
||||
output_tokens: int = Field(default=0, description="输出 tokens")
|
||||
total_tokens: int = Field(default=0, description="总 tokens")
|
||||
model_call_count: int = Field(default=0, description="模型调用次数")
|
||||
success: bool = Field(default=False, description="Agent 执行是否成功")
|
||||
error: Optional[str] = Field(default=None, description="失败原因")
|
||||
started_at: Optional[str] = Field(default=None, description="开始时间")
|
||||
finished_at: Optional[str] = Field(default=None, description="结束时间")
|
||||
source: str = Field(default="agent", description="事件来源")
|
||||
metadata: Dict[str, Any] = Field(default_factory=dict, description="扩展元数据")
|
||||
|
||||
|
||||
class AuthCredentials(ChainEventData):
|
||||
"""
|
||||
AuthVerification 事件的数据模型
|
||||
|
||||
@@ -105,6 +105,8 @@ class EventType(Enum):
|
||||
MessageAction = "message.action"
|
||||
# 执行工作流
|
||||
WorkflowExecute = "workflow.execute"
|
||||
# Agent Tokens 用量
|
||||
AgentTokensUsage = "agent.tokens.usage"
|
||||
|
||||
|
||||
# EventType中文名称翻译字典
|
||||
@@ -139,6 +141,7 @@ EVENT_TYPE_NAMES = {
|
||||
EventType.ConfigChanged: "配置项更新",
|
||||
EventType.MessageAction: "消息交互动作",
|
||||
EventType.WorkflowExecute: "执行工作流",
|
||||
EventType.AgentTokensUsage: "Agent Tokens 用量",
|
||||
}
|
||||
|
||||
|
||||
@@ -174,6 +177,8 @@ class ChainEventType(Enum):
|
||||
WorkflowExecution = "workflow.execution"
|
||||
# 存储操作选择
|
||||
StorageOperSelection = "storage.operation"
|
||||
# Agent LLM 供应商选择
|
||||
AgentLLMProvider = "agent.llm.provider"
|
||||
|
||||
|
||||
# 系统配置Key字典
|
||||
|
||||
Reference in New Issue
Block a user