Files
aisou/ai_search_agent/api.py
T
2026-03-27 17:06:54 +08:00

30 lines
886 B
Python

from __future__ import annotations
from fastapi import FastAPI
from fastapi.responses import JSONResponse
from .agent import AISearchAgent
from .audit import AuditLogger
from .config import Settings
from .models import SearchRequest
def create_app() -> FastAPI:
settings = Settings.from_env()
agent = AISearchAgent(settings)
audit_logger = AuditLogger(settings.audit_log_path)
app = FastAPI(title="AI Search Agent", version="1.0.0")
@app.get("/health")
async def health() -> dict[str, str]:
return {"status": "ok"}
@app.post("/search")
async def search(request: SearchRequest) -> JSONResponse:
response = await agent.run(request)
audit_id = audit_logger.write(request, response)
response = response.model_copy(update={"audit_id": audit_id})
return JSONResponse(content=response.model_dump())
return app