File size: 1,730 Bytes
369eeaa
 
 
 
 
 
 
6e80ea9
 
 
9c16db8
 
369eeaa
 
 
 
 
 
 
9c16db8
369eeaa
 
 
 
 
9c16db8
369eeaa
 
 
6e80ea9
 
 
 
 
 
 
 
 
538666e
 
 
 
 
 
 
6e80ea9
 
369eeaa
6e80ea9
10c6e83
538666e
369eeaa
d1c792c
369eeaa
 
 
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
import gradio as gr
import requests
import os

OPENAI_API_KEY = os.getenv("API_KEY")
API_URL = os.getenv("BASE_URL")

# Список для хранения сообщений в чате
chat_history = []

# Функция для генерации ответов на основе диалога
def generate_response(dialog):
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {OPENAI_API_KEY}',
    }

    data = {
        'model': 'gpt-3.5-turbo',
        'messages': [{'role': 'system', 'content': 'You are a helpful assistant.'}] + dialog,
        'max_tokens': 150,
    }

    response = requests.post(API_URL, json=data, headers=headers)
    response_data = response.json()
    generated_text = response_data['choices'][0]['message']['content'].strip()

    return generated_text

# Функция для обновления чата
def update_chat(input_text):
    user_message = {'role': 'user', 'content': input_text}
    chat_history.append(user_message)
    
    # Генерация ответа на основе текущего диалога
    assistant_reply = generate_response(chat_history)
    assistant_message = {'role': 'assistant', 'content': assistant_reply}
    chat_history.append(assistant_message)
    
    # Обновление текста в поле вывода
    output_text = "Chat History:\n"
    for message in chat_history:
        output_text += f"{message['role']}: {message['content']}\n"

    return output_text

# Интерфейс Gradio для чата
iface = gr.Interface(
    fn=update_chat,
    inputs=gr.Textbox(),
    outputs=gr.Textbox(type="readonly"),
    live=True,
    title="Chat with GPT-3.5-turbo"
)

iface.launch()