File size: 2,449 Bytes
e045987
 
 
bf97a50
 
e045987
 
 
 
 
 
 
 
 
 
 
 
 
bf97a50
e045987
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import requests
import os
 
token = os.getenv("HF_TOKEN")

# Функция для генерации текста
def generate_text(prompt, model_choice, max_tokens, *other_params):
    # Сопоставление имени модели с URL
    model_urls = {
        "GPT-3.5": "https://api-inference.huggingface.co/models/ai-forever/ruGPT-3.5-13B",
        "GPT-4": "https://api-inference.huggingface.co/models/ai-forever/ruGPT-4"
    }
    # Выбор URL в зависимости от выбранной модели
    api_url = model_urls[model_choice]

    # Подготовка данных для запроса
    headers = {
        "Authorization": f"Bearer {token}"
    }
    payload = {
        "inputs": prompt,
        "parameters": {"max_length": max_tokens},
        "options": {"use_cache": False}
    }

    # Отправка запроса на API
    response = requests.post(api_url, headers=headers, json=payload)
    if response.status_code == 200:
        # Возвращаем сгенерированный текст
        return response.json()[0]['generated_text']
    else:
        # Возвращаем сообщение об ошибке
        return "Error: " + response.text

# Создание интерфейса с помощью Gradio Blocks
with gr.Blocks() as demo:
    with gr.Tab("Базовые настройки"):
        with gr.Row():
            prompt = gr.Textbox(label="Prompt", lines=3, placeholder="Введите текст...")
            model_choice = gr.Radio(["GPT-3.5", "GPT-4"], label="Выбор модели", value="GPT-3.5")
    
    with gr.Tab("Расширенные настройки"):
        with gr.Row():
            max_tokens = gr.Slider(100, 5000, step=1, label="Максимум токенов")
            # Здесь можно добавить другие параметры для API генерации текста
    
    with gr.Row():
        generate_btn = gr.Button("Генерация")
    
    with gr.Row():
        output_text = gr.Textbox(label="Ответ", placeholder="Сгенерированный текст будет здесь...")
    
    # Установка функции обратного вызова
    generate_btn.click(
        fn=generate_text,
        inputs=[prompt, model_choice, max_tokens],
        outputs=output_text
    )

# Запуск интерфейса
demo.launch()