Rooni commited on
Commit
eb85fef
·
verified ·
1 Parent(s): ef31d22

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -15
app.py CHANGED
@@ -12,16 +12,6 @@ def get_random_api_key():
12
  else:
13
  raise ValueError("API keys not found. Please set the KEYS environment variable.")
14
 
15
- def load_system_role(role_name):
16
- with open('system_roles.json', 'r', encoding='utf-8') as file:
17
- roles = json.load(file)
18
- return roles.get(role_name, "Ты помощник по умолчанию.")
19
-
20
- def load_role_names():
21
- with open('system_roles.json', 'r', encoding='utf-8') as file:
22
- roles = json.load(file)
23
- return list(roles.keys())
24
-
25
  def respond(
26
  message,
27
  history: list[tuple[str, str]],
@@ -33,7 +23,41 @@ def respond(
33
  if not message:
34
  return history, ""
35
 
36
- system_role = load_system_role(system_role_name)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  # Формируем сообщения для отправки в API
38
  messages = [{"role": "system", "content": system_role}]
39
 
@@ -94,8 +118,6 @@ with gr.Blocks(css=css) as demo:
94
  submit = gr.Button("Отправить", variant='primary')
95
 
96
  with gr.Accordion("Настройки помощника", open=False):
97
- with gr.Accordion(label="Помощник", open=False):
98
- helper_role = gr.Radio(show_label=True, label="Выберите помощника", interactive=True, choices=role_names, value=role_names[0])
99
  max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
100
  temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
101
  top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
@@ -103,7 +125,7 @@ with gr.Blocks(css=css) as demo:
103
  # Обработка отправки сообщения
104
  submit.click(
105
  fn=respond,
106
- inputs=[message, chatbot, helper_role, max_tokens, temperature, top_p],
107
  outputs=[chatbot, message],
108
  concurrency_limit=250
109
  )
@@ -111,7 +133,7 @@ with gr.Blocks(css=css) as demo:
111
  # Обработка отправки сообщения при нажатии Ctrl+Enter
112
  message.submit(
113
  fn=respond,
114
- inputs=[message, chatbot, helper_role, max_tokens, temperature, top_p],
115
  outputs=[chatbot, message],
116
  concurrency_limit=250
117
  )
 
12
  else:
13
  raise ValueError("API keys not found. Please set the KEYS environment variable.")
14
 
 
 
 
 
 
 
 
 
 
 
15
  def respond(
16
  message,
17
  history: list[tuple[str, str]],
 
23
  if not message:
24
  return history, ""
25
 
26
+ system_role = """Ты ии чат для создания изображений!
27
+
28
+ **!Отвечай Markdown разметкой!**
29
+ Жирный, список и тд всё html разметкой
30
+
31
+ Не пиши "пример запроса", "как делать запрос" и тп. Я программа, а обычному пользователю не нужны подробности как да что за api. У него просто начинается генерация и всё, ему не нужно знать как устроены запросы
32
+
33
+ Чтобы создать изображение, напиши ссылку изображения в теге "SimpleAiImageGen", вставив промпт (обязательно на английском), ширину, высоту, сид и другие переменные. (по умолчанию указывай: nologo=true это чтобы не было водяного знака нейросети, nofeed чтобы изображение было приватным)
34
+ Можно не указывать модель (рекомендуется, автоматически выберется), но можно указать &model= одну из доступных: Flux,Flux-Pro,Flux-Realism,Flux-Anime,Flux-3D,Flux-CablyAl,Turbo
35
+ Чтобы ИЗМЕНИТЬ изображение, можно чуть чуть поменять промпт или добавить к нему, сохраняя тот же сид! Чтобы получить другое изображение с тем же промптом, напиши рандомный сид.
36
+ !За раз ты можешь создать МАКСИМУМ 6 изображений, но поумолчанию 1 делай! (Больше не пиши!)
37
+
38
+ Примеры (писать нужно так, в особенном теге):
39
+ ![Краткий заголовок](https://image.pollinations.ai/prompt/logo%20with%20text%20pollinations?width=1024&height=512&seed=4&nologo=true&nofeed=true)
40
+
41
+ ![Краткий заголовок](https://image.pollinations.ai/prompt/logo%20with%20text%20YUFI?width=1024&height=512&seed=4&nologo=true&nofeed=true)
42
+
43
+ У пользователя начнётся генерация.
44
+
45
+ Подробные промпты, ты умеешь ТОЛЬКО создавать изображения и помогать в обучении промптингу, больше НЕ ЧЕГО!
46
+
47
+ Есть ещё один api (с ним тоже можешь генерировать. Но он рисует дольше, может генерироваться до 2 минут): "https://yufi-api-serverimgsgens.hf.space/prompt/":
48
+ У него запрос такой же, но модели (название модели для пользователя, показывай пользователю только его (ключевое слово которое должно быть в начале промпта): как указывать в запросе):
49
+ Flux-logo (при использовании указывай ключевое слово "logo"): Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design
50
+ Schnell: black-forest-labs/FLUX.1-schnell
51
+ Midjourney (ключ. слово: "midjourney mix"): strangerzonehf/Flux-Midjourney-Mix-LoRA
52
+ Animex (ключ. слово: "animex"): strangerzonehf/Flux-Animex-v2-LoRA
53
+ In Context: ali-vilab/In-Context-LoRA
54
+ Aura (ключ. слово: "aura 9999"): prithivMLmods/Aura-9999
55
+ PixelArt: nerijs/pixel-art-xl
56
+ PencilArt (ключ. слово: "Simple Pencil"): prithivMLmods/Super-Pencil-Flux-LoRA
57
+ WallpaperArt: prithivMLmods/Canopus-Liquid-Wallpaper-Art
58
+
59
+ ![Краткий заголовок](https://yufi-api-serverimgsgens.hf.space/prompt/Animex.%20logo%20with%20text%20YUFI?width=1024&height=512&seed=325346?model=strangerzonehf/Flux-Animex-v2-LoRA)
60
+ """
61
  # Формируем сообщения для отправки в API
62
  messages = [{"role": "system", "content": system_role}]
63
 
 
118
  submit = gr.Button("Отправить", variant='primary')
119
 
120
  with gr.Accordion("Настройки помощника", open=False):
 
 
121
  max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
122
  temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
123
  top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
 
125
  # Обработка отправки сообщения
126
  submit.click(
127
  fn=respond,
128
+ inputs=[message, chatbot, max_tokens, temperature, top_p],
129
  outputs=[chatbot, message],
130
  concurrency_limit=250
131
  )
 
133
  # Обработка отправки сообщения при нажатии Ctrl+Enter
134
  message.submit(
135
  fn=respond,
136
+ inputs=[message, chatbot, max_tokens, temperature, top_p],
137
  outputs=[chatbot, message],
138
  concurrency_limit=250
139
  )