feat(vector): add weaviate support

This commit is contained in:
t8y2 committed 2026-06-25 00:31:27 +08:00
1 parent 09cdf07aab
commit bf9ef4365b
31 files changed
+180 -28

No files matched your search

@@ -32,7 +32,7 @@ const operationMode = ref<VectorOperationMode>("browse");
const requestText = ref(defaultRequestText(props.databaseType, props.database, props.collection, operationMode.value));
let loadingTimer: ReturnType<typeof setInterval> | undefined;
const productLabel = computed(() => (props.databaseType === "milvus" ? "Milvus" : "Qdrant"));
const productLabel = computed(() => (props.databaseType === "milvus" ? "Milvus" : props.databaseType === "weaviate" ? "Weaviate" : "Qdrant"));
const collectionLabel = computed(() => props.collection || t("vector.collectionFallback"));
const executeLabel = computed(() => (operationMode.value === "browse" ? t("vector.run") : t("vector.apply")));
const operationIcon = computed(() => (operationMode.value === "delete" ? Trash2 : operationMode.value === "upsert" ? Save : Play));
@@ -94,6 +94,26 @@ function defaultRequestText(databaseType: DatabaseType | undefined, database: st
const endpoint = mode === "delete" ? "delete" : mode === "upsert" ? "upsert" : "query";
return `POST /v2/vectordb/entities/${endpoint}\n${JSON.stringify(body, null, 2)}`;
}
if (databaseType === "weaviate") {
const collectionName = collection || "Collection";
if (mode === "delete") {
return "DELETE /v1/objects/{id}";
}
if (mode === "upsert") {
return `POST /v1/objects\n${JSON.stringify(
{
class: collectionName,
properties: {
title: "updated vector",
kind: "demo",
},
},
null,
2,
)}`;
}
return `GET /v1/objects?class=${encodeURIComponent(collectionName)}&limit=100`;
}
const collectionPath = pathSegment(collection);
if (mode === "delete") {
return `POST /collections/${collectionPath}/points/delete?wait=true\n${JSON.stringify({ points: [1] }, null, 2)}`;