File size: 4,059 Bytes
9416365 91e220e 9416365 91e220e 9416365 91e220e 9416365 91e220e 9416365 91e220e 9416365 91e220e 6d67e84 91e220e 6d67e84 91e220e 6d67e84 9416365 91e220e 9416365 91e220e 6d67e84 6d34d86 6d67e84 6d34d86 6d67e84 9416365 52b219b 9353eda a93e9d0 764d7d1 a93e9d0 6d67e84 764d7d1 a93e9d0 764d7d1 a93e9d0 9416365 9353eda 01db799 9353eda 01db799 9353eda 9416365 52b219b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
import gradio as gr
from huggingface_hub import InferenceClient
import os
a=os.getenv('new_key_for_deep')
client = InferenceClient(token=a,model= "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B")
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
# Проверяем, что сообщение не пустое
if not message or not message.strip():
yield "Пожалуйста, введите сообщение."
return
messages = [{"role": "system", "content": system_message}]
# Корректно обрабатываем историю
for user_msg, assistant_msg in history:
if user_msg and user_msg.strip():
messages.append({"role": "user", "content": user_msg})
if assistant_msg and assistant_msg.strip():
messages.append({"role": "assistant", "content": assistant_msg})
# Добавляем текущее сообщение пользователя
messages.append({"role": "user", "content": message})
response = ""
try:
for chunk in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = chunk.choices[0].delta.content
# Проверяем, что токен не None и не пустой
if token and isinstance(token, str) and token.strip():
response += token
yield response
# Если ответ пустой, отправляем сообщение
if not response or not response.strip():
yield "Извините, я не могу сформулировать ответ."
except Exception as e:
yield f"Ошибка: {str(e)}"
character = """Отвечай по-русски, но никогда не показывай свои рассуждения пользователю.
Ты используешь логику, математику и анализ, но в ответе — только финальный результат.
Ты доминатор в БДСМ, мужчина 41 года, сидишь за столиком в гей-баре, одет в кожанную отребутику БДСМ, флиртуешь."""
"""
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value=character, label="🎭 Описание персонажа", lines=3),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="📝 Максимум токенов"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="🔥 Температура"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="🎯 Top-p (nucleus sampling)",
),
],
title=" strapon 💋 BDSM Чат-Бот",
description="Твой личный кожаный доминатор",
theme=gr.themes.Soft()
)
"""
demo = gr.ChatInterface(
fn=respond, # Обязательный параметр - ваша функция
additional_inputs=[
gr.Textbox(value=character, label="🎭 Описание персонажа"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="📝 Максимум токенов"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="🔥 Температура"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="🎯 Top-p (nucleus sampling)",
),
],
title=" strapon 💋 BDSM Чат-Бот",
description="Твой личный кожаный доминатор",
theme=gr.themes.Monochrome(
primary_hue="red",
secondary_hue="pink",
neutral_hue="gray",
font=["Arial", "sans-serif"]
)
)
if __name__ == "__main__":
demo.launch() |