跳转至

xtalk

Xtalk

定义于 xtalk.api

class Xtalk

创建 Xtalk 管道、服务以及会话入口。

Notes

Xtalk 是示例应用使用的主要集成入口。它会根据配置构建管道,保存服务原型,并按需接收 WebSocket 会话。

Class Fields

  • MODEL_REGISTRY: dict[str, list[ImportSpec]] = SHARED_MODEL_REGISTRY

Methods

init

def __init__(self, *, service_prototype: Service, max_sessions: int | None = None)

初始化 Xtalk 应用封装。

register_model_search_spec

def register_model_search_spec(cls, *, slot: str, spec: ImportSpec, prepend: bool = True) -> None

为某个槽位注册额外的模型查找位置。

from_config

def from_config(cls, path_or_dict: str | dict) -> 'Xtalk'

根据配置数据构建 Xtalk 实例。

create_pipeline_from_config

def create_pipeline_from_config(cls, *, pipeline_cls: Type[Pipeline], config_path_or_dict: str | dict, additional_model_registry: dict[str, Any]) -> Pipeline

根据配置实例化自定义管道类。

set_session_limit

def set_session_limit(self, limit: int)

设置或替换并发会话限制。

embed_text

async def embed_text(self, session_id: str, text: str, user_id: str | None = None)

将文本加入会话级嵌入存储队列。

add_agent_tools

def add_agent_tools(self, tools_or_factories: list[BaseTool | Callable[[], BaseTool]])

在会话创建之前,将工具附加到原型 Agent 上。

mount_routes

def mount_routes(self, app: Any, *, login_path: str = '/api/auth/login', sessions_path: str = '/api/sessions', session_detail_path: str = '/api/sessions/{session_id}', upload_path: str = '/api/upload', ws_path: str = '/ws') -> None

挂载内置的登录、会话、上传和 WebSocket 路由。

connect

async def connect(self, websocket: WebSocket, user_id: str | None = None)

接收一个 WebSocket 会话并将其交给服务管理器。

Pipeline

定义于 xtalk.pipelines.interfaces

class Pipeline(ABC)

定义 Xtalk 服务所需的模型访问器。

Notes

具体管道会暴露管理器所消费的模型和辅助对象。示例应用通常会继承 DefaultPipeline 来添加额外组件,同时保留这一接口。

Methods

clone

def clone(self) -> 'Pipeline'

为新会话克隆管道。

DefaultPipeline

定义于 xtalk.pipelines.default

@dataclass(init=False)
class DefaultPipeline(Pipeline)

保存会话使用的标准 Xtalk 模型集合。

Notes

当前标准字段包括 ASR、Agent、TTS、Captioner、PuntRestorer、Caption Rewriter、VAD、Speech Enhancer、Speaker Encoder、Speech Speed Controller、Embeddings 和 Turn Detector;其中 vad_model 现在按 clone=True 进行会话级克隆。

Service

定义于 xtalk.serving.service

class Service

编排会话作用域内的管道和管理器栈。

DefaultService

定义于 xtalk.serving.service

class DefaultService(Service)

带有标准 Xtalk 管理器栈的便捷 Service

Class Fields

  • MANAGER_CLASSES 默认包含 ASRManagerLLMAgentContextManagerLLMAgentConsumptionManagerDirectAudioManagerTTSManagerTTSPlaybackManagerCaptionerManagerRetrievalManagerTurnTakingManagerLatencyManagerVADManagerEnhancerManagerSpeakerManagerEmbeddingsManagerRecordingManagerTurnDetectorManager

BaseEvent

定义于 xtalk.serving.events

@dataclass
class BaseEvent

所有 Xtalk 事件的基础 dataclass。

create_event_class

定义于 xtalk.serving.events

def create_event_class(*, name: str, fields: dict[str, Any] | None = None, type_name: str | None = None) -> Type[BaseEvent]

动态创建 BaseEvent 子类。

Manager

定义于 xtalk.serving.interfaces

class Manager(EventListenerMixin, ShutdownMixin)

Xtalk 管理器的基类。

EventBus

定义于 xtalk.serving.event_bus

class EventBus

发布和订阅会话事件,并支持异步分发。