Spaces:
Running
Running
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 | |