Refactor project structure and enhance backend integration

- Expanded package inclusion in `pyproject.toml` to support new modules.
- Introduced new `adapters` and `protocol` packages for better organization.
- Added backend adapter implementations for control plane integration.
- Updated main application imports to reflect new package structure.
- Removed deprecated core components and adjusted documentation accordingly.
- Enhanced architecture documentation to clarify the new runtime and integration layers.
This commit is contained in:
Xin Wang
2026-03-06 09:51:56 +08:00
parent 4e2450e800
commit 7e0b777923
75 changed files with 274 additions and 688 deletions

View File

@@ -14,19 +14,19 @@ This document describes the runtime architecture of `engine` for realtime voice/
```mermaid
flowchart LR
C[Client\nWeb / Mobile / Device] <-- WS v1 + PCM --> A[FastAPI App\napp/main.py]
A --> S[Session\ncore/session.py]
S --> D[Duplex Pipeline\ncore/duplex_pipeline.py]
A --> S[Session\nruntime/session/manager.py]
S --> D[Duplex Pipeline\nruntime/pipeline/duplex.py]
D --> P[Processors\nVAD / EOU / Tracks]
D --> R[Workflow Runner\ncore/workflow_runner.py]
D --> E[Event Bus + Models\ncore/events.py + models/*]
D --> R[Workflow Runner\nworkflow/runner.py]
D --> E[Event Bus + Models\nruntime/events.py + protocol/ws_v1/*]
R --> SV[Service Layer\nservices/asr.py\nservices/llm.py\nservices/tts.py]
R --> TE[Tool Executor\ncore/tool_executor.py]
R --> SV[Service Layer\nproviders/asr/*\nproviders/llm/*\nproviders/tts/*]
R --> TE[Tool Executor\ntools/executor.py]
S --> HB[History Bridge\ncore/history_bridge.py]
S --> BA[Control Plane Port\ncore/ports/control_plane.py]
BA --> AD[Adapters\napp/backend_adapters.py]
S --> HB[History Bridge\nruntime/history/bridge.py]
S --> BA[Control Plane Port\nruntime/ports/control_plane.py]
BA --> AD[Adapters\nadapters/control_plane/backend.py]
AD --> B[(External Backend API\noptional)]
SV --> M[(ASR/LLM/TTS Providers)]
@@ -58,7 +58,7 @@ flowchart LR
### 2) Session + Orchestration Layer
- Core: `core/session.py`, `core/duplex_pipeline.py`, `core/conversation.py`
- Core: `runtime/session/manager.py`, `runtime/pipeline/duplex.py`, `runtime/conversation.py`
- Responsibilities:
- Per-session state machine
- Turn boundaries and interruption/cancel handling
@@ -75,7 +75,7 @@ flowchart LR
### 4) Workflow + Tooling Layer
- Modules: `core/workflow_runner.py`, `core/tool_executor.py`
- Modules: `workflow/runner.py`, `tools/executor.py`
- Responsibilities:
- Assistant workflow execution
- Tool call planning/execution and timeout handling
@@ -83,7 +83,7 @@ flowchart LR
### 5) Service Integration Layer
- Modules: `services/*`
- Modules: `providers/*`
- Responsibilities:
- Abstracting ASR/LLM/TTS provider differences
- Streaming token/audio adaptation
@@ -91,8 +91,8 @@ flowchart LR
### 6) Backend Integration Layer (Optional)
- Port: `core/ports/control_plane.py`
- Adapters: `app/backend_adapters.py`
- Port: `runtime/ports/control_plane.py`
- Adapters: `adapters/control_plane/backend.py`
- Responsibilities:
- Fetching assistant runtime config
- Persisting call/session metadata and history
@@ -100,7 +100,7 @@ flowchart LR
### 7) Persistence / Reliability Layer
- Module: `core/history_bridge.py`
- Module: `runtime/history/bridge.py`
- Responsibilities:
- Non-blocking queue-based history writes
- Retry with backoff on backend failures