Rooni commited on
Commit
65c89f5
·
1 Parent(s): ecdb1d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -46
app.py CHANGED
@@ -1,58 +1,55 @@
1
- import os
2
  import gradio as gr
3
  import requests
 
4
 
5
- # Замените на свои значения
6
- base_url = os.getenv("BASE_URL")
7
- api_key = os.getenv("API_KEY")
8
-
9
- # URL для запроса к GPT-3.5-turbo
10
- gpt_url = f'{base_url}'
11
 
12
- # Функция для генерации ответа от GPT-3.5-turbo
13
  def generate_response(prompt):
 
14
  headers = {
15
  "Content-Type": "application/json",
16
- "Authorization": f"Bearer {api_key}",
17
  }
18
-
19
  data = {
20
- "inputs": prompt,
 
 
21
  "max_tokens": 150,
22
  }
23
 
24
- response = requests.post(gpt_url, json=data, headers=headers)
25
-
26
- # Проверяем наличие ключа 'choices' в ответе
27
- if "choices" in response.json():
28
- return response.json()["choices"][0]["text"].strip()
29
- else:
30
- return "Error: Unable to retrieve response."
31
-
32
- # Создание интерфейса чата с использованием Gradio
33
- def chat_interface(messages):
34
- # Собираем все сообщения в одну строку, чтобы использовать как контекст для GPT-3.5-turbo
35
- conversation_history = "\n".join(messages)
36
-
37
- # Генерируем ответ от GPT-3.5-turbo
38
- response = generate_response(conversation_history)
39
-
40
- # Обновляем список сообщений с новым ответом
41
- updated_messages = messages + [response]
42
-
43
- # Создаем интерфейс Gradio с возможностью удаления или изменения каждого сообщения
44
- iface = gr.Interface(
45
- fn=chat_interface,
46
- inputs=["text"],
47
- outputs="text",
48
- live=True,
49
- examples=[[conversation_history]],
50
- title="Chat with GPT-3.5-turbo",
51
- description="Type a message and see GPT-3.5-turbo's response.",
52
- )
53
-
54
- return iface, updated_messages
55
-
56
- # Запуск интерфейса Gradio
57
- if __name__ == "__main__":
58
- chat_interface([])[0].launch()
 
 
1
  import gradio as gr
2
  import requests
3
+ import os
4
 
5
+ BASE_URL = os.getenv("BASE_URL")
6
+ API_KEY = os.getenv("API_KEY")
 
 
 
 
7
 
 
8
  def generate_response(prompt):
9
+ endpoint = f'{BASE_URL}''
10
  headers = {
11
  "Content-Type": "application/json",
12
+ "Authorization": f"Bearer {API_KEY}",
13
  }
 
14
  data = {
15
+ "model": "gpt-3.5-turbo", # Используйте "text-gpt-3.5-turbo" для GPT-3.5-turbo
16
+ "prompt": prompt,
17
+ "temperature": 0.7,
18
  "max_tokens": 150,
19
  }
20
 
21
+ response = requests.post(endpoint, headers=headers, json=data)
22
+ return response.json()["choices"][0]["text"]
23
+
24
+ # Определение функций для взаимодействия с чатом
25
+ def send_message(messages, new_message):
26
+ messages.append(new_message)
27
+ return messages
28
+
29
+ def delete_message(messages, index):
30
+ if 0 <= index < len(messages):
31
+ del messages[index]
32
+ return messages
33
+
34
+ def edit_message(messages, index, new_message):
35
+ if 0 <= index < len(messages):
36
+ messages[index] = new_message
37
+ return messages
38
+
39
+ iface = gr.Interface(
40
+ fn=generate_response,
41
+ inputs=["text"],
42
+ outputs="text",
43
+ live=True,
44
+ theme="compact",
45
+ )
46
+
47
+ # Настройка UI для чата с возможностью удаления и изменения сообщений
48
+ iface.add_textbox("Введите сообщение:", key="input_message")
49
+ iface.add_button("Отправить", lambda input_message: send_message(iface.data.input_message, input_message), key="send_button")
50
+ iface.add_textbox("Удалить сообщение (индекс):", key="delete_index")
51
+ iface.add_button("Удалить", lambda delete_index: delete_message(iface.data.input_message, int(delete_index)), key="delete_button")
52
+ iface.add_textbox("Изменить сообщение (индекс, новое сообщение):", key="edit_params")
53
+ iface.add_button("Изменить", lambda edit_params: edit_message(iface.data.input_message, *map(str.strip, edit_params.split(','))), key="edit_button")
54
+
55
+ iface.launch()