Spaces:
Sleeping
Sleeping
import base64 | |
import requests | |
from config import OPENAI_API | |
import os | |
OPENAI_API = os.getenv("OPENAI_API") | |
""" | |
openai_vision = OpenAIVision(api_key) | |
image_path = "path_to_your_image.jpg" | |
prompt = "" | |
response = openai_vision.get_image_description(prompt,image_path) | |
""" | |
class OpenAIVision: | |
def __init__(self): | |
self.api_key = OPENAI_API | |
self.base_url = "https://api.openai.com/v1/chat/completions" | |
def __encode_image(self, image_path): | |
with open(image_path, "rb") as image_file: | |
return base64.b64encode(image_file.read()).decode('utf-8') | |
def get_image_description(self, image_path, prompt): | |
base64_image = self.__encode_image(image_path) | |
headers = { | |
"Content-Type": "application/json", | |
"Authorization": f"Bearer {self.api_key}" | |
} | |
payload = { | |
"model": "gpt-4-vision-preview", | |
"temperature": 0.0, | |
"messages": [ | |
{ | |
"role": "user", | |
"content": [ | |
{ | |
"type": "text", | |
"text": prompt, | |
}, | |
{ | |
"type": "image_url", | |
"image_url": { | |
"url": f"data:image/jpeg;base64,{base64_image}" | |
} | |
} | |
] | |
} | |
], | |
"max_tokens": 1000, | |
} | |
response = requests.post(self.base_url, headers=headers, json=payload) | |
return response.json() |