HaveAI commited on
Commit
57fe6ea
·
verified ·
1 Parent(s): bc379c4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -16
app.py CHANGED
@@ -2,48 +2,60 @@ import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
- # Используем модель Qwen — она сейчас работает стабильнее всех с русским языком
 
6
  token = os.getenv("HF_TOKEN")
7
  client = InferenceClient("Qwen/Qwen2.5-72B-Instruct", token=token)
8
 
9
  def respond(message, history):
10
- # Ограничиваем историю последними 5 сообщениями, чтобы не перегружать API
11
- history = history[-5:]
12
 
13
- messages = [{"role": "system", "content": "Ты — профессиональный ИИ-ассистент твоё имя Flare. Пиши грамотно на русском языке."}]
 
 
 
14
 
 
15
  for user_msg, assistant_msg in history:
16
  if user_msg:
17
  messages.append({"role": "user", "content": user_msg})
18
  if assistant_msg:
19
  messages.append({"role": "assistant", "content": assistant_msg})
20
 
 
21
  messages.append({"role": "user", "content": message})
22
 
23
  response = ""
 
24
  try:
25
- # Уменьшаем max_tokens для стабильности
26
  for message_chunk in client.chat_completion(
27
  messages=messages,
28
- max_tokens=512,
29
  stream=True,
30
- temperature=0.5, # Снизили температуру для точности
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
- if "rate limit" in str(e).lower():
38
- yield "Ошибка: Слишком много запросов. Подожди 15 секунд."
39
- else:
40
- yield f"Ошибка API: {str(e)}"
41
 
42
- # Настройка интерфейса без лишних аргументов
43
  demo = gr.ChatInterface(
44
  fn=respond,
45
- examples=["Как дела?", "Напиши план тренировки", "Что такое ИИ?"],
46
- title="Стабильный ИИ Чат"
 
 
47
  )
48
 
49
  if __name__ == "__main__":
 
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
+ # Инициализация клиента.
6
+ # Используем Qwen 2.5 72B — она сейчас лучшая для русского языка в бесплатном API
7
  token = os.getenv("HF_TOKEN")
8
  client = InferenceClient("Qwen/Qwen2.5-72B-Instruct", token=token)
9
 
10
  def respond(message, history):
11
+ # Ограничиваем контекст (последние 7 сообщений), чтобы не перегружать память
12
+ history = history[-7:]
13
 
14
+ # Твой системный промпт с именем Flare
15
+ messages = [
16
+ {"role": "system", "content": "Ты — профессиональный ИИ-ассистент. Твоё имя Flare. Пиши грамотно и вежливо на русском языке."}
17
+ ]
18
 
19
+ # Собираем историю диалога
20
  for user_msg, assistant_msg in history:
21
  if user_msg:
22
  messages.append({"role": "user", "content": user_msg})
23
  if assistant_msg:
24
  messages.append({"role": "assistant", "content": assistant_msg})
25
 
26
+ # Добавляем новое сообщение
27
  messages.append({"role": "user", "content": message})
28
 
29
  response = ""
30
+
31
  try:
32
+ # Запрос к модели
33
  for message_chunk in client.chat_completion(
34
  messages=messages,
35
+ max_tokens=1024,
36
  stream=True,
37
+ temperature=0.6,
38
  ):
39
+ # Безопасная проверка: есть ли данные в ответе?
40
+ if (hasattr(message_chunk, 'choices') and
41
+ message_chunk.choices and
42
+ message_chunk.choices[0].delta.content is not None):
43
+
44
+ token_text = message_chunk.choices[0].delta.content
45
  response += token_text
46
  yield response
47
+
48
  except Exception as e:
49
+ # Если API выдаст ошибку, пользователь увидит её в чате, а не белый экран
50
+ yield f"Ошибка связи с Flare: {str(e)}"
 
 
51
 
52
+ # Настройка интерфейса Gradio
53
  demo = gr.ChatInterface(
54
  fn=respond,
55
+ title="Flare AI Assistant",
56
+ description="Ваш персональный помощник в Hugging Face Spaces",
57
+ examples=["Привет! Как тебя зовут?", "Flare, напиши план на день", "Объясни квантовую физику просто"],
58
+ cache_examples=False # Отключаем кэш, чтобы избежать лишних ошибок при сборке
59
  )
60
 
61
  if __name__ == "__main__":