UNPKG

qdrant

Version:

Qdrant vector search engine client library

91 lines (81 loc) 3.27 kB
import { Qdrant } from "../index.js" const qdrant = new Qdrant("http://localhost:6333/"); const name = "pretty_colors"; /// ------------------------------------------------------------------------- /// Create the new collection with the name and schema const schema = { "name":name, "vector_size": 3, "distance": "Cosine" }; let create_result = await qdrant.create_collection(name,schema); if (create_result.err) { console.error(`ERROR: Couldn't create collection "${name}"!`); console.error(create_result.err); } else { console.log(`Success! Collection "${name} created!"`); console.log(create_result.response); } /// ------------------------------------------------------------------------- /// Show the collection info as it exists in the Qdrant engine let collection_result = await qdrant.get_collection(name); if (collection_result.err) { console.error(`ERROR: Couldn't access collection "${name}"!`); console.error(collection_result.err); } else { console.log(`Collection "${name} found!"`); console.log(collection_result.response); } /// ------------------------------------------------------------------------- /// Upload some points - just five RGB colors let points = [ { "id": 1, "payload": {"color": "red"}, "vector": [0.9, 0.1, 0.1] }, { "id": 2, "payload": {"color": "green"}, "vector": [0.1, 0.9, 0.1] }, { "id": 3, "payload": {"color": "blue"}, "vector": [0.1, 0.1, 0.9] }, { "id": 4, "payload": {"color": "purple"}, "vector": [1.0, 0.1, 0.9] }, { "id": 5, "payload": {"color": "cyan"}, "vector": [0.1, 0.9, 0.8] } ] let upload_result = await qdrant.upload_points(name,points); if (upload_result.err) { console.error(`ERROR: Couldn't upload to "${name}"!`); console.error(upload_result.err); } else { console.log(`Uploaded to "${name} successfully!"`); console.log(upload_result.response); } /// ------------------------------------------------------------------------- /// Search the closest color (k=1) let purplish = [0.8,0.1,0.7]; let search_result = await qdrant.search_collection(name,purplish,1); if (search_result.err) { console.error(`ERROR: Couldn't search ${purplish}`); console.error(search_result.err); } else { console.log(`Search results for ${purplish}`); console.log(search_result.response); } /// ------------------------------------------------------------------------- /// Filtered search the closest color let filter = { "must": [ { "key": "color", "match": { "keyword": "cyan" } } ] } let filtered_result = await qdrant.search_collection(name,purplish,1,128,filter); if (filtered_result.err) { console.error(`ERROR: Couldn't search ${purplish} with ${filter}`); console.error(filtered_result.err); } else { console.log(`Search results for filtered ${purplish}`); console.log(filtered_result.response); } /// ------------------------------------------------------------------------- /// Delete the collection let delete_result = await qdrant.delete_collection(name); if (delete_result.err) { console.error(`ERROR: Couldn't delete "${name}"!`); console.error(delete_result.err); } else { console.log(`Deleted "${name} successfully!"`); console.log(delete_result.response); }