-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcarImageLoader.py
More file actions
31 lines (22 loc) · 1 KB
/
carImageLoader.py
File metadata and controls
31 lines (22 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import json
from astrapy import DataAPIClient
from astrapy.constants import Environment
from PIL import Image
from sentence_transformers import SentenceTransformer
# Astra connection
ASTRA_DB_APPLICATION_TOKEN = os.environ.get("ASTRA_DB_APPLICATION_TOKEN")
ASTRA_DB_API_ENDPOINT = os.environ.get("ASTRA_DB_API_ENDPOINT")
client = DataAPIClient(token=ASTRA_DB_APPLICATION_TOKEN)
#client = DataAPIClient(token=ASTRA_DB_APPLICATION_TOKEN, environment=Environment.DSE)
db = client.get_database(ASTRA_DB_API_ENDPOINT)
# create "collection" (vector-enabled table)
col = db.create_collection("car_images", dimension=512, metric="cosine")
model = SentenceTransformer('clip-ViT-B-32')
IMAGE_DIR = "static/images/"
for id, imageName in enumerate(os.listdir(IMAGE_DIR)):
img_emb = model.encode(Image.open(IMAGE_DIR + imageName))
strJson = '{"_id":"' + str(id) + '","text":"' + imageName + '","$vector":' + str(img_emb.tolist()) + '}'
doc = json.loads(strJson)
col.insert_one(doc)
print(imageName)