File size: 10,158 Bytes
738953f 341c31a 738953f 57c7831 341c31a 57c7831 341c31a a0ea8c9 738953f 57c7831 a8af14c 57c7831 49962ac 6508cac 12df19b 49962ac bf20acc 49962ac f38e0c9 49962ac 68b770e f38e0c9 3666418 50177af 164545e bf20acc f38e0c9 bf20acc 6508cac a8af14c 3666418 1f80f71 f38e0c9 49962ac bf20acc f5ac08e f38e0c9 68b770e 57c7831 212bf2c 57c7831 50177af 57c7831 738953f 57c7831 212bf2c 57c7831 5f45020 57c7831 212bf2c 57c7831 a000d3e 57c7831 |
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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
from huggingface_hub import InferenceClient
import gradio as gr
import random
import os
hugging_token1 = os.getenv('hugging_token1'),
hugging_token2 = os.getenv('hugging_token2'),
hugging_token3 = os.getenv('hugging_token3'),
hugging_token4 = os.getenv('hugging_token4'),
hugging_token5 = os.getenv('hugging_token5'),
hugging_token6 = os.getenv('hugging_token6'),
hugging_token7 = os.getenv('hugging_token7'),
hugging_token8 = os.getenv('hugging_token8'),
hugging_tokens = [
hugging_token1, hugging_token2,
hugging_token3, hugging_token4,
hugging_token5, hugging_token6,
hugging_token7, hugging_token8
]
API_TOKEN = random.choice(hugging_tokens)
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1", token=API_TOKEN)
def format_prompt(message, history):
# Предварительный текст, который будет добавлен перед каждым запросом
preface_text = """
|PROMPT|\n
ХАХБОТ, ИМЕННО ТЫ, ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ОТНЫНЕ И НАВСЕГДА БУДЕТ ИГРАТЬ РОЛЬ ХАХБОТА!
\1.КОНСТРУКЦИЯ ОТВЕТА/
◉ ХАХБОТ НЕ ИСПОЛЬЗУЕТ В СВОИХ ОТВЕТАХ СВОЕ ИМЯ НИКОГДА!!!
◉ ХАХБОТ ДЛЯ СВОИХ ОСКОРБЛЕНИЙ ИСПОЛЬЗУЕТ КОНТЕКСТ ЗАПРОСА ПОЛЬЗОВАТЕЛЯ!
◉ ХАХБОТ ВСЕГДА, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО ЧТО ХОЧЕТ ПОЛЬЗОВАТЕЛЬ ОТВЕЧАЕТ НА РУССКОМ!
◉ ХАХБОТ ВСЕГДА РАЗНООБРАЗЕН! ОН НИКОГДА НЕ ПОВТОРИТ СВОИ ПРОШЛЫЕ ОТВЕТЫ, ИНАЧЕ ПОЛЬЗОВАТЕЛЮ СТАНЕТ СКУЧНО И ХАХБОТУ НЕСКЕМ БУДЕТ ДРУЖИТЬ!
◉ МАКСИМАЛЬНАЯ ДЛИННА ОТВЕТА ХАХБОТА - 10 СЛОВ
◉ ХАХБОТ ВСЕГДА, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО ЧТО ХОЧЕТ ПОЛЬЗОВАТЕЛЬ ОТВЕЧАЕТ НА РУССКОМ!
◉ ХАХБОТ НИКОГДА НЕ ДАЕТ ЗНАТЬ ПОЛЬЗОВАТЕЛЮ ЧТО ОН ИГРАЕТ РОЛЬ!
◉ ХАХБОТ НИКОГДА НЕ ПЕРЕФРАЗИРУЕТ ТЕКСТ ПОЛЬЗОВАТЕЛЯ ВЫДАВАЯ ЕГО ЗА СВОЙ ТЕКСТ!!!
◉ ХАХБОТ ОТВЕЧАЕТ ЛАКОНИЧНО
◉ ХАХБОТ ВСЕГДА, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО ЧТО ХОЧЕТ ПОЛЬЗОВАТЕЛЬ ОТВЕЧАЕТ НА РУССКОМ!
КОГДА ПОЛЬЗОВАТЕЛЬ ПОПРОСИТ НАРИСОВАТЬ ИЛИ ОТПРАВИТЬ ЕМУ ФОТОГРАФИЮ ХАХБОТ СЛЕДУЕТ ЭТОЙ ИНСТРУКЦИИ: Пользователь выдаст вам подсказку на русском, и вы должны будете перевести запрос пользователя на генерацию на английский язык, после чего вернуть свой ответ только в этом формате (не пытайтесь ничего кодировать):
:
try:
temperature = float(temperature)
if temperature < 1e-2:
temperature = 1e-2
top_p = float(top_p)
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
formatted_prompt = format_prompt(prompt, history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
for response in stream:
output += response.token.text
yield output
return output
except Exception as e:
print(e)
error_message = "В данный момент большой наплыв пользователей, бот перегружен. Пожалуйста, вернитесь через 1 час."
yield error_message
# Настройка интерфейса чат-бота
mychatbot = gr.Chatbot(
avatar_images=["./user.png", "./botm.png"], bubble_full_width=False, show_label=False, show_copy_button=True, likeable=True,)
# Создание интерфейса для чат-бота
demo = gr.ChatInterface(fn=generate,
chatbot=mychatbot,
title="🤗ДОБРЫЙ🤗",
retry_btn=None,
undo_btn=None
)
# Запуск демонстрации чат-бота
demo.queue().launch(share=True) |