Salmetov commited on
Commit
3d59fb6
·
verified ·
1 Parent(s): a5945a2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -33
app.py CHANGED
@@ -1,12 +1,10 @@
1
  import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
3
 
4
- # Загрузка модели и токенизатора
5
- model_name = "google/gemma-2-2b-it" # Укажите новую модель
6
- tokenizer = AutoTokenizer.from_pretrained(model_name)
7
- model = AutoModelForCausalLM.from_pretrained(model_name)
8
 
9
- # Функция для обработки запросов
10
  def respond(
11
  message,
12
  history: list[tuple[str, str]],
@@ -15,32 +13,30 @@ def respond(
15
  temperature,
16
  top_p,
17
  ):
18
- # Создаем prompt с учетом истории сообщений и системного сообщения
19
- prompt = system_message + "\n\n"
20
 
21
- for user_msg, bot_response in history:
22
- if user_msg:
23
- prompt += f"User: {user_msg}\n"
24
  if bot_response:
25
- prompt += f"Bot: {bot_response}\n"
26
 
27
  # Добавляем текущее сообщение пользователя
28
- prompt += f"User: {message}\nBot:"
29
-
30
- # Генерация ответа модели
31
- inputs = tokenizer(prompt, return_tensors="pt", max_length=max_tokens, truncation=True)
32
- outputs = model.generate(
33
- **inputs,
34
- max_new_tokens=max_tokens,
 
35
  temperature=temperature,
36
  top_p=top_p,
37
- do_sample=True,
38
- )
39
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
40
-
41
- # Извлечение ответа модели (после "Bot:")
42
- bot_response = response.split("Bot:")[-1].strip()
43
- return bot_response
44
 
45
  # Интерфейс Gradio
46
  demo = gr.ChatInterface(
@@ -49,13 +45,7 @@ demo = gr.ChatInterface(
49
  gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
50
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
51
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
52
- gr.Slider(
53
- minimum=0.1,
54
- maximum=1.0,
55
- value=0.95,
56
- step=0.05,
57
- label="Top-p (nucleus sampling)",
58
- ),
59
  ],
60
  )
61
 
 
1
  import gradio as gr
2
+ from huggingface_hub import InferenceClient
3
 
4
+ # Подключение к модели zephyr-7b-beta через Inference API
5
+ client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
 
 
6
 
7
+ # Функция для обработки запросов и ответов
8
  def respond(
9
  message,
10
  history: list[tuple[str, str]],
 
13
  temperature,
14
  top_p,
15
  ):
16
+ # Формируем сообщения для модели
17
+ messages = [{"role": "system", "content": system_message}]
18
 
19
+ for user_message, bot_response in history:
20
+ if user_message:
21
+ messages.append({"role": "user", "content": user_message})
22
  if bot_response:
23
+ messages.append({"role": "assistant", "content": bot_response})
24
 
25
  # Добавляем текущее сообщение пользователя
26
+ messages.append({"role": "user", "content": message})
27
+
28
+ # Генерация ответа от модели
29
+ response = ""
30
+ for message in client.chat_completion(
31
+ messages,
32
+ max_tokens=max_tokens,
33
+ stream=True,
34
  temperature=temperature,
35
  top_p=top_p,
36
+ ):
37
+ token = message.choices[0].delta.content
38
+ response += token
39
+ yield response
 
 
 
40
 
41
  # Интерфейс Gradio
42
  demo = gr.ChatInterface(
 
45
  gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
46
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
47
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
48
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
 
 
 
 
 
 
49
  ],
50
  )
51