Abhaykoul's picture
Update app.py
d198a01 verified
from fastapi import FastAPI, HTTPException, Query
from fastapi.responses import StreamingResponse
import uvicorn
from v1 import v1
from v2 import v2
from chatv1 import *
from typing import Optional
app = FastAPI()
@app.get("/Search/pro")
async def v1_chat(prompt: str, model: str = "claude"):
if model not in v1.AVAILABLE_MODELS:
raise HTTPException(status_code=400, detail=f"Model '{model}' is not supported. Choose from {v1.AVAILABLE_MODELS}.")
ai = v1(model=model)
def response_generator():
for chunk in ai.chat(prompt):
yield f"data: {chunk}\n\n"
return StreamingResponse(response_generator(), media_type="text/event-stream")
@app.get("/v2/search")
async def v2_chat(prompt: str):
ai = v2()
def response_generator():
for chunk in ai.chat(prompt, stream=True):
yield f"data: {chunk}\n\n"
return StreamingResponse(response_generator(), media_type="text/event-stream")
@app.get("/chatv1")
async def chat_endpoint_get(
user_prompt: str = Query(..., description="User's prompt"),
system_prompt: Optional[str] = Query("You are a helpful AI assistant.", description="System prompt to set AI behavior")
):
ai = CHATv1()
def generate():
for chunk in ai.chat(user_prompt, system_prompt):
yield f"data: {chunk}\n\n"
return StreamingResponse(generate(), media_type="text/event-stream")
@app.post("/chatv1")
async def chat_endpoint_post(request: ChatRequest):
ai = CHATv1()
def generate():
for chunk in ai.chat(request.user_prompt, request.system_prompt):
yield f"data: {chunk}\n\n"
return StreamingResponse(generate(), media_type="text/event-stream")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)