|
from fastapi import FastAPI, HTTPException |
|
from pydantic import BaseModel |
|
import asyncio |
|
from ai_core import AICore |
|
|
|
app = FastAPI() |
|
|
|
|
|
ai_core = AICore() |
|
|
|
class QueryRequest(BaseModel): |
|
query: str |
|
|
|
class QueryResponse(BaseModel): |
|
insights: list |
|
response: str |
|
security_level: int |
|
safety_checks: dict |
|
health_status: dict |
|
encrypted_query: str |
|
|
|
@app.post("/query", response_model=QueryResponse) |
|
async def handle_query(request: QueryRequest): |
|
try: |
|
response = await ai_core.generate_response(request.query) |
|
return QueryResponse(**response) |
|
except Exception as e: |
|
raise HTTPException(status_code=500, detail=str(e)) |
|
|
|
@app.on_event("shutdown") |
|
async def shutdown_event(): |
|
await ai_core.shutdown() |
|
|
|
if __name__ == "__main__": |
|
import uvicorn |
|
uvicorn.run(app, host="0.0.0.0", port=7860) |