from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel from .core.llm import client app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) class ChatRequest(BaseModel): message: str session_id: str | None = None def run_agent(message: str, session_id: str | None = None): response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "You are a helpful agent."}, {"role": "user", "content": message} ] ) return response.choices[0].message.content @app.get("/") def root(): return {"status": "ok"} @app.post("/chat") def chat(req: ChatRequest): response = run_agent(req.message, req.session_id) return { "response": response, "session_id": req.session_id } @app.get("/v1/models") def list_models(): return { "object": "list", "data": [ { "id": "agent-model", "object": "model", "created": 0, "owned_by": "local-agent" } ] } @app.get("/models") def legacy_models(): return list_models() @app.post("/chat/completions") def chat_completions(req: dict): messages = req["messages"] user_message = messages[-1]["content"] response = run_agent(user_message) return { "id": "chatcmpl-local", "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": response } } ] }