from fastapi import FastAPI, Response, Cookie from fastapi.responses import HTMLResponse from pydantic import BaseModel, Field import time import os value = os.environ.get('YOUR_ENV_KEY') app = FastAPI() Tokens = [] History = [] @app.get("/", response_class=HTMLResponse) async def read_root(response: Response): token = time.time() Tokens.append(str(token)) History.append([{"role": "system", "content": "You are a helpful assistant, currently in developing phase. You will always respect the user and never generate inappropriate content."}]) response.set_cookie(key="token", value=token, httponly=True, samesite='strict') # Set cookie return ''' Chatbot Assistant
Chat Assistant
''' from openai import OpenAI client = OpenAI(base_url="http://localhost:8080/v1", api_key="no-key-required") class ChatRequest(BaseModel): """Request model for the chat endpoint.""" prompt: str @app.post("/response") async def handle_chat(chat_request: ChatRequest, token: str = Cookie(None)): if token in Tokens: i = Tokens.index(token) History[i].append({"role": "user", "content": chat_request.prompt}) stream = client.chat.completions.create( model="", messages=History[i], ) History[i].append({"role": "assistant", "content": chat_request.prompt}) return stream.choices[0].message.content else: return 'Please stop. Just refresh the page.' @app.post("/history") async def history(chat_request: ChatRequest): if chat_request.prompt == value: time.sleep(30) return History if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860)