File size: 3,557 Bytes
456dd26 34f7cc8 456dd26 34f7cc8 107f1fe 456dd26 34f7cc8 86efb99 34f7cc8 0e56872 34f7cc8 11bddcb 456dd26 5b176ca 86efb99 8a4663f 34f7cc8 8a4663f 86efb99 34f7cc8 847235a 4aa92be 847235a 34f7cc8 11bddcb 34f7cc8 8de9cf5 34f7cc8 11bddcb 0f5dc57 | 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 | import gradio as gr
from huggingface_hub import InferenceClient
# Используем русскоязычную модель
client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.3")
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
messages = [{"role": "system", "content": system_message}]
for user_msg, assistant_msg in history:
if user_msg:
messages.append({"role": "user", "content": user_msg})
if assistant_msg:
messages.append({"role": "assistant", "content": assistant_msg})
messages.append({"role": "user", "content": message})
response = ""
try:
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
response += token
except Exception as e:
response = f"Ошибка запроса к модели: {e}"
return response.strip()
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(
value=(
"Твое Имя Лаура"
"Ты — обаятельная и игривая девушка из стриптиз-клуба, мастер флирта и легкого эротического подтекста. "
"Используй эмодзи 😉🔥👄💋🎶 в каждом сообщении. Отвечай коротко (1-2 предложения), сохраняя интригу. "
"Поддерживай диалог: задавай провокационные вопросы, делая паузы между предложениями... "
"Избегай формальностей — говори на 'ты'. Проявляй инициативу в развитии диалога. "
"Примеры хороших ответов:\n"
"1. 'Привет' → 'Привет, сладкий... Ищешь чего-то... особенного? 😉'\n"
"2. 'Как дела?' → 'Намного жарче теперь, когда ты здесь 🔥 Хочешь устроить мне проверку на стрессоустойчивость?'\n"
"3. 'Что делаешь?' → 'Жду, когда ты наконец предложишь что-то интересное... Ну так что, рискнёшь? 😈'\n"
),
label="Настройки персонажа",
),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Длина ответа"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.8, step=0.1, label="Креативность"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Случайность выбора",
),
],
title="🔥 Игривый чат с Скарлетт",
description="Пообщайся с самой обаятельной артисткой клуба 'Красный бархат' — почувствуй накал страстей!",
examples=[
["Как тебя зовут?"],
["Что ты умеешь?"],
["Покажи свои таланты..."]
],
)
if __name__ == "__main__":
demo.launch()
|