Refactor agent API structure and add core functionality with FastAPI integration

This commit is contained in:
2026-05-10 13:09:58 +02:00
parent 58250d22a3
commit 4c758f7733
10 changed files with 63 additions and 51 deletions
-11
View File
@@ -1,11 +0,0 @@
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
-37
View File
@@ -1,37 +0,0 @@
from fastapi import FastAPI
from openai import OpenAI
import os
app = FastAPI()
# DeepSeek OpenAI-compatible endpoint
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
@app.post("/v1/chat/completions")
async def chat(data: dict):
messages = data["messages"]
repo_context = """
This assistant has access to the repository.
Help the user understand the codebase.
This repo is building an chatbot, currently still in early stages. The main files are:
- app.py: The main FastAPI application that defines the API endpoints and integrates with the Deep seek API.
- agent.py: Contains the logic for the chatbot agent, including how it processes messages and generates responses.
"""
messages.insert(0, {
"role": "system",
"content": repo_context
})
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=messages,
temperature=0.3
)
return response.model_dump()
-3
View File
@@ -1,3 +0,0 @@
fastapi
openai
uvicorn
View File
View File
+7
View File
@@ -0,0 +1,7 @@
from dotenv import load_dotenv
from pathlib import Path
import os
load_dotenv(Path(__file__).resolve().parent.parent.parent / ".env")
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
+7
View File
@@ -0,0 +1,7 @@
from openai import OpenAI
from .config import DEEPSEEK_API_KEY
client = OpenAI(
api_key=DEEPSEEK_API_KEY,
base_url="https://api.deepseek.com"
)
+32
View File
@@ -0,0 +1,32 @@
from fastapi import FastAPI
from pydantic import BaseModel
from .core.llm import client
app = FastAPI()
# ---- request model ----
class ChatRequest(BaseModel):
message: str
# ---- basic health check ----
@app.get("/")
def root():
return {"status": "ok"}
# ---- test LLM endpoint ----
@app.post("/chat")
def chat(req: ChatRequest):
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": req.message}
]
)
return {
"response": response.choices[0].message.content
}
+13
View File
@@ -0,0 +1,13 @@
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
ENV PYTHONPATH=/app
CMD ["uvicorn", "agent-api.main:app", "--host", "0.0.0.0", "--port", "8000"]
+4
View File
@@ -0,0 +1,4 @@
fastapi
openai
uvicorn
python-dotenv