File size: 1,302 Bytes
f92a51b
 
6eccccd
ec1e4af
f92a51b
814439a
d8abe74
6eccccd
23a6746
d8abe74
c8178ad
6eccccd
b2592e7
814439a
 
d8abe74
c8178ad
ec1e4af
6eccccd
2ed3994
6eccccd
18f89c2
2c6863b
d74acb3
2ed3994
715e65d
10954e8
0d85215
10954e8
4e11e38
814439a
 
 
746781e
b4512d2
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
import gradio as gr
import requests
import json
import os

def generate(description, model, max_tokens):
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {os.getenv("API_KEY")}'
    }

    payload = {
        'messages': [{'role': 'system', 'content': f'{description}'}],
        'max_tokens': max_tokens,
        'model': model
    }

    response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)
    data = json.loads(response.text)

    if 'choices' in data and len(data['choices']) > 0:
        command = data['choices'][0]['message']['content'].strip()
        return command
    elif 'error' in data:
        error_message = data['error']['message']
        return f'Ошибка: {error_message}'
    else:
        return f'Не удалось сгенерировать текст. {data}'

iface = gr.Interface(fn=generate, inputs=[
    gr.Textbox(label="Запрос"),
    gr.Radio(show_label=True, label="Модель", interactive=True, choices=["gpt-3.5-turbo", "gpt-3.5-turbo-16k", "gpt-4"], value="gpt-3.5-turbo"),
    gr.Slider(show_label=True, label="Максимум токенов", minimum=100, maximum=15000, value=10000, step=1)
], outputs=gr.Textbox(label="Ответ"), title="EasyGPT")
iface.launch(share=True)