Spaces:
Running
Running
File size: 3,207 Bytes
56da996 1afab97 ec5fbdc 56da996 1afab97 56da996 db5829b 8cc4d1a db5829b 1afab97 db5829b 1afab97 56da996 1afab97 db5829b 8cc4d1a 1afab97 6d96487 360de49 c481706 360de49 8cc4d1a 360de49 8cc4d1a 360de49 8922e87 1afab97 db5829b c02e53f |
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 |
import gradio as gr
from gradio_client import Client
import requests
# Создаем клиент для взаимодействия с API
client = Client("llamameta/Pixtral-Large-Instruct-2411")
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
if not message:
return history, ""
# Формируем сообщения для отправки в API
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
# Генерируем ответ от чат-бота
response = client.predict(
message=message,
system_message=system_message,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
api_name="/chat"
)
# Обновляем историю сообщений
history.append((message, response))
return history, ""
# Ссылка на файл CSS
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text + ".gradio-container{max-width: 700px !important} h1{text-align:center}"
# Создаем интерфейс с использованием gr.Blocks
with gr.Blocks(css=css) as demo:
gr.Markdown("# Чат-бот")
with gr.Row():
with gr.Column():
chatbot = gr.Chatbot(label="Чат")
message = gr.Textbox(label="Введите ваше сообщение", placeholder="Введите ваше сообщение здесь...", lines=3, container=False)
submit = gr.Button("Отправить")
with gr.Accordion("Настройки", open=False):
system_message = gr.Textbox(value="Вы дружелюбный чат-бот, созданный balianone.com", label="Системное сообщение")
max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
# Обработка отправки сообщения
submit.click(
fn=respond,
inputs=[message, chatbot, system_message, max_tokens, temperature, top_p],
outputs=[chatbot, message]
)
# Обработка отправки сообщения при нажатии Ctrl+Enter
message.submit(
fn=respond,
inputs=[message, chatbot, system_message, max_tokens, temperature, top_p],
outputs=[chatbot, message]
)
# Запускаем интерфейс
if __name__ == "__main__":
demo.queue(max_size=250).launch(show_api=False, share=False)
|