Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,37 +2,38 @@ import gradio as gr
|
|
| 2 |
from huggingface_hub import InferenceClient
|
| 3 |
import os
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
# Скрытый системный промт
|
| 6 |
SYSTEM_PROMPT = "Ты — Брутальный ИИ. Ответы только по делу, никакой вежливости. Стиль: краткий терминал."
|
| 7 |
|
| 8 |
-
# Авторизация: используем токен из секретов Space
|
| 9 |
-
token = os.getenv("HF_TOKEN")
|
| 10 |
-
if not token:
|
| 11 |
-
raise ValueError("HF_TOKEN secret not set. Please set it in HF Spaces Settings.")
|
| 12 |
-
client = InferenceClient("meta-llama/Meta-Llama-3-8B-Instruct", token=token)
|
| 13 |
-
|
| 14 |
def chat_fn(message, history_tuples):
|
| 15 |
-
# Конвертируем историю
|
| 16 |
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
|
| 17 |
for user_msg, assistant_msg in history_tuples:
|
| 18 |
messages.append({"role": "user", "content": user_msg})
|
| 19 |
messages.append({"role": "assistant", "content": assistant_msg})
|
| 20 |
|
| 21 |
-
# Добавляем текущее сообщение пользователя
|
| 22 |
messages.append({"role": "user", "content": message})
|
| 23 |
|
| 24 |
response = ""
|
| 25 |
try:
|
| 26 |
-
#
|
| 27 |
-
|
| 28 |
-
for msg in client.chat_completion(messages, max_tokens=1024, stream=True, temperature=0.6):
|
| 29 |
token_str = msg.choices.delta.content
|
| 30 |
response += token_str
|
| 31 |
yield response
|
| 32 |
except Exception as e:
|
|
|
|
|
|
|
| 33 |
yield f"Критическая Ошибка: {str(e)}"
|
| 34 |
|
| 35 |
-
# Брутальный стиль
|
| 36 |
css = """
|
| 37 |
body, .gradio-container { background-color: #000000 !important; color: #00ff00 !important; }
|
| 38 |
.chatbot { background-color: #050505 !important; border: 1px solid #222 !important; height: 85vh !important; }
|
|
@@ -44,10 +45,8 @@ footer { display: none !important; }
|
|
| 44 |
with gr.Blocks() as demo:
|
| 45 |
chatbot = gr.Chatbot(elem_classes="chatbot", show_label=False)
|
| 46 |
msg = gr.Textbox(placeholder="Командуй...", show_label=False, container=False)
|
| 47 |
-
|
| 48 |
-
# Прямая связь между вводом и функцией
|
| 49 |
msg.submit(chat_fn, [msg, chatbot], [chatbot, msg])
|
| 50 |
|
| 51 |
if __name__ == "__main__":
|
| 52 |
-
# CSS передается в launch()
|
| 53 |
demo.launch(css=css)
|
|
|
|
|
|
| 2 |
from huggingface_hub import InferenceClient
|
| 3 |
import os
|
| 4 |
|
| 5 |
+
# Используем вашу модель
|
| 6 |
+
MODEL_NAME = "Kolyadual/MIXdevAI-llama"
|
| 7 |
+
|
| 8 |
+
# Клиент без указания токена.
|
| 9 |
+
# HF Spaces автоматически использует фоновый токен, если модель публичная.
|
| 10 |
+
client = InferenceClient(MODEL_NAME)
|
| 11 |
+
|
| 12 |
# Скрытый системный промт
|
| 13 |
SYSTEM_PROMPT = "Ты — Брутальный ИИ. Ответы только по делу, никакой вежливости. Стиль: краткий терминал."
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
def chat_fn(message, history_tuples):
|
| 16 |
+
# Конвертируем историю в правильный формат для HF API (словари 'role', 'content')
|
| 17 |
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
|
| 18 |
for user_msg, assistant_msg in history_tuples:
|
| 19 |
messages.append({"role": "user", "content": user_msg})
|
| 20 |
messages.append({"role": "assistant", "content": assistant_msg})
|
| 21 |
|
|
|
|
| 22 |
messages.append({"role": "user", "content": message})
|
| 23 |
|
| 24 |
response = ""
|
| 25 |
try:
|
| 26 |
+
# Запрос к API. Если модель публична, сработает без проблем.
|
| 27 |
+
for msg in client.chat_completion(messages=messages, max_tokens=1024, stream=True, temperature=0.6):
|
|
|
|
| 28 |
token_str = msg.choices.delta.content
|
| 29 |
response += token_str
|
| 30 |
yield response
|
| 31 |
except Exception as e:
|
| 32 |
+
# Если здесь будет ошибка "Unauthorized" или "Forbidden",
|
| 33 |
+
# значит, модель все-таки требует токен.
|
| 34 |
yield f"Критическая Ошибка: {str(e)}"
|
| 35 |
|
| 36 |
+
# Брутальный стиль
|
| 37 |
css = """
|
| 38 |
body, .gradio-container { background-color: #000000 !important; color: #00ff00 !important; }
|
| 39 |
.chatbot { background-color: #050505 !important; border: 1px solid #222 !important; height: 85vh !important; }
|
|
|
|
| 45 |
with gr.Blocks() as demo:
|
| 46 |
chatbot = gr.Chatbot(elem_classes="chatbot", show_label=False)
|
| 47 |
msg = gr.Textbox(placeholder="Командуй...", show_label=False, container=False)
|
|
|
|
|
|
|
| 48 |
msg.submit(chat_fn, [msg, chatbot], [chatbot, msg])
|
| 49 |
|
| 50 |
if __name__ == "__main__":
|
|
|
|
| 51 |
demo.launch(css=css)
|
| 52 |
+
|