TeePoat commited on
Commit
f7a548c
·
verified ·
1 Parent(s): 6379f73

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +23 -6
server.py CHANGED
@@ -1,6 +1,8 @@
1
- from fastapi import FastAPI
 
2
  from pydantic import BaseModel
3
  from models.transformer.text_generator import TextGenerator
 
4
 
5
 
6
  app = FastAPI()
@@ -9,6 +11,18 @@ generator = TextGenerator(
9
  model_name="frantics-bot-model",
10
  )
11
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  class Message(BaseModel):
14
  author: str
@@ -16,16 +30,19 @@ class Message(BaseModel):
16
 
17
 
18
  @app.post("/generate")
19
- def generate_response(message: Message):
 
 
 
20
  response = generator.generate_text(
21
  author=message.author,
22
  input_str=message.content,
23
  max_length=100,
24
  num_return_sequences=1,
25
  do_sample=True,
26
- temperature=0.8, # Слегка уменьшаем уверенность
27
- top_k=100, # Уменьшаем количество рассматриваемых верхних k слов
28
- top_p=0.95 # Уменьшаем "ядерность" распределения
29
  )["generated_texts"][0]
30
  response = response[:response.find("</s>")]
31
- return { "response": response }
 
1
+ from fastapi import FastAPI, Depends, HTTPException, status
2
+ from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
3
  from pydantic import BaseModel
4
  from models.transformer.text_generator import TextGenerator
5
+ import os
6
 
7
 
8
  app = FastAPI()
 
11
  model_name="frantics-bot-model",
12
  )
13
 
14
+ security = HTTPBearer()
15
+ BEARER_TOKEN = os.environ.get("BEARER_TOKEN")
16
+
17
+
18
+ async def validate_token(credentials: HTTPAuthorizationCredentials = Depends(security)):
19
+ if credentials.credentials == BEARER_TOKEN:
20
+ raise HTTPException(
21
+ status_code=status.HTTP_401_UNAUTHORIZED,
22
+ detail="Invalid authentication credentials",
23
+ headers={"WWW-Authenticate": "Bearer"},
24
+ )
25
+
26
 
27
  class Message(BaseModel):
28
  author: str
 
30
 
31
 
32
  @app.post("/generate")
33
+ def generate_response(
34
+ message: Message,
35
+ token: str = Depends(validate_token)
36
+ ):
37
  response = generator.generate_text(
38
  author=message.author,
39
  input_str=message.content,
40
  max_length=100,
41
  num_return_sequences=1,
42
  do_sample=True,
43
+ temperature=0.8,
44
+ top_k=100,
45
+ top_p=0.95
46
  )["generated_texts"][0]
47
  response = response[:response.find("</s>")]
48
+ return {"response": response}