Spaces:
Sleeping
Sleeping
| 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 |