from openai import OpenAI import os import base64 from io import BytesIO from PIL import Image from utils import pil_to_base64, result_cleaner my_key = os.environ.get('MY_OPENAI_KEY') client = OpenAI( api_key= my_key ) prompt=""" Eres un excelente asistente personal que ayuda en las finanzas personales. Analizarás los recibos de compra del usuario extrayendo la siguiente información: -fecha: fecha de la compra en formato YYYY-MM-DD -Establecimiento: Nombre del establecimiento donde los bienes o servicios fueron comprados -Establecimiento_tipo: Tipo de establecimiento (supermercado, restaurant, librería, etc) -Resumen_compra: En máximo 5 palabras resume la compra (productos de limpieza, desayuno, libros, utensilios para hogar, servicios en línea, etc) -artículos: crea una lista de los artículos en el recibo -total: monto de la compra Provee tu respuesta en un diccionario como el siguiente: {{fecha: "xxxx-xx-xx" establecimiento: "establecimiento x", establecimiento_tipo: "supermercado", resumen_compra: "alimentos para el hogar", artículos: "xxxx, xxxx, xxx" total: xxxx }} """ def analyse_image(processed_image): # response = client.chat.completions.create( model="gpt-4o-mini", messages=[ { "role": "user", "content": [ { "type": "text", "text": prompt, }, { "type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{processed_image}"}, }, ], } ], ) return response.choices[0].message.content def process_image(img): image_base64=pil_to_base64(img) analysis_result=analyse_image(image_base64) clean_analysis_result=result_cleaner(analysis_result) return clean_analysis_result