25 lines
928 B
Python
25 lines
928 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Request
|
|
|
|
from app.modules.agent.story_context_repository import StoryContextRepository
|
|
from app.modules.rag_repo.webhook_service import RepoWebhookService
|
|
from app.modules.rag_session.repository import RagRepository
|
|
|
|
|
|
class RagRepoModule:
|
|
def __init__(self, story_context_repository: StoryContextRepository, rag_repository: RagRepository) -> None:
|
|
self._webhook = RepoWebhookService(story_context_repository, rag_repository)
|
|
|
|
def internal_router(self) -> APIRouter:
|
|
router = APIRouter(prefix="/internal/rag-repo", tags=["internal-rag-repo"])
|
|
|
|
@router.post("/webhook")
|
|
async def process_repo_webhook(request: Request, payload: dict) -> dict:
|
|
return self._webhook.process(
|
|
payload=payload,
|
|
headers={k: v for k, v in request.headers.items()},
|
|
)
|
|
|
|
return router
|