Estava testando algo interessante com o Gemini 1.5 Flash do Google e obtive bons resultados, talvez possa te ajudar. Usei a API para analisar uma imagem de um recibo enviada em formato base64, pedindo que retornasse um JSON com as seguintes informações:
valor_pago: o valor pago, com duas casas decimais.
empresa: o nome da empresa que recebeu o pagamento.
categoria_gasto: a categoria do gasto (ex.: Alimentação, Transporte, Telecomunicações).
Aqui está um exemplo de como fiz:
Imagem utilizada:
https://i.pinimg.com/736x/ab/62/bc/ab62bcde274b55183dfa3146af94773c.jpg
Conversor Base64:
https://www.base64-image.de/
Google AI Studio:
https://aistudio.google.com/prompts/new_chat
CURL
curl --location 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent' \
--header 'Content-Type: application/json' \
--header 'x-goog-api-key: SUA API KEY' \
--data '{
"contents": [
{
"parts": [
{
"inlineData": {
"mime_type": "image/jpeg",
"data": "/9j/4AAQS BASE 64 CODE kZCA/4BP/Z"
}
},
{
"text": "Analise o recibo de pagamento que está na imagem e retorne um JSON com as seguintes informações: * Valor_Pago: (valor pago com duas casas decimais, exemplo: 12.34) * Empresa: (nome da empresa que recebeu o pagamento) * Categoria_Gasto: (categoria do gasto, como '\''Telecomunicações'\'', '\''Alimentação'\'', '\''Transporte'\'' etc. em Português). Exemplo de resposta em formato JSON: { \"valor_pago\": \"12.34\", \"empresa\": \"Nome da Empresa\", \"categoria_gasto\": \"Categoria\"}"
}
]
}
]
}'
Resposta:
{
"candidates": [
{
"content": {
"parts": [
{
"text": "```json\n{\n \"valor_Pago\": \"54.00\",\n \"empresa\": \"NEXTEL TELECOMUNICACOES\",\n \"categoria_gasto\": \"Telecomunicações\"\n}\n```\n"
}
],
"role": "model"
},
"finishReason": "STOP",
"avgLogprobs": -0.00019891045111067155
}
],
"usageMetadata": {
"promptTokenCount": 384,
"candidatesTokenCount": 51,
"totalTokenCount": 435
},
"modelVersion": "gemini-1.5-flash"
}