ARCH.AI_SPACE / main.py
FadeClip's picture
Remove API key functionality from application
8c8ff71
import os
import requests
from fastapi import FastAPI, Request, HTTPException
from fastapi.responses import FileResponse, RedirectResponse, StreamingResponse
from fastapi.staticfiles import StaticFiles
OLLAMA_API_URL = "http://localhost:11434"
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.post("/chat_api")
async def chat_endpoint(request: Request):
body = await request.json()
model = body.get("model", "qwen3:1.7b")
prompt = body.get("prompt")
if not prompt:
raise HTTPException(status_code=400, detail="Prompt is required")
url = f"{OLLAMA_API_URL}/api/generate"
async def stream_response():
try:
response = requests.post(
url=url,
json={"model": model, "prompt": prompt, "stream": True},
stream=True
)
for chunk in response.iter_content(chunk_size=None):
yield chunk
except Exception as e:
print(f"Error during streaming: {e}")
return StreamingResponse(stream_response(), media_type="application/x-ndjson")
@app.get("/")
async def root():
return RedirectResponse(url="/chat")
@app.get("/chat")
async def chat_page():
return FileResponse('chat.html')