Rooni commited on
Commit
434f18f
·
1 Parent(s): 5f140c3

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +14 -55
main.py CHANGED
@@ -1,71 +1,30 @@
1
  import os
2
- import gradio as gr
3
- from openai import OpenAI
4
  from flask import Flask, request, jsonify
5
- client = OpenAI(api_key=os.getenv("API_KEY"))
6
-
7
 
8
  # Инициализация Flask приложения
9
  app = Flask(__name__)
10
 
11
- @app.route('/', methods=['POST'])
12
- def generate_image():
13
- # Проверка наличия авторизационного ключа в заголовках запроса
 
 
 
14
  auth_key = request.headers.get('Authorization')
15
- client = OpenAI(api_key=auth_key)
16
-
17
- # Получение описания изображения из тела запроса
 
18
  description = request.json.get('description')
19
  if not description:
20
  return jsonify({"error": "No description provided"}), 400
21
 
22
- response = client.images.generate(
23
- model="dall-e-3",
24
- prompt=prompt,
25
- size="1024x1024",
26
- quality="hd",
27
- n=1,
28
- )
29
- image_url = response.data[0].url # Пример получения URL изображения
30
 
31
  return jsonify({"image_url": image_url})
32
 
33
-
34
-
35
-
36
- def generate_image(prompt, code):
37
- if code != os.getenv("code"):
38
- raise gr.Error("❗ Не верный ключ!")
39
- return None
40
- response = client.images.generate(
41
- model="dall-e-3",
42
- prompt=prompt,
43
- size="1024x1024",
44
- quality="hd",
45
- n=1,
46
- )
47
-
48
- image_url = response.data[0].url
49
- print(image_url)
50
- return image_url
51
- css = """
52
- footer {visibility: hidden !important;}
53
- """
54
- # Создание интерфейса с помощью Gradio
55
- with gr.Blocks(css=css, theme='YTheme/Sketch') as demo:
56
- with gr.Row():
57
- with gr.Column():
58
- with gr.Row():
59
- code = gr.Textbox(label="Ключ доступа", type="password")
60
- with gr.Row():
61
- prompt_input = gr.Textbox(label="Описание изображения", lines=3)
62
- submit_btn = gr.Button("Генерация", variant='primary')
63
- with gr.Column():
64
- image_output = gr.Image(label="Изображение")
65
-
66
- submit_btn.click(fn=generate_image, inputs=[prompt_input, code], outputs=image_output)
67
-
68
- demo.launch()
69
-
70
  if __name__ == '__main__':
71
  app.run(debug=True)
 
1
  import os
 
 
2
  from flask import Flask, request, jsonify
3
+ import openai
 
4
 
5
  # Инициализация Flask приложения
6
  app = Flask(__name__)
7
 
8
+ # Инициализация клиента OpenAI
9
+ openai.api_key = os.getenv("OPENAI_API_KEY")
10
+
11
+ @app.route('/generate-image', methods=['POST'])
12
+ def generate_image_api():
13
+ # Проверка авторизации
14
  auth_key = request.headers.get('Authorization')
15
+ if auth_key != f"Bearer {os.getenv('API_KEY')}":
16
+ return jsonify({"error": "Unauthorized"}), 401
17
+
18
+ # Получение описания изображения из запроса
19
  description = request.json.get('description')
20
  if not description:
21
  return jsonify({"error": "No description provided"}), 400
22
 
23
+ # Генерация изображения с помощью DALL-E
24
+ response = openai.Image.create(prompt=description, n=1)
25
+ image_url = response['data'][0]['url'] # Получение URL изображения
 
 
 
 
 
26
 
27
  return jsonify({"image_url": image_url})
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  if __name__ == '__main__':
30
  app.run(debug=True)