This commit is contained in:
hehua2008 2025-02-14 11:11:02 -08:00 committed by GitHub
commit ef593d0fef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 181 additions and 10 deletions
server
models
utils/vectorDbProviders
astra
chroma
lance
milvus
pinecone
qdrant
weaviate
zilliz

View file

@ -11,10 +11,29 @@ const WorkspaceChats = {
apiSessionId = null,
}) {
try {
let promptString;
if (typeof prompt === "string" || prompt instanceof String) {
promptString = prompt;
} else if (Array.isArray(prompt)) {
promptString = prompt
.map((x) => {
if (typeof x.text === "string" || x.text instanceof String) {
return x.text;
} else if (typeof x === "string" || x instanceof String) {
return x;
} else {
return JSON.stringify(x);
}
})
.join("\n\n");
} else {
promptString = JSON.stringify(prompt);
}
const chat = await prisma.workspace_chats.create({
data: {
workspaceId,
prompt,
prompt: promptString,
response: JSON.stringify(response),
user_id: user?.id || null,
thread_id: threadId,

View file

@ -268,7 +268,26 @@ const AstraDB = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,

View file

@ -355,7 +355,26 @@ const Chroma = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,

View file

@ -400,12 +400,31 @@ const LanceDb = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const result = rerank
? await this.rerankedSimilarityResponse({
client,
namespace,
query: input,
query: textInput,
queryVector,
similarityThreshold,
topN,

View file

@ -311,7 +311,26 @@ const Milvus = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,

View file

@ -253,7 +253,26 @@ const PineconeDB = {
"Invalid namespace - has it been collected and populated yet?"
);
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client: pineconeIndex,
namespace,

View file

@ -336,7 +336,26 @@ const QDrant = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,

View file

@ -380,7 +380,26 @@ const Weaviate = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,

View file

@ -304,7 +304,26 @@ const Zilliz = {
};
}
const queryVector = await LLMConnector.embedTextInput(input);
let textInput = "";
if (typeof input === "string" || input instanceof String) {
textInput = input;
} else if (Array.isArray(input)) {
textInput = [];
for (const x of input) {
if (typeof x.text === "string" || x.text instanceof String) {
textInput.push(x.text);
} else if (typeof x === "string" || x instanceof String) {
textInput.push(x);
}
}
} else {
return {
contextTexts: [],
sources: [],
message: "Invalid query - the type of input is not string or array !",
};
}
const queryVector = await LLMConnector.embedTextInput(textInput);
const { contextTexts, sourceDocuments } = await this.similarityResponse({
client,
namespace,