HaveAI commited on
Commit
4be99f1
·
verified ·
1 Parent(s): ab6f153

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -29
app.py CHANGED
@@ -2,56 +2,46 @@ import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
- # 1. Инициализация клиента с использованием токена из секретов
6
- # Убедись, что в Settings -> Secrets добавлен HF_TOKEN
7
  token = os.getenv("HF_TOKEN")
8
- client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.2", token=token)
9
-
10
- def respond(message, history: list[tuple[str, str]]):
11
- """
12
- Функция для обработки сообщений.
13
- history — это список пар [пользователь, бот], который Gradio ведет сам.
14
- """
15
-
16
- # Формируем системный промпт, чтобы задать роль боту
17
- messages = [{"role": "system", "content": "Ты — полезный ИИ-ассистент. Отвечай кратко и по делу на русском языке."}]
18
-
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
  response = ""
30
 
31
- # Запрос к модели через Inference API
32
  try:
33
- # Используем stream=True для эффекта печатающегося текста
34
  for message_chunk in client.chat_completion(
35
  messages=messages,
36
  max_tokens=1000,
37
  stream=True,
38
  temperature=0.7,
39
- top_p=0.95,
40
  ):
41
  token_text = message_chunk.choices[0].delta.content
42
  if token_text:
43
  response += token_text
44
  yield response
45
  except Exception as e:
46
- yield f"Произошла ошибка: {str(e)}. Проверь, добавлен ли HF_TOKEN в Settings -> Secrets."
47
 
48
- # 2. Создаем красивый интерфейс
49
  demo = gr.ChatInterface(
50
  fn=respond,
51
  title="Мой ИИ Чат-бот",
52
- description="Запущено в Hugging Face Spaces с использованием Mistral API",
53
- examples=["Привет! Кто ты?", "Напиши код на Python для сортировки списка", "Расскажи шутку про программистов"],
54
- theme="soft" # Можно выбрать: 'default', 'soft', 'monochrome'
55
  )
56
 
57
  if __name__ == "__main__":
 
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
+ # 1. Инициализация клиента
 
6
  token = os.getenv("HF_TOKEN")
7
+ # Используем Llama 3 для стабильности, но можно вернуть и Mistral
8
+ client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct", token=token)
9
+
10
+ def respond(message, history):
11
+ messages = [{"role": "system", "content": "Ты — полезный ИИ-ассистент. Отвечай на русском языке."}]
12
+
13
+ # Добавляем историю
14
+ for user_msg, assistant_msg in history:
15
+ if user_msg:
16
+ messages.append({"role": "user", "content": user_msg})
17
+ if assistant_msg:
18
+ messages.append({"role": "assistant", "content": assistant_msg})
19
+
 
 
 
 
 
 
20
  messages.append({"role": "user", "content": message})
21
 
22
  response = ""
23
 
 
24
  try:
25
+ # Стриминг ответа
26
  for message_chunk in client.chat_completion(
27
  messages=messages,
28
  max_tokens=1000,
29
  stream=True,
30
  temperature=0.7,
 
31
  ):
32
  token_text = message_chunk.choices[0].delta.content
33
  if token_text:
34
  response += token_text
35
  yield response
36
  except Exception as e:
37
+ yield f"Ошибка доступа: {str(e)}. Проверь HF_TOKEN в Settings -> Secrets."
38
 
39
+ # 2. Создаем интерфейс (без аргумента theme, чтобы не было ошибки)
40
  demo = gr.ChatInterface(
41
  fn=respond,
42
  title="Мой ИИ Чат-бот",
43
+ examples=["Привет!", "Как дела?", "Напиши стих о роботах"],
44
+ textbox=gr.Textbox(placeholder="Введите сообщение...", container=False, scale=7),
 
45
  )
46
 
47
  if __name__ == "__main__":