from pydantic import BaseModel from fastapi import HTTPException import os import traceback from fastapi.middleware.cors import CORSMiddleware from gemini import complete_gemini_async class GenItem(BaseModel): chat:list key:str params:dict app = FastAPI() origins = ["*"] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"], allow_headers=["*"], ) @app.post("/complete") async def complete(item: GenItem): try: result = await complete_gemini_async(item.chat, item.key, item.params) except Exception as e: raise HTTPException(status_code=500, detail="An error occurred: {}".format(traceback.format_exc()))