Xolkin commited on
Commit
dfa1a47
·
verified ·
1 Parent(s): c456b88

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -20
app.py CHANGED
@@ -1,8 +1,10 @@
1
  import gradio as gr
2
- from huggingface_hub import InferenceClient
3
 
4
- # Подключаем другую модель
5
- client = InferenceClient("deepseek-ai/DeepSeek-Prover-V2-7B")
 
 
6
 
7
  def respond(
8
  message,
@@ -12,39 +14,47 @@ def respond(
12
  temperature,
13
  top_p,
14
  ):
 
15
  messages = [{"role": "system", "content": system_message}]
16
-
17
  for val in history:
18
  if val[0]:
19
  messages.append({"role": "user", "content": val[0]})
20
  if val[1]:
21
  messages.append({"role": "assistant", "content": val[1]})
22
-
 
23
  messages.append({"role": "user", "content": message})
24
 
25
- response = ""
 
26
 
27
- for message in client.chat_completion(
28
- messages,
29
- max_tokens=max_tokens,
30
- stream=True,
 
 
 
31
  temperature=temperature,
32
  top_p=top_p,
33
- ):
34
- token = message.choices[0].delta.content
35
- response += token
 
 
36
 
37
- # Add the footer message
38
  response += "\nСделано больницей EMS штата Alta!"
39
 
40
- yield response
41
 
42
- # Запускаем Gradio интерфейс с новой моделью
43
- demo = gr.ChatInterface(
44
- respond,
45
- additional_inputs=[
46
  gr.Textbox(value="Здравствуйте. Отвечай кратко(не пиши вступление, умозаключения итп) и сразу пиши начинай с этого ответ: Предварительный диагноз:(диагноз), Операция: (Если требуется, только название, не надо писать хирургическое вмешательство или подобное, а четкое медицинское название операции), Лечение: (Кратко, очень). Не пиши воду. Только по факту на 3 пункта отвечай. Не отходи от этого шаблона", label="System message"),
47
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
48
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
49
  gr.Slider(
50
  minimum=0.1,
 
1
  import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
 
4
+ # Подключаем модель и токенизатор
5
+ model_name = "distilgpt2" # Используем distilgpt2 как более легкую модель
6
+ model = AutoModelForCausalLM.from_pretrained(model_name)
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
 
9
  def respond(
10
  message,
 
14
  temperature,
15
  top_p,
16
  ):
17
+ # Создаем входные данные
18
  messages = [{"role": "system", "content": system_message}]
19
+
20
  for val in history:
21
  if val[0]:
22
  messages.append({"role": "user", "content": val[0]})
23
  if val[1]:
24
  messages.append({"role": "assistant", "content": val[1]})
25
+
26
+ # Добавляем последнее сообщение пользователя
27
  messages.append({"role": "user", "content": message})
28
 
29
+ # Объединяем все сообщения в один текст
30
+ input_text = "\n".join([msg["content"] for msg in messages])
31
 
32
+ # Токенизация текста
33
+ inputs = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True)
34
+
35
+ # Генерация ответа моделью
36
+ outputs = model.generate(
37
+ inputs["input_ids"],
38
+ max_length=max_tokens,
39
  temperature=temperature,
40
  top_p=top_p,
41
+ do_sample=True,
42
+ )
43
+
44
+ # Декодируем результат в строку
45
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
46
 
47
+ # Добавляем подпись
48
  response += "\nСделано больницей EMS штата Alta!"
49
 
50
+ return response
51
 
52
+ # Запускаем Gradio интерфейс
53
+ demo = gr.Interface(
54
+ fn=respond,
55
+ inputs=[
56
  gr.Textbox(value="Здравствуйте. Отвечай кратко(не пиши вступление, умозаключения итп) и сразу пиши начинай с этого ответ: Предварительный диагноз:(диагноз), Операция: (Если требуется, только название, не надо писать хирургическое вмешательство или подобное, а четкое медицинское название операции), Лечение: (Кратко, очень). Не пиши воду. Только по факту на 3 пункта отвечай. Не отходи от этого шаблона", label="System message"),
57
+ gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max Tokens"),
58
  gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
59
  gr.Slider(
60
  minimum=0.1,