import os import requests from fastapi import FastAPI, Form from fastapi.responses import HTMLResponse, JSONResponse OLLAMA_URL = os.getenv("OLLAMA_URL", "http://127.0.0.1:11434") MODEL = os.getenv("OLLAMA_MODEL", "qwen2.5:0.5b") APP_KEY = os.getenv("APP_KEY", "") app = FastAPI(title="Ollama Qwen Demo") def run_prompt(prompt: str, key: str = "") -> dict: if APP_KEY and key != APP_KEY: return {"error": "Unauthorized"} try: res = requests.post( f"{OLLAMA_URL}/api/generate", json={"model": MODEL, "prompt": prompt, "stream": False}, timeout=180, ) res.raise_for_status() return {"response": res.json().get("response", "")} except Exception as exc: return {"error": str(exc)} @app.get("/", response_class=HTMLResponse) def index() -> str: return f"""
Model: {MODEL}
{output}
"""
@app.post("/api/chat")
def chat_api(payload: dict) -> JSONResponse:
prompt = str(payload.get("prompt", ""))
key = str(payload.get("key", ""))
return JSONResponse(run_prompt(prompt, key))