web2api / core /hub /schemas.py
ohmyapi's picture
feat: align hosted Space deployment with latest upstream
77169b4
"""
OpenAI 语义的结构化流事件(唯一流式中间态)。
整条链路:插件产出字符串流 → core 包装为 content_delta + finish →
协议适配层消费事件、编码为各协议 SSE(OpenAI / Anthropic / 未来 Kimi 等)。
"""
from __future__ import annotations
from typing import Any, Literal
from pydantic import BaseModel, Field
class OpenAIToolCallDelta(BaseModel):
"""OpenAI stream delta 中的 tool_calls[?] 片段(最小必要字段)。"""
index: int = 0
id: str | None = None
type: Literal["function"] = "function"
function: dict[str, Any] = Field(default_factory=dict)
class OpenAIStreamEvent(BaseModel):
"""
OpenAI 语义的“内部流事件”。
- content_delta:增量文本(delta.content)
- tool_call_delta:工具调用增量(delta.tool_calls)
- finish:结束(finish_reason)
- error:错误
协议适配层负责将事件序列化为目标协议的 SSE/JSON。
"""
type: Literal["content_delta", "tool_call_delta", "finish", "error"]
# content_delta
content: str | None = None
# tool_call_delta
tool_calls: list[OpenAIToolCallDelta] | None = None
# finish
finish_reason: str | None = None
# error
error: str | None = None