Update main.py
Browse files
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 |
-
|
6 |
-
|
7 |
|
8 |
# Инициализация Flask приложения
|
9 |
app = Flask(__name__)
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
14 |
auth_key = request.headers.get('Authorization')
|
15 |
-
|
16 |
-
|
17 |
-
|
|
|
18 |
description = request.json.get('description')
|
19 |
if not description:
|
20 |
return jsonify({"error": "No description provided"}), 400
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
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)
|