wjm55 commited on
Commit
08bb4cc
·
1 Parent(s): 9a02fc3

Enhance image search results display by adding distance metadata and updating the results table. Introduced MetadataQuery for distance calculation and modified the HTML table to include a new column for distance.

Browse files
Files changed (2) hide show
  1. .gitignore +1 -0
  2. app.py +6 -1
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .env
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import gradio as gr
2
  from sentence_transformers import SentenceTransformer
3
  import weaviate
 
4
  from weaviate.classes.init import Auth
5
  from dotenv import load_dotenv
6
  import os
@@ -27,13 +28,15 @@ def search_images(query):
27
  query_vector = model.encode(query)
28
  results = lux_collection.query.near_vector(
29
  near_vector=query_vector.tolist(),
30
- limit=20
 
31
  )
32
 
33
  # Format results for display
34
  formatted_results = []
35
  for result in results.objects:
36
  formatted_results.append({
 
37
  "label": result.properties['label'],
38
  "lux_url": result.properties['lux_url'],
39
  "image_url": result.properties.get('image_url', "No image available")
@@ -61,6 +64,7 @@ def create_interface():
61
  html = """
62
  <table style="width:100%; border-collapse: collapse;">
63
  <tr>
 
64
  <th style="border: 1px solid #ddd; padding: 8px;">Label</th>
65
  <th style="border: 1px solid #ddd; padding: 8px;">Lux URL</th>
66
  <th style="border: 1px solid #ddd; padding: 8px;">Image</th>
@@ -71,6 +75,7 @@ def create_interface():
71
  image_cell = f'<img src="{r["image_url"]}" style="max-width:200px; max-height:200px;">' if r["image_url"] and r["image_url"] != "No image available" else "No image available"
72
  html += f"""
73
  <tr>
 
74
  <td style="border: 1px solid #ddd; padding: 8px;">{r["label"]}</td>
75
  <td style="border: 1px solid #ddd; padding: 8px;"><a href="{r["lux_url"]}" target="_blank">{r["lux_url"]}</a></td>
76
  <td style="border: 1px solid #ddd; padding: 8px;">{image_cell}</td>
 
1
  import gradio as gr
2
  from sentence_transformers import SentenceTransformer
3
  import weaviate
4
+ from weaviate.classes.query import MetadataQuery
5
  from weaviate.classes.init import Auth
6
  from dotenv import load_dotenv
7
  import os
 
28
  query_vector = model.encode(query)
29
  results = lux_collection.query.near_vector(
30
  near_vector=query_vector.tolist(),
31
+ limit=20,
32
+ return_metadata=MetadataQuery(distance=True)
33
  )
34
 
35
  # Format results for display
36
  formatted_results = []
37
  for result in results.objects:
38
  formatted_results.append({
39
+ "distance": round(result.metadata.distance, 2),
40
  "label": result.properties['label'],
41
  "lux_url": result.properties['lux_url'],
42
  "image_url": result.properties.get('image_url', "No image available")
 
64
  html = """
65
  <table style="width:100%; border-collapse: collapse;">
66
  <tr>
67
+ <th style="border: 1px solid #ddd; padding: 8px;">Distance</th>
68
  <th style="border: 1px solid #ddd; padding: 8px;">Label</th>
69
  <th style="border: 1px solid #ddd; padding: 8px;">Lux URL</th>
70
  <th style="border: 1px solid #ddd; padding: 8px;">Image</th>
 
75
  image_cell = f'<img src="{r["image_url"]}" style="max-width:200px; max-height:200px;">' if r["image_url"] and r["image_url"] != "No image available" else "No image available"
76
  html += f"""
77
  <tr>
78
+ <td style="border: 1px solid #ddd; padding: 8px;">{r["distance"]}</td>
79
  <td style="border: 1px solid #ddd; padding: 8px;">{r["label"]}</td>
80
  <td style="border: 1px solid #ddd; padding: 8px;"><a href="{r["lux_url"]}" target="_blank">{r["lux_url"]}</a></td>
81
  <td style="border: 1px solid #ddd; padding: 8px;">{image_cell}</td>