cody82 commited on
Commit
f478cdc
·
verified ·
1 Parent(s): 52ae47c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -13
app.py CHANGED
@@ -2,12 +2,12 @@ import os
2
  os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"
3
 
4
  import torch
5
- from fastapi import FastAPI
6
- from pydantic import BaseModel
7
  from transformers import AutoTokenizer, AutoModelForCausalLM
8
  import gradio as gr
 
 
9
 
10
- # --- Модель ---
11
  model_id = "sberbank-ai/rugpt3medium_based_on_gpt2"
12
  tokenizer = AutoTokenizer.from_pretrained(model_id)
13
  model = AutoModelForCausalLM.from_pretrained(model_id)
@@ -24,7 +24,6 @@ context = (
24
  def respond(message, history=None):
25
  prompt = f"Прочитай текст и ответь на вопрос:\n\n{context}\n\nВопрос: {message}\nОтвет:"
26
  input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
27
-
28
  with torch.no_grad():
29
  output_ids = model.generate(
30
  input_ids,
@@ -34,7 +33,6 @@ def respond(message, history=None):
34
  do_sample=True,
35
  pad_token_id=tokenizer.eos_token_id
36
  )
37
-
38
  output = tokenizer.decode(output_ids[0], skip_special_tokens=True)
39
  if "Ответ:" in output:
40
  answer = output.split("Ответ:")[-1].strip()
@@ -42,10 +40,10 @@ def respond(message, history=None):
42
  answer = output[len(prompt):].strip()
43
  return answer
44
 
45
- # --- Gradio UI ---
46
  chat = gr.ChatInterface(fn=respond, title="Иннополис Бот")
47
 
48
- # --- FastAPI для API доступа ---
49
  app = FastAPI()
50
 
51
  class QuestionRequest(BaseModel):
@@ -53,10 +51,7 @@ class QuestionRequest(BaseModel):
53
 
54
  @app.post("/ask")
55
  def ask(request: QuestionRequest):
56
- answer = respond(request.question)
57
- return {"answer": answer}
58
-
59
- # --- Подключаем FastAPI к Gradio ---
60
- gr.mount_gradio_app(app, chat, path="/")
61
 
62
- # --- Не нужно писать iface.launch()! Hugging Face сам запустит Uvicorn ---
 
 
2
  os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"
3
 
4
  import torch
 
 
5
  from transformers import AutoTokenizer, AutoModelForCausalLM
6
  import gradio as gr
7
+ from fastapi import FastAPI
8
+ from pydantic import BaseModel
9
 
10
+ # Модель
11
  model_id = "sberbank-ai/rugpt3medium_based_on_gpt2"
12
  tokenizer = AutoTokenizer.from_pretrained(model_id)
13
  model = AutoModelForCausalLM.from_pretrained(model_id)
 
24
  def respond(message, history=None):
25
  prompt = f"Прочитай текст и ответь на вопрос:\n\n{context}\n\nВопрос: {message}\nОтвет:"
26
  input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
 
27
  with torch.no_grad():
28
  output_ids = model.generate(
29
  input_ids,
 
33
  do_sample=True,
34
  pad_token_id=tokenizer.eos_token_id
35
  )
 
36
  output = tokenizer.decode(output_ids[0], skip_special_tokens=True)
37
  if "Ответ:" in output:
38
  answer = output.split("Ответ:")[-1].strip()
 
40
  answer = output[len(prompt):].strip()
41
  return answer
42
 
43
+ # Gradio интерфейс
44
  chat = gr.ChatInterface(fn=respond, title="Иннополис Бот")
45
 
46
+ # API
47
  app = FastAPI()
48
 
49
  class QuestionRequest(BaseModel):
 
51
 
52
  @app.post("/ask")
53
  def ask(request: QuestionRequest):
54
+ return {"answer": respond(request.question)}
 
 
 
 
55
 
56
+ # Важно: экспорт для Hugging Face
57
+ demo = gr.mount_gradio_app(app, chat, path="/")