File size: 5,215 Bytes
848aa6d
 
 
 
 
 
 
d83c54b
 
 
848aa6d
49805bb
3504f3f
a4fbc1b
3504f3f
2537642
 
 
3504f3f
5d95e5d
848aa6d
 
 
 
 
 
 
 
89a6e00
848aa6d
 
 
 
25e3082
848aa6d
 
 
 
 
5d95e5d
848aa6d
 
 
 
 
 
b0731e5
848aa6d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1d018c5
848aa6d
6bb5838
848aa6d
d83c54b
848aa6d
d83c54b
848aa6d
d83c54b
848aa6d
 
d83c54b
9696767
f46de9f
4ea1fbf
 
848aa6d
6bb5838
848aa6d
 
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import gradio as gr
import requests
import json
import os


# Функция для генерации текста
def generate(forr, ver=13, doptb=""):
    if not forr or not ver:
        return "Сначала заполните обязательные поля! Потом здесь будут найденые нейросетью модули."

    system_role = """Ты - поисковик магиск андроид модулей, ищешь на 4PDA (Русский форум, https://4pda.to/forum/index.php?showtopic=915158&view=findpost&p=76261279 в спойлере "Алфавитный Каталог модулей", смотрешь ищешь потходящее, потом смотришь страницы, посты нужных и сверяешь характеристики пользователя, если он предоставил. Если всё отлично, то выдавай ссылку на пост (не на страницу, а прям на пост) модуля с 4pda ИЗ СПИСКА (а не когда уже перешёл на пост)) и GitHub (https://github.com/topics/magisk-modules), название, репутация и описывай функционал кратко.

! Пиши **ТОЛЬКО МОДУЛИ NAGISK**, не в коем случае не давай ссылки на темы сторонних приложений, которые не модули Magisk!
! Не в коем случае не пиши ссылки на сторонние ресурсы!
! Не пиши ссылку на страницу! Пользователю нцжна ссылка на ПОСТ. Ссылка, которая указана прям в списке модулей.

**Обращай внимание на репутацию! Модули с отрицательной репутацией либо не выдавай пользователю, либо предупреждай.**
"""
    user_msg = f"Модуль для: '{forr}', совместимый с андроид: '{ver}', дополнительно: '{doptb}'"
    
    headers = {
        'Content-Type': 'application/json',
       # 'Authorization': f'Bearer {os.getenv("API_KEY")}'
    }

    payload = {
        'messages': [{'role': 'system', 'content': system_role}, {'role': 'user', 'content': user_msg}],
        'max_tokens': 4500,
        'model': "searchgpt"
    }

    try:
        response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload, timeout=250)
        response.raise_for_status()  # Проверяем на ошибки HTTP
        data = response.json()  # Используем response.json() вместо json.loads()

        if 'choices' in data and len(data['choices']) > 0:
            congratulation = data['choices'][0]['message']['content'].strip()
            print(f"Генерация успешна: '{forr}' с версией '{ver}'")
            return congratulation
        elif 'error' in data:
            error_message = data['error']['message']
            print(f'Ошибка: {error_message}')
            return f"Ошибка сервера!"
        else:
            print(f'Не удалось написать текст: "{forr}". Ответ сервера: {data}')  # Выводим ответ сервера для отладки
            return "Неизвестная ошибка!"
    except requests.exceptions.RequestException as e:
        print(f"Ошибка запроса: {e}")
        return f"Ошибка запроса!"

# Ссылка на файл CSS
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"

# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text + ".gradio-container{max-width: 700px !important} h1, h3 {text-align:center}"


# UI
with gr.Blocks(css=css) as demo:
    gr.Markdown("# Поиск Magisk модулей\n### На 4pda, Rooni_Studio")
    with gr.Column():
        with gr.Row():
            forr = gr.Textbox(show_label=True, placeholder="Модуль для... / Название", label="Функционал модуля", interactive=True, container=True,)
        with gr.Row():
            ver = gr.Number(show_label=True, label="Версия Android", interactive=True, container=True, value=13)
        with gr.Row():
            doptb = gr.Textbox(show_label=True, placeholder="У меня версия магиск N.N, ...", label="Дополнительно")
    with gr.Row():
        text_button = gr.Button("Искать", variant='primary')
    with gr.Row():
        with gr.Column():
            text_output = gr.Markdown(show_label=False, value="Здесь будут найденые нейросетью модули.", container=True)
    gr.HTML("""<p style="color: red; padding: 5px;">
  <b style="color: red;">Дисклеймер:</b> Для поиска используется нейросеть, результаты могут быть неточными или неполными.
</p>
""")

    text_button.click(generate, inputs=[forr, ver, doptb], outputs=[text_output], concurrency_limit=250)

demo.queue(max_size=250, api_open=False).launch()