Para enviar uma imagem à API da OpenAI e obter uma resposta em JSON, o processo envolve fazer uma requisição HTTP, onde a imagem é enviada como um arquivo e um prompt orienta a tarefa a ser realizada. Vou descrever um exemplo para utilizar a API de imagem (dalle) ou para usar a API de OCR (que é mais adequada para extrair texto de uma imagem).
-
Instalar biblioteca necessária:
pip install openai
-
Requisição de envio da imagem e prompt:
import openai import requests # Definir chave da API openai.api_key = 'YOUR_API_KEY' # Definir o caminho para a imagem que será enviada image_path = 'your_image_path.png' # Abrir o arquivo da imagem with open(image_path, 'rb') as img_file: image_data = img_file.read() # Enviar a requisição para a API response = openai.Image.create_edit( file=open(image_path, "rb"), prompt="Extract all data from this image in JSON format. The data should include the following fields: day, record number, viticulturist, lot, initial weight, final weight, number of boxes, health, SO2, wine type, and tank number.", n=1, # Número de imagens de retorno size="1024x1024" ) # Imprimir a resposta print(response)
- URL: A OpenAI não possui endpoints específicos para upload de imagem para OCR no momento, mas isso pode ser simulado utilizando prompts criativos e a API de modelos de imagem (DALL-E) ou GPT para processar o conteúdo das imagens. Se houvesse suporte direto, a estrutura do prompt acima orientaria o modelo a realizar a extração.
O prompt dentro da requisição deve orientar a IA sobre o que deve ser extraído da imagem e como o resultado deve ser formatado.
Exemplo de prompt:
Extract all data from this image in JSON format. The data should include the following fields:
- "day"
- "record number"
- "viticulturist"
- "lot"
- "initial weight"
- "final weight"
- "number of boxes"
- "health"
- "SO2"
- "wine type"
- "tank number".
If some of these fields are missing, return the available data. The result must be a valid JSON object.
Este prompt instrui a API a extrair as informações estruturadas da imagem e retornar em formato JSON. A IA tentaria fazer o OCR (ou usar seus modelos internos de interpretação) para retornar o conteúdo solicitado.
A resposta seria algo como:
{
"day": "25/06/20",
"record number": "1",
"viticulturist": "VSM",
"lot": "101",
"initial weight": 6870,
"final weight": 450,
"number of boxes": 3,
"health": 3,
"SO2": "net 1.5g",
"wine type": "V/B",
"tank number": "Auto SICE"
}- Chave da API: Você precisará da sua própria chave de API do OpenAI para autenticar suas requisições.
- Prompt de extração: Como a API da OpenAI é voltada principalmente para linguagem e criação de imagens, o OCR pode ser realizado por modelos de linguagem, mas isso pode variar em eficácia dependendo da complexidade da imagem.
Esse fluxo simula o que seria uma interação entre uma API de imagem e texto da OpenAI.