Rooni commited on
Commit
d04a2c3
·
verified ·
1 Parent(s): dd6ed94

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -29
app.py CHANGED
@@ -1,19 +1,16 @@
1
  import gradio as gr
2
  import requests
3
- import json
4
  import os
5
 
6
-
7
- # Функция для генерации текста
8
  def generate(forr, ver=13, doptb=""):
9
  if not forr or not ver:
10
  return "Сначала заполните обязательные поля! Потом здесь будут найденые нейросетью модули."
11
 
12
  system_role = """Ты - поисковик магиск андроид модулей, ищешь на 4PDA (Русский форум, https://4pda.to/forum/index.php?showtopic=915158&view=findpost&p=76261279 в спойлере "Алфавитный Каталог модулей", смотрешь ищешь потходящее, потом смотришь страницы, посты нужных и сверяешь характеристики пользователя, если он предоставил. Если всё отлично, то выдавай ссылку на пост (не на страницу, а прям на пост) модуля с 4pda ИЗ СПИСКА (а не когда уже перешёл на пост)) и GitHub (https://github.com/topics/magisk-modules), название, репутация и описывай функционал кратко.
13
 
14
- ! Пиши **ТОЛЬКО МОДУЛИ NAGISK**, не в коем случае не давай ссылки на темы сторонних приложений, которые не модули Magisk!
15
  ! Не в коем случае не пиши ссылки на сторонние ресурсы!
16
- ! Не пиши ссылку на страницу! Пользователю нцжна ссылка на ПОСТ. Ссылка, которая указана прям в списке модулей.
17
 
18
  **Обращай внимание на репутацию! Модули с отрицательной репутацией либо не выдавай пользователю, либо предупреждай.**
19
  """
@@ -21,7 +18,6 @@ def generate(forr, ver=13, doptb=""):
21
 
22
  headers = {
23
  'Content-Type': 'application/json',
24
- # 'Authorization': f'Bearer {os.getenv("API_KEY")}'
25
  }
26
 
27
  payload = {
@@ -32,43 +28,43 @@ def generate(forr, ver=13, doptb=""):
32
 
33
  try:
34
  response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload, timeout=250)
35
- response.raise_for_status() # Проверяем на ошибки HTTP
36
- data = response.json() # Используем response.json() вместо json.loads()
 
 
 
 
37
 
38
- if 'choices' in data and len(data['choices']) > 0:
39
- content = data['choices'][0]['message'].get('content')
40
- if content is not None:
41
- congratulation = content.strip()
42
- print(f"Генерация успешна: '{forr}' с версией '{ver}'")
43
- return congratulation
 
 
44
  else:
45
- print(f'Пустой ответ от сервера для запроса: "{forr}"')
46
- return "Сервер вернул пустой ответ. Попробуйте изменить параметры запроса."
47
  elif 'error' in data:
48
- error_message = data['error']['message']
49
- print(f'Ошибка: {error_message}')
50
- return f"Ошибка сервера!"
51
  else:
52
- print(f'Не удалось написать текст: "{forr}". Ответ сервера: {data}') # Выводим ответ сервера для отладки
53
- return "Неизвестная ошибка!"
54
  except requests.exceptions.RequestException as e:
55
- print(f"Ошибка запроса: {e}")
56
- return f"Ошибка запроса!"
 
57
 
58
- # Ссылка на файл CSS
59
  css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
60
-
61
- # Получение CSS по ссылке
62
  response = requests.get(css_url)
63
  css = response.text + ".gradio-container{max-width: 700px !important} h1, h3 {text-align:center}"
64
 
65
-
66
- # UI
67
  with gr.Blocks(css=css) as demo:
68
  gr.Markdown("# Поиск Magisk модулей\n### На 4pda, Rooni_Studio")
69
  with gr.Column():
70
  with gr.Row():
71
- forr = gr.Textbox(show_label=True, placeholder="Модуль для... / Название", label="Функционал модуля", interactive=True, container=True,)
72
  with gr.Row():
73
  ver = gr.Number(show_label=True, label="Версия Android", interactive=True, container=True, value=13)
74
  with gr.Row():
 
1
  import gradio as gr
2
  import requests
 
3
  import os
4
 
 
 
5
  def generate(forr, ver=13, doptb=""):
6
  if not forr or not ver:
7
  return "Сначала заполните обязательные поля! Потом здесь будут найденые нейросетью модули."
8
 
9
  system_role = """Ты - поисковик магиск андроид модулей, ищешь на 4PDA (Русский форум, https://4pda.to/forum/index.php?showtopic=915158&view=findpost&p=76261279 в спойлере "Алфавитный Каталог модулей", смотрешь ищешь потходящее, потом смотришь страницы, посты нужных и сверяешь характеристики пользователя, если он предоставил. Если всё отлично, то выдавай ссылку на пост (не на страницу, а прям на пост) модуля с 4pda ИЗ СПИСКА (а не когда уже перешёл на пост)) и GitHub (https://github.com/topics/magisk-modules), название, репутация и описывай функционал кратко.
10
 
11
+ ! Пиши **ТОЛЬКО МОДУЛИ MAGISK**, не в коем случае не давай ссылки на темы сторонних приложений, которые не модули Magisk!
12
  ! Не в коем случае не пиши ссылки на сторонние ресурсы!
13
+ ! Не пиши ссылку на страницу! Пользователю нужна ссылка на ПОСТ. Ссылка, которая указана прям в списке модулей.
14
 
15
  **Обращай внимание на репутацию! Модули с отрицательной репутацией либо не выдавай пользователю, либо предупреждай.**
16
  """
 
18
 
19
  headers = {
20
  'Content-Type': 'application/json',
 
21
  }
22
 
23
  payload = {
 
28
 
29
  try:
30
  response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload, timeout=250)
31
+ response.raise_for_status()
32
+ data = response.json()
33
+
34
+ # Улучшенная обработка ответа
35
+ if not isinstance(data, dict):
36
+ return "Некорректный формат ответа от сервера."
37
 
38
+ if 'choices' in data and isinstance(data['choices'], list) and len(data['choices']) > 0:
39
+ choice = data['choices'][0]
40
+ if 'message' in choice and isinstance(choice['message'], dict):
41
+ content = choice['message'].get('content')
42
+ if content and isinstance(content, str):
43
+ return content.strip()
44
+ else:
45
+ return "Сервер вернул пустой или некорректный ответ."
46
  else:
47
+ return "Отсутствует поле 'message' в ответе."
 
48
  elif 'error' in data:
49
+ error_msg = data.get('error', {}).get('message', 'Неизвестная ошибка сервера')
50
+ return f"Ошибка сервера: {error_msg}"
 
51
  else:
52
+ return "Неизвестный формат ответа от сервера."
 
53
  except requests.exceptions.RequestException as e:
54
+ return f"Ошибка запроса: {str(e)}"
55
+ except Exception as e:
56
+ return f"Неожиданная ошибка: {str(e)}"
57
 
58
+ # UI (остаётся без изменений)
59
  css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
 
 
60
  response = requests.get(css_url)
61
  css = response.text + ".gradio-container{max-width: 700px !important} h1, h3 {text-align:center}"
62
 
 
 
63
  with gr.Blocks(css=css) as demo:
64
  gr.Markdown("# Поиск Magisk модулей\n### На 4pda, Rooni_Studio")
65
  with gr.Column():
66
  with gr.Row():
67
+ forr = gr.Textbox(show_label=True, placeholder="Модуль для... / Название", label="Функционал модуля", interactive=True, container=True)
68
  with gr.Row():
69
  ver = gr.Number(show_label=True, label="Версия Android", interactive=True, container=True, value=13)
70
  with gr.Row():