Implement webhook

This commit is contained in:
Xin Wang
2026-08-07 14:08:49 +08:00
parent 39ee5ef96e
commit b2e99baa19
14 changed files with 886 additions and 34 deletions

View File

@@ -26,6 +26,7 @@ import uvicorn
from db.session import sync_default_tools, sync_interface_definitions
from services.knowledge import recover_interrupted_documents
from services.post_call.worker import recover_interrupted_analyses, run_analysis_worker
from services.webhooks.worker import recover_interrupted_webhooks, run_webhook_worker
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
@@ -39,6 +40,7 @@ from routes import (
mcp_servers,
model_registry,
node_types,
site_settings,
tools,
voice_webrtc,
voice_ws,
@@ -51,14 +53,21 @@ async def lifespan(_app: FastAPI):
await sync_default_tools()
await recover_interrupted_documents()
await recover_interrupted_analyses()
await recover_interrupted_webhooks()
analysis_worker = asyncio.create_task(
run_analysis_worker(), name="post-call-analysis-worker"
)
webhook_worker = asyncio.create_task(
run_webhook_worker(), name="analysis-webhook-worker"
)
try:
yield
finally:
analysis_worker.cancel()
await asyncio.gather(analysis_worker, return_exceptions=True)
webhook_worker.cancel()
await asyncio.gather(
analysis_worker, webhook_worker, return_exceptions=True
)
await voice_webrtc.shutdown_active_sessions()
@@ -81,6 +90,7 @@ app.include_router(knowledge_bases.router)
app.include_router(mcp_servers.router)
app.include_router(model_registry.router)
app.include_router(node_types.router)
app.include_router(site_settings.router)
app.include_router(tools.router)
app.include_router(voice_webrtc.router)
app.include_router(voice_ws.router)