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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -23
app.py CHANGED
@@ -2,11 +2,13 @@ import os
2
  os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"
3
 
4
  import torch
5
- import gradio as gr
 
6
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
7
 
 
8
  model_id = "sberbank-ai/rugpt3medium_based_on_gpt2"
9
-
10
  tokenizer = AutoTokenizer.from_pretrained(model_id)
11
  model = AutoModelForCausalLM.from_pretrained(model_id)
12
 
@@ -33,28 +35,28 @@ def respond(message, history=None):
33
  pad_token_id=tokenizer.eos_token_id
34
  )
35
 
36
- full_output = tokenizer.decode(output_ids[0], skip_special_tokens=True)
37
-
38
- if "Ответ:" in full_output:
39
- answer = full_output.split("Ответ:")[-1].strip()
40
  else:
41
- answer = full_output[len(prompt):].strip()
42
-
43
  return answer
44
 
45
- ### API маршрут
46
- @gr.route("/ask", methods=["POST"])
47
- def ask_api(question: str):
48
- return {"answer": respond(question)}
49
-
50
- ### Интерфейс с согласованным type="messages"
51
- chat = gr.ChatInterface(
52
- fn=respond,
53
- chatbot=gr.Chatbot(label="Диалог", type="messages"),
54
- textbox=gr.Textbox(placeholder="Задай вопрос...", label="Твой вопрос"),
55
- title="Бот об Университете Иннополис (на русском)",
56
- type="messages" # <-- добавлено!
57
- )
 
 
 
58
 
59
- if __name__ == "__main__":
60
- chat.launch()
 
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)
14
 
 
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()
 
41
  else:
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):
52
+ question: str
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 ---