Spaces:
Sleeping
Sleeping
| import os | |
| from openai import OpenAI | |
| from PIL import Image | |
| from io import BytesIO | |
| import base64 | |
| import sys | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from config import api_key, base_url | |
| # OpenAI API configuration | |
| API_KEY = api_key | |
| API_PROVIDER = base_url | |
| client = OpenAI( | |
| api_key=API_KEY, | |
| base_url=API_PROVIDER, | |
| ) | |
| ''' | |
| response = client.chat.completions.create( | |
| model="V_2A", | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": 'A cartt in a infographic chart for "Theresa May's Attributes Decline Over Time". No gradients, shadows, or complex details. Avoid photorealistic rendering.' | |
| } | |
| ] | |
| ) | |
| ''' | |
| # Using text-only input | |
| response = client.chat.completions.create( | |
| model="gemini-2.0-flash-exp", | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": [ | |
| { | |
| "type": "text", | |
| "text": 'A pictogram for Italian Cuisine. No gradients, shadows, or complex details. Avoid photorealistic rendering. No text, no title.', | |
| } | |
| ], | |
| }, | |
| ], | |
| modalities=["text", "image"], | |
| temperature=0.7, | |
| ) | |
| try: | |
| # Print basic response information | |
| print(f"Creation time: {response.created}") | |
| print(f"Token usage: {response.usage.total_tokens}") | |
| # Check if multi_mod_content field exists | |
| if ( | |
| hasattr(response.choices[0].message, "multi_mod_content") | |
| and response.choices[0].message.multi_mod_content is not None | |
| ): | |
| print("\nResponse content:") | |
| for part in response.choices[0].message.multi_mod_content: | |
| if "text" in part and part["text"] is not None: | |
| print(part["text"]) | |
| # Process image content | |
| elif "inline_data" in part and part["inline_data"] is not None: | |
| print("\n🖼️ [Image content received]") | |
| image_data = base64.b64decode(part["inline_data"]["data"]) | |
| mime_type = part["inline_data"].get("mime_type", "image/png") | |
| print(f"Image type: {mime_type}") | |
| image = Image.open(BytesIO(image_data)) | |
| image.show() | |
| # Save image | |
| output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "output") | |
| os.makedirs(output_dir, exist_ok=True) | |
| output_path = os.path.join(output_dir, "generated_image.jpg") | |
| image.save(output_path) | |
| print(f"✅ Image saved to: {output_path}") | |
| else: | |
| print("No valid multimodal response received, check response structure") | |
| except Exception as e: | |
| print(f"Error processing response: {str(e)}") |