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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -37
app.py CHANGED
@@ -2,60 +2,46 @@ import gradio as gr
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__":
 
2
  from huggingface_hub import InferenceClient
3
  import os
4
 
5
+ # Используем Llama 3.2 3B - она ЛУЧШАЯ по стабильности для бесплатных Space
 
6
  token = os.getenv("HF_TOKEN")
7
+ client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct", token=token)
8
 
9
  def respond(message, history):
10
+ # Системная инструкция
11
+ messages = [{"role": "system", "content": "Ты — профессиональный ИИ-ассистент Flare. Пиши грамотно на русском языке."}]
 
 
 
 
 
12
 
13
+ # Добавляем только последние 3 сообщения, чтобы точно не вылетала ошибка лимита
14
+ for user_msg, assistant_msg in history[-3:]:
15
+ if user_msg and assistant_msg:
16
+ messages.append({"role": "user", "content": str(user_msg)})
17
+ messages.append({"role": "assistant", "content": str(assistant_msg)})
 
18
 
19
+ # Текущее сообщение
20
+ messages.append({"role": "user", "content": str(message)})
21
 
22
  response = ""
 
23
  try:
24
+ # Уменьшаем число токенов в ответе для скорости
25
  for message_chunk in client.chat_completion(
26
  messages=messages,
27
+ max_tokens=500,
28
  stream=True,
29
+ temperature=0.7,
30
  ):
31
+ if message_chunk.choices and len(message_chunk.choices) > 0:
 
 
 
 
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
+ # Если всё же упало, выводим причину
38
+ yield f"Flare столкнулся с ошибкой. Попробуй еще раз через 5 секунд. (Текст ошибки: {str(e)})"
39
 
40
+ # Создаем интерфейс без лишних наворотов
41
  demo = gr.ChatInterface(
42
  fn=respond,
43
+ title="Flare AI",
44
+ description="Стабильная версия ассистента"
 
 
45
  )
46
 
47
  if __name__ == "__main__":