Spaces:
Paused
Paused
| import base64 | |
| import requests | |
| from io import BytesIO | |
| from PIL import Image | |
| def encode_image(img): | |
| buffered = BytesIO() | |
| img.save(buffered, format="PNG") | |
| encoded_string = base64.b64encode(buffered.getvalue()).decode("utf-8") | |
| return encoded_string | |
| # ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋๋ก ์ค์ | |
| img_path = "./1.png" | |
| try: | |
| img = Image.open(img_path) | |
| except FileNotFoundError: | |
| print(f"Error: The image file '{img_path}' was not found.") | |
| exit() | |
| base64_img = encode_image(img) | |
| api = "https://api.hyperbolic.xyz/v1/chat/completions" | |
| api_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyZzMyNzAyNEBnbWFpbC5jb20ifQ._frFve-BYZdb0Qo6FIj6xcDcxpY-6QlC2O-ToQxBjkc" # ์ค์ API ํค๋ก ์์ ํ์ | |
| headers = { | |
| "Content-Type": "application/json", | |
| "Authorization": f"Bearer {api_key}", | |
| } | |
| payload = { | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": [ | |
| {"type": "text", "text": "What is this image?"}, | |
| { | |
| "type": "image_url", | |
| "image_url": {"url": f"data:image/png;base64,{base64_img}"}, # PNG MIME ํ์ ์์ | |
| }, | |
| ], | |
| } | |
| ], | |
| "model": "mistralai/Pixtral-12B-2409", | |
| "max_tokens": 2048, | |
| "temperature": 0.7, | |
| "top_p": 0.9, | |
| } | |
| try: | |
| response = requests.post(api, headers=headers, json=payload) | |
| response.raise_for_status() # HTTPError๊ฐ ๋ฐ์ํ๋ฉด ์์ธ ๋ฐ์ | |
| result = response.json() # JSON์ผ๋ก ํ์ฑ | |
| print(result) | |
| except requests.exceptions.HTTPError as http_err: | |
| print(f"HTTP error occurred: {http_err}") # HTTP ์ค๋ฅ ๋ฉ์์ง ์ถ๋ ฅ | |
| except requests.exceptions.RequestException as req_err: | |
| print(f"Request error occurred: {req_err}") # ์ผ๋ฐ ์์ฒญ ์ค๋ฅ ๋ฉ์์ง ์ถ๋ ฅ | |
| except ValueError as json_err: | |
| print(f"JSON decode error: {json_err}") # JSON ํ์ฑ ์ค๋ฅ ๋ฉ์์ง ์ถ๋ ฅ | |