EvgenyKu commited on
Commit
2cf0b52
·
1 Parent(s): a473614

add multithreading

Browse files
Files changed (1) hide show
  1. app.py +14 -7
app.py CHANGED
@@ -14,17 +14,18 @@ from huggingface_hub import login
14
  from diffusers import FluxPipeline
15
  from aura_sr import AuraSR
16
  from deep_translator import GoogleTranslator
17
- from fastapi import FastAPI, Response, Request
18
  import uvicorn
19
  from pydantic import BaseModel
20
 
21
  def log(*args, **kwargs):
 
22
  tz = pytz.timezone(kwargs.pop('timezone', 'Europe/Moscow'))
23
  time_fmt = kwargs.pop('time_format', '%Y-%m-%d %H:%M:%S')
24
  separator = kwargs.pop('sep', ' - ')
25
  moscow_time = datetime.now(tz).strftime(time_fmt)
26
  message = separator.join(str(arg) for arg in args)
27
- print(f"[{moscow_time}]{separator}{message}", **kwargs)
28
 
29
  log("Старт сервиса")
30
 
@@ -190,16 +191,22 @@ class GenerateRequest(BaseModel):
190
 
191
  @fastapi_app.post("/api/generate_image")
192
  async def api_generate_image(rq: GenerateRequest, rest_request: Request):
193
- thread_id = threading.get_ident()
194
  client_ip = rest_request.headers.get('X-Forwarded-For', rest_request.client.host)
195
- log(f"tid=[{thread_id}] Получили запрос через рест АПИ.")
196
- log(f"tid=[{thread_id}] Client IP: {client_ip}")
 
 
 
 
 
 
 
197
  image = await generate_image_async(rq.object_name, rq.remove_bg, rq.upscale)
198
- log(f"tid=[{thread_id}] Подготовка ответа для рест АПИ.")
199
  img_byte_arr = io.BytesIO()
200
  image.save(img_byte_arr, format='WEBP')
201
  img_byte_arr = img_byte_arr.getvalue()
202
- log(f"tid=[{thread_id}] Возвращаем ответ для рест АПИ.")
203
  return Response(content=img_byte_arr, media_type="image/webp")
204
 
205
 
 
14
  from diffusers import FluxPipeline
15
  from aura_sr import AuraSR
16
  from deep_translator import GoogleTranslator
17
+ from fastapi import FastAPI, Response, Request, HTTPException, status
18
  import uvicorn
19
  from pydantic import BaseModel
20
 
21
  def log(*args, **kwargs):
22
+ tid = threading.get_ident()
23
  tz = pytz.timezone(kwargs.pop('timezone', 'Europe/Moscow'))
24
  time_fmt = kwargs.pop('time_format', '%Y-%m-%d %H:%M:%S')
25
  separator = kwargs.pop('sep', ' - ')
26
  moscow_time = datetime.now(tz).strftime(time_fmt)
27
  message = separator.join(str(arg) for arg in args)
28
+ print(f"[{moscow_time}]{separator}[tid={tid}]{separator}{message}", **kwargs)
29
 
30
  log("Старт сервиса")
31
 
 
191
 
192
  @fastapi_app.post("/api/generate_image")
193
  async def api_generate_image(rq: GenerateRequest, rest_request: Request):
 
194
  client_ip = rest_request.headers.get('X-Forwarded-For', rest_request.client.host)
195
+ log("Получили запрос через рест АПИ.")
196
+ log(f"Client IP: {client_ip}")
197
+ rq_token = rest_request.headers.get('Authorization')
198
+ if not rq_token:
199
+ raise HTTPException(
200
+ status_code=status.HTTP_401_UNAUTHORIZED,
201
+ detail="Not authorized"
202
+ )
203
+ login(token = rq_token)
204
  image = await generate_image_async(rq.object_name, rq.remove_bg, rq.upscale)
205
+ log(f"Подготовка ответа для рест АПИ.")
206
  img_byte_arr = io.BytesIO()
207
  image.save(img_byte_arr, format='WEBP')
208
  img_byte_arr = img_byte_arr.getvalue()
209
+ log(f"Возвращаем ответ для рест АПИ.")
210
  return Response(content=img_byte_arr, media_type="image/webp")
211
 
212