Spaces:
Running
Running
File size: 2,258 Bytes
56da996 1afab97 fe1fdcb 56da996 1afab97 56da996 db5829b 1afab97 db5829b 1afab97 56da996 1afab97 db5829b 1afab97 db5829b 8922e87 db5829b 8922e87 db5829b 1afab97 c02e53f 56da996 c02e53f 8922e87 c02e53f 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 |
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,
):
# Формируем сообщения для отправки в 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"
)
yield response
# Определяем интерфейс Gradio
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="Вы дружелюбный чат-бот, созданный balianone.com", label="Системное сообщение"),
gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура"),
gr.Slider(
minimum=0.0,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (нуклеарное сэмплирование)",
),
],
title="Чат-бот"
)
# Ссылка на файл 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}"
# Добавляем CSS для скрытия футера
demo.css = css
# Запускаем интерфейс
if __name__ == "__main__":
demo.queue(max_size=250).launch(show_api=False, share=False)
|