Aleksmorshen commited on
Commit
01582bf
·
verified ·
1 Parent(s): 54d8a6b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -19
app.py CHANGED
@@ -4,38 +4,72 @@ from PIL import Image
4
  import io
5
  import numpy as np
6
 
7
- def generate_content(api_key, prompt, image_data):
 
8
 
9
- genai.configure(api_key=api_key)
10
-
11
- # Convert uploaded binary data into a PIL image.
12
- # image = Image.open(io.BytesIO(image_data))
13
  image = Image.fromarray(np.uint8(image_data)).convert('RGB')
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  model = genai.GenerativeModel('gemini-2.0-flash')
16
 
17
- response = model.generate_content([prompt, image])
 
18
  response.resolve()
19
  return response.text
20
 
 
 
 
21
 
 
 
 
 
 
 
 
 
22
 
23
- with gr.Blocks() as app:
24
- gr.Markdown("# EVA - загрузи изображение, нажми пуск и получишь красивый рекламный пост ")
25
- gr.Markdown("https://ai.google.dev/")
26
- api_key_input = gr.Textbox(label="API Key", type="password", value="AIzaSyBtBdQiAQUeA4rKplFPuKd8zTP9r1LTVvA", placeholder="Enter your API Key", lines=1)
 
 
27
 
28
- # image_input = gr.File(label="Upload an image", type="binary")
29
- image_input = gr.Image(label="Загрузить изображение ")
30
- prompt_input = gr.Textbox(label="Функция", placeholder="Enter your Prompt", type="password",value="Напиши большой и красивый, содержательный рекламный пост миниммум на 1000 символов со смайликами и 25 тематических хэштегов с ключевыми словами разных вариантов , чтобы мои клиенты могли найти меня в поиске instagram, Google итд по ключевым словам. все исключительно на Русском языке , без адресов и номеров телефона.пост пиши исключительно под товар который на фото " ,lines=1)
 
31
  generate_button = gr.Button("Пуск")
32
- output = gr.Markdown()
33
-
 
 
 
34
  generate_button.click(
35
- generate_content,
36
- inputs=[api_key_input, prompt_input, image_input],
37
  outputs=output
38
  )
39
 
40
- app.launch()
41
-
 
4
  import io
5
  import numpy as np
6
 
7
+ def generate_content(api_key, image_data, language):
8
+ genai.configure(api_key=api_key)
9
 
10
+ # Convert uploaded image data into a PIL image
11
+ if image_data is None:
12
+ return "Пожалуйста, загрузите изображение!"
 
13
  image = Image.fromarray(np.uint8(image_data)).convert('RGB')
14
 
15
+ # Base prompt
16
+ base_prompt = "Напиши большой и красивый, содержательный рекламный пост минимум на 1000 символов со смайликами и 25 тематических хэштегов с ключевыми словами разных вариантов, чтобы мои клиенты могли найти меня в поиске Instagram, Google и т.д. по ключевым словам. Пост пиши исключительно под товар, который на фото, без адресов и номеров телефона."
17
+
18
+ # Modify prompt based on selected language
19
+ if language == "Русский":
20
+ final_prompt = f"{base_prompt} Пиши на русском языке."
21
+ elif language == "Кыргызский":
22
+ final_prompt = f"{base_prompt} Пиши на кыргызском языке."
23
+ elif language == "Казахский":
24
+ final_prompt = f"{base_prompt} Пиши на казахском языке."
25
+ elif language == "Узбекский":
26
+ final_prompt = f"{base_prompt} Пиши на узбекском языке."
27
+ else:
28
+ final_prompt = base_prompt # Default to Russian if no language selected
29
+
30
+ # Initialize the model
31
  model = genai.GenerativeModel('gemini-2.0-flash')
32
 
33
+ # Generate content with the image and prompt
34
+ response = model.generate_content([final_prompt, image])
35
  response.resolve()
36
  return response.text
37
 
38
+ # Gradio interface
39
+ with gr.Blocks(title="EVA - Генератор рекламных постов") as app:
40
+ gr.Markdown("# EVA - Загрузи изображение, выбери язык и получи красивый рекламный пост!")
41
 
42
+ # API Key input
43
+ api_key_input = gr.Textbox(
44
+ label="API Key",
45
+ type="password",
46
+ value="AIzaSyBtBdQiAQUeA4rKplFPuKd8zTP9r1LTVvA",
47
+ placeholder="Введите ваш API Key",
48
+ lines=1
49
+ )
50
 
51
+ # Language selection
52
+ language_input = gr.Radio(
53
+ choices=["Русский", "Кыргызский", "Казахский", "Узбекский"],
54
+ label="Выберите язык поста",
55
+ value="Русский" # Default value
56
+ )
57
 
58
+ # Image input
59
+ image_input = gr.Image(label="Загрузить изображение")
60
+
61
+ # Generate button
62
  generate_button = gr.Button("Пуск")
63
+
64
+ # Output
65
+ output = gr.Markdown(label="Результат")
66
+
67
+ # Button click event
68
  generate_button.click(
69
+ fn=generate_content,
70
+ inputs=[api_key_input, image_input, language_input],
71
  outputs=output
72
  )
73
 
74
+ # Launch the app
75
+ app.launch()