Spaces:
Sleeping
Sleeping
Download Image_text_generation.py from Yuan862582/Linebot: direct link, hf CLI and curl.
- Browser
- Download file 1.69 kB
-
https://huggingface.co/spaces/Yuan862582/Linebot/resolve/main/Image_text_generation.py
- Command line
-
hf download hf://spaces/Yuan862582/Linebot/Image_text_generation.py
-
curl -L -o Image_text_generation.py https://huggingface.co/spaces/Yuan862582/Linebot/resolve/main/Image_text_generation.py
1.69 kB
| 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 | |