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=""" You'll be analyzing purchase receipts you will extract the following information: -date: date of the purchase in the format YYYY-MM-DD -Store: Name of the store where items or services were purchased -Store_type: Type of store (supermarket, restaurant, bookstore, etc) -Purchase_summary: in maximum 5 words summarize the purchase (cleaning products, breakfast, books, food items for home, online services, clothes ,etc) -items: create a list of all the items in the receipt -total: total amount spent Provide your answer in a dictionary like the following {{date: "xxxx-xx-xx" store: "example store", store_type: "supermarket", purchase_summary: "food items for home", items: "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