File size: 1,691 Bytes
35992f9 4911caa 35992f9 31c7c46 41232ef 9183f10 31c7c46 c76a4f6 9183f10 e889030 8a69374 e889030 31c7c46 c76a4f6 5cf2508 31c7c46 7eadcbc 31c7c46 9cb73af 35992f9 31c7c46 9cb73af 31c7c46 9183f10 |
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 |
import os
import io
import tempfile
from datetime import datetime
import PIL.Image
from google import genai
from google.genai import types
import httpx
genai_client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
class Image_text_Generator:
def __init__(self, user_id):
self.user_id = user_id
def generate_image_with_gemini(self, prompt):
"""
δ½Ώη¨ Gemini 樑εηζεηγ
εζΈ:
prompt (str): η¨ζΌηζεηηζη€Ίθ©γ
θΏε:
bytes: ηζηεηηδΊι²δ½θ³ζοΌε¦ζηζε€±ζεθΏε Noneγ
"""
response = genai_client.models.generate_content(
model="gemini-2.0-flash-exp",
contents=prompt,
config=types.GenerateContentConfig(response_modalities=['Text', 'Image'])
)
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
return part.inline_data.data
return None
def upload_image_to_tmp(self, image_binary):
"""
θΏε:
str: δΈε³εΎηεη URLοΌε¦ζδΈε³ε€±ζεθΏε Noneγ
"""
try:
# ε°δΊι²δ½θ³ζθ½ζηΊ PIL Image
image = PIL.Image.open(io.BytesIO(image_binary))
# ε»Ίη«ζ«εζͺζ‘δ»₯δΎΏδΈε³
image.save('static/'+self.user_id+'.png', format='PNG')
# θΏεεηηι£η΅
return 'static/'+self.user_id+'.png'
except Exception as e:
print(f"εηδΈε³ε€±ζ: {e}")
return None
|