Rooni commited on
Commit
e045987
1 Parent(s): 4ee73f7

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import requests
3
+ import os
4
+
5
+ # Функция для генерации текста
6
+ def generate_text(prompt, model_choice, max_tokens, *other_params):
7
+ # Сопоставление имени модели с URL
8
+ model_urls = {
9
+ "GPT-3.5": "https://api-inference.huggingface.co/models/ai-forever/ruGPT-3.5-13B",
10
+ "GPT-4": "https://api-inference.huggingface.co/models/ai-forever/ruGPT-4"
11
+ }
12
+ # Выбор URL в зависимости от выбранной модели
13
+ api_url = model_urls[model_choice]
14
+
15
+ # Подготовка данных для запроса
16
+ headers = {
17
+ "Authorization": f"Bearer {os.getenv("HF_TOKEN")}"
18
+ }
19
+ payload = {
20
+ "inputs": prompt,
21
+ "parameters": {"max_length": max_tokens},
22
+ "options": {"use_cache": False}
23
+ }
24
+
25
+ # Отправка запроса на API
26
+ response = requests.post(api_url, headers=headers, json=payload)
27
+ if response.status_code == 200:
28
+ # Возвращаем сгенерированный текст
29
+ return response.json()[0]['generated_text']
30
+ else:
31
+ # Возвращаем сообщение об ошибке
32
+ return "Error: " + response.text
33
+
34
+ # Создание интерфейса с помощью Gradio Blocks
35
+ with gr.Blocks() as demo:
36
+ with gr.Tab("Базовые настройки"):
37
+ with gr.Row():
38
+ prompt = gr.Textbox(label="Prompt", lines=3, placeholder="Введите текст...")
39
+ model_choice = gr.Radio(["GPT-3.5", "GPT-4"], label="Выбор модели", value="GPT-3.5")
40
+
41
+ with gr.Tab("Расширенные настройки"):
42
+ with gr.Row():
43
+ max_tokens = gr.Slider(100, 5000, step=1, label="Максимум токенов")
44
+ # Здесь можно добавить другие параметры для API генерации текста
45
+
46
+ with gr.Row():
47
+ generate_btn = gr.Button("Генерация")
48
+
49
+ with gr.Row():
50
+ output_text = gr.Textbox(label="Ответ", placeholder="Сгенерированный текст будет здесь...")
51
+
52
+ # Установка функции обратного вызова
53
+ generate_btn.click(
54
+ fn=generate_text,
55
+ inputs=[prompt, model_choice, max_tokens],
56
+ outputs=output_text
57
+ )
58
+
59
+ # Запуск интерфейса
60
+ demo.launch()