Spaces:
Running
on
Zero
Running
on
Zero
import openai | |
import requests | |
# Use OpenAI Vision to compare a user-uploaded image to reference images | |
def compare_images(user_image_path, reference_image_urls): | |
with open(user_image_path, "rb") as user_img: | |
user_bytes = user_img.read() | |
# Download the first reference image for comparison | |
if not reference_image_urls: | |
return {"confidence": 0.0, "reason": "No reference images available."} | |
ref_response = requests.get(reference_image_urls[0]) | |
if ref_response.status_code != 200: | |
return {"confidence": 0.0, "reason": "Failed to fetch reference image."} | |
ref_bytes = ref_response.content | |
# Use GPT-4 Vision to compare both images | |
response = openai.chat.completions.create( | |
model="gpt-4-vision-preview", | |
messages=[ | |
{"role": "system", "content": "You are an expert in identifying error coins."}, | |
{ | |
"role": "user", | |
"content": [ | |
{"type": "text", "text": "Do these images look like the same error coin?"}, | |
{"type": "image", "image": user_bytes}, | |
{"type": "image", "image": ref_bytes} | |
] | |
} | |
], | |
max_tokens=300 | |
) | |
result_text = response.choices[0].message.content | |
# Very simple scoring logic based on confidence language | |
confidence = 0.8 if "yes" in result_text.lower() else 0.3 | |
return {"confidence": confidence, "summary": result_text} | |