Je suis en train de travailler sur un script pour envoyer une image à l'API OpenAI et recevoir une réponse qui identifie la série ou le film représenté dans cette image. J'ai écrit le code ci-dessous, mais je rencontre des erreurs lorsque j'essaie de l'exécuter. J'ai besoin de votre aide pour comprendre pourquoi cela ne fonctionne pas et comment le résoudre. Si vous pouvez jeter un coup d'oeil à mon code et me dire où je me trompe, je vous serais très reconnaissant.
import cv2
import random
import requests
import json
import base64
# Ouvrir la vidéo
video = cv2.VideoCapture("part0.mp4")
# Obtenir le nombre total d'images dans la vidéo
total_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
# Générer 4 numéros d'image aléatoires
random_frames = random.sample(range(total_frames), 4)
# Extraire les images de la vidéo
images = []
for frame_num in random_frames:
video.set(1, frame_num)
ret, frame = video.read()
images.append(frame)
# Enregistrer les images extraites sur le disque
for i, image in enumerate(images):
cv2.imwrite("image_{}.jpg".format(i), image)
# Encode les images en base64
image_data = []
for i, image in enumerate(images):
with open("image_{}.jpg".format(i), "rb") as image_file:
encoded_string = base64.b64encode(image_file.read()).decode()
image_data.append(encoded_string)
# Prépare la requête à envoyer à l'API OpenAI
url = "https://api.openai.com/v1/images/generations"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer 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"
}
# Boucle sur les images pour les envoyer à l'API OpenAI
for i, image in enumerate(image_data):
data = {
"model": "image-alpha-001",
"prompt": f"Name of the series or film depicted in image {i}",
"num_images":1,
"size":"256x256",
"response_format":"url",
"data": [
{
"image": image
}
]
}
response = requests.post(url, headers=headers, json=data)
response_json = json.loads(response.text)
print(f"Name of the series or film depicted in image {i} : {response_json['data'][0]['url']}")
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
ligne 56, pourquoi response.text si on est censé retourner un format json ?
si on fait un print(response.text) qu'est-ce que ça retourne ?
si on fait un print(response.json()) qu'est-ce que ça retourne ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Tu es sûr que les datas que tu envoies sont bien au bon format demandé par l'API ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Additional properties are not allowed ('data' was unexpected)
et en lisant la doc sur l'API, je confirme !
- Edité par fred1599 24 janvier 2023 à 8:07:53
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
oipen ia request avec image
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)