Spaces:
Running
Running
from fastapi import FastAPI, Depends, HTTPException, status | |
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials | |
from pydantic import BaseModel | |
from models.transformer.text_generator import TextGenerator | |
import os | |
app = FastAPI() | |
generator = TextGenerator( | |
model_name="frantics-bot-model", | |
) | |
security = HTTPBearer() | |
BEARER_TOKEN = os.environ.get("BEARER_TOKEN") | |
async def validate_token(credentials: HTTPAuthorizationCredentials = Depends(security)): | |
if credentials.credentials == BEARER_TOKEN: | |
raise HTTPException( | |
status_code=status.HTTP_401_UNAUTHORIZED, | |
detail="Invalid authentication credentials", | |
headers={"WWW-Authenticate": "Bearer"}, | |
) | |
class Message(BaseModel): | |
author: str | |
content: str | |
def generate_response( | |
message: Message, | |
token: str = Depends(validate_token) | |
): | |
response = generator.generate_text( | |
author=message.author, | |
input_str=message.content, | |
max_length=100, | |
num_return_sequences=1, | |
do_sample=True, | |
temperature=0.8, | |
top_k=100, | |
top_p=0.95 | |
)["generated_texts"][0] | |
response = response[:response.find("</s>")] | |
return {"response": response} |