| import gradio as gr |
| from huggingface_hub import InferenceClient |
|
|
| |
| client = InferenceClient("mistralai/Mistral-Small-24B-Instruct-2501") |
|
|
| 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. 'Что делаешь?' → 'Жду, когда ты наконец предложишь что-то интересное... *медленно облизываю губы* Ну так что, рискнёшь? 😈'" |
| ), |
| 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() |
|
|