| import os
|
| import base64
|
| import requests
|
|
|
|
|
| def encode_image(image_path):
|
| with open(image_path, "rb") as image_file:
|
| return base64.b64encode(image_file.read()).decode('utf-8')
|
|
|
|
|
| def get_image_description(image_path, title):
|
| base64_image = encode_image(image_path)
|
|
|
| headers = {
|
| "Content-Type": "application/json",
|
| "Authorization": 'YOUR_GPT4o_API_KEY'
|
| }
|
|
|
| payload = {
|
| "model": "gpt-4o",
|
| "messages": [
|
| {
|
| "role": "user",
|
| "content": [
|
| {
|
| "type": "text",
|
| "text": title
|
| },
|
| {
|
| "type": "image_url",
|
| "image_url": {
|
| "url": f"data:image/jpeg;base64,{base64_image}",
|
| "detail": "low"
|
| }
|
| }
|
| ]
|
| }
|
| ],
|
| "max_tokens": 1800
|
| }
|
|
|
|
|
|
|
| response = requests.post("https://api.kwwai.top/v1/chat/completions", headers=headers, json=payload)
|
|
|
| if response.status_code != 200:
|
| print(response.text)
|
| return None
|
|
|
|
|
| if 'content' in response.json()['choices'][0]['message']:
|
| description = response.json()['choices'][0]['message']['content']
|
| else:
|
| description = None
|
| return description
|
|
|