- Removed the backend client compatibility wrapper and associated methods to streamline backend integration. - Updated session management to utilize control plane gateways and runtime configuration providers. - Adjusted TTS service implementations to remove the EdgeTTS service and simplify service dependencies. - Enhanced documentation to reflect changes in backend integration and service architecture. - Updated configuration files to remove deprecated TTS provider options and clarify available settings.
84 lines
2.2 KiB
Python
84 lines
2.2 KiB
Python
"""Control-plane integration ports.
|
|
|
|
These interfaces define the boundary between engine runtime logic and
|
|
control-plane capabilities (config lookup, history persistence, retrieval,
|
|
and tool resource discovery).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any, Dict, List, Optional, Protocol
|
|
|
|
|
|
class AssistantRuntimeConfigProvider(Protocol):
|
|
"""Port for loading trusted assistant runtime configuration."""
|
|
|
|
async def fetch_assistant_config(self, assistant_id: str) -> Optional[Dict[str, Any]]:
|
|
"""Fetch assistant configuration payload."""
|
|
|
|
|
|
class ConversationHistoryStore(Protocol):
|
|
"""Port for persisting call and transcript history."""
|
|
|
|
async def create_call_record(
|
|
self,
|
|
*,
|
|
user_id: int,
|
|
assistant_id: Optional[str],
|
|
source: str = "debug",
|
|
) -> Optional[str]:
|
|
"""Create a call record and return control-plane call ID."""
|
|
|
|
async def add_transcript(
|
|
self,
|
|
*,
|
|
call_id: str,
|
|
turn_index: int,
|
|
speaker: str,
|
|
content: str,
|
|
start_ms: int,
|
|
end_ms: int,
|
|
confidence: Optional[float] = None,
|
|
duration_ms: Optional[int] = None,
|
|
) -> bool:
|
|
"""Append one transcript turn segment."""
|
|
|
|
async def finalize_call_record(
|
|
self,
|
|
*,
|
|
call_id: str,
|
|
status: str,
|
|
duration_seconds: int,
|
|
) -> bool:
|
|
"""Finalize a call record."""
|
|
|
|
|
|
class KnowledgeRetriever(Protocol):
|
|
"""Port for RAG / knowledge retrieval operations."""
|
|
|
|
async def search_knowledge_context(
|
|
self,
|
|
*,
|
|
kb_id: str,
|
|
query: str,
|
|
n_results: int = 5,
|
|
) -> List[Dict[str, Any]]:
|
|
"""Search a knowledge source and return ranked snippets."""
|
|
|
|
|
|
class ToolCatalog(Protocol):
|
|
"""Port for resolving tool metadata/configuration."""
|
|
|
|
async def fetch_tool_resource(self, tool_id: str) -> Optional[Dict[str, Any]]:
|
|
"""Fetch tool resource configuration."""
|
|
|
|
|
|
class ControlPlaneGateway(
|
|
AssistantRuntimeConfigProvider,
|
|
ConversationHistoryStore,
|
|
KnowledgeRetriever,
|
|
ToolCatalog,
|
|
Protocol,
|
|
):
|
|
"""Composite control-plane gateway used by engine services."""
|