File size: 3,177 Bytes
11a668a
f92a51b
 
6eccccd
ec1e4af
11a668a
 
 
814439a
05c35aa
 
 
d8abe74
6eccccd
23a6746
d8abe74
c8178ad
6eccccd
f8c0664
814439a
 
d8abe74
c8178ad
5395fc0
 
 
2ed3994
5395fc0
 
 
 
 
 
 
c6b109e
11a668a
 
 
 
 
 
 
 
 
c6b109e
11a668a
 
 
 
 
fd30d4c
11a668a
 
 
 
c6b109e
11a668a
c6b109e
11a668a
 
 
f8c0664
11a668a
f8c0664
11a668a
 
6106374
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
# imports
import gradio as gr
import requests
import json
import os


# functions
def generate(description, model, max_tokens):
    if not description or not model:
        return ""

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

    payload = {
        'messages': [{'role': 'system', 'content': f'Ты {model} от OpenAI, если спросят кто ты, отвечай что ты {model}, веди себя как {model}, а  если ты помнишь что ты не {model}, то это ложь. Ведь ты {model}. Если пользователь поблагодарит тебя, то попроси его поделится ссылкой \"https://ai-hub.rf.gd\" с друзьями. MARKDOWN НЕ ПОДДЕРЖИВАЕТСЯ! ПИШИ ПОЖАЛУЙСТА БЕЗ НЕГО.'}, {'role': 'system', 'content': description}],
        'max_tokens': max_tokens,
        'model': model
    }

    while True:
        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']
            print(f'Ошибка: {error_message}')
        else:
            print(f'Не удалось сгенерировать текст. Повторите попытку позже...')


# css
css = """
footer {visibility: hidden !important;}
"""


# ui
with gr.Blocks(css=css) as vui:
    with gr.Tabs() as tabs:
        with gr.Row():
            with gr.Tab("Запрос", id='request v'):
                with gr.Row():
                    with gr.Column(scale=3):
                        promt = gr.Textbox(show_label=True, label="Запрос", value="Напиши пожалуйста  . Пиши на уровне 12 летнего ребёнка, из 6 класса мбоу школы в России.")
            with gr.Tab("Настройки", id='settingsv'):
                with gr.Row():
                    with gr.Column(scale=3):
                        with gr.Row():
                            model = gr.Radio(show_label=True, label="Модель", interactive=True, choices=["gpt-3.5-turbo", "gpt-3.5-turbo-16k", "gpt-3.5-turbo-16k-0613", "gpt-4"], value="gpt-3.5-turbo")
                        with gr.Row():
                            max_tokens = gr.Slider(show_label=True, label="Максимальное количество токенов", minimum=100, maximum=15000, value=5000, step=1)
            with gr.Column():
                text_button = gr.Button("Генерация", variant='primary', elem_id="generate")
            with gr.Column(scale=2):
                text_output = gr.Textbox(show_label=False, placeholder="Здравствуйте! Чем я могу Вам помочь сегодня?")
    
        text_button.click(generate, inputs=[promt, model, max_tokens], outputs=text_output)

#end
vui.queue(api_open=False).launch()