diff --git a/packages/components/nodes/vectorstores/Pinecone_Existing/Pinecone_Existing.ts b/packages/components/nodes/vectorstores/Pinecone_Existing/Pinecone_Existing.ts index 7b3223c89..866fcfed7 100644 --- a/packages/components/nodes/vectorstores/Pinecone_Existing/Pinecone_Existing.ts +++ b/packages/components/nodes/vectorstores/Pinecone_Existing/Pinecone_Existing.ts @@ -1,6 +1,6 @@ import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { PineconeClient } from '@pinecone-database/pinecone' -import { PineconeStore } from 'langchain/vectorstores/pinecone' +import { PineconeLibArgs, PineconeStore } from 'langchain/vectorstores/pinecone' import { Embeddings } from 'langchain/embeddings/base' import { getBaseClasses } from '../../../src/utils' @@ -43,6 +43,13 @@ class Pinecone_Existing_VectorStores implements INode { label: 'Pinecone Index', name: 'pineconeIndex', type: 'string' + }, + { + label: 'Pinecone Namespace', + name: 'pineconeNamespace', + type: 'string', + placeholder: 'my-first-namespace', + optional: true } ] this.outputs = [ @@ -63,6 +70,7 @@ class Pinecone_Existing_VectorStores implements INode { const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string const pineconeEnv = nodeData.inputs?.pineconeEnv as string const index = nodeData.inputs?.pineconeIndex as string + const pineconeNamespace = nodeData.inputs?.pineconeNamespace as string const embeddings = nodeData.inputs?.embeddings as Embeddings const output = nodeData.outputs?.output as string @@ -74,9 +82,13 @@ class Pinecone_Existing_VectorStores implements INode { const pineconeIndex = client.Index(index) - const vectorStore = await PineconeStore.fromExistingIndex(embeddings, { + const obj: PineconeLibArgs = { pineconeIndex - }) + } + + if (pineconeNamespace) obj.namespace = pineconeNamespace + + const vectorStore = await PineconeStore.fromExistingIndex(embeddings, obj) if (output === 'retriever') { const retriever = vectorStore.asRetriever() diff --git a/packages/components/nodes/vectorstores/Pinecone_Upsert/Pinecone_Upsert.ts b/packages/components/nodes/vectorstores/Pinecone_Upsert/Pinecone_Upsert.ts index 6f72eb83a..aecdf8d64 100644 --- a/packages/components/nodes/vectorstores/Pinecone_Upsert/Pinecone_Upsert.ts +++ b/packages/components/nodes/vectorstores/Pinecone_Upsert/Pinecone_Upsert.ts @@ -1,6 +1,6 @@ import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { PineconeClient } from '@pinecone-database/pinecone' -import { PineconeStore } from 'langchain/vectorstores/pinecone' +import { PineconeLibArgs, PineconeStore } from 'langchain/vectorstores/pinecone' import { Embeddings } from 'langchain/embeddings/base' import { Document } from 'langchain/document' import { getBaseClasses } from '../../../src/utils' @@ -46,9 +46,11 @@ class PineconeUpsert_VectorStores implements INode { type: 'string' }, { - label: 'Pinecone Index', - name: 'pineconeIndex', - type: 'string' + label: 'Pinecone Namespace', + name: 'pineconeNamespace', + type: 'string', + placeholder: 'my-first-namespace', + optional: true } ] this.outputs = [ @@ -69,6 +71,7 @@ class PineconeUpsert_VectorStores implements INode { const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string const pineconeEnv = nodeData.inputs?.pineconeEnv as string const index = nodeData.inputs?.pineconeIndex as string + const pineconeNamespace = nodeData.inputs?.pineconeNamespace as string const docs = nodeData.inputs?.document as Document[] const embeddings = nodeData.inputs?.embeddings as Embeddings const output = nodeData.outputs?.output as string @@ -86,9 +89,13 @@ class PineconeUpsert_VectorStores implements INode { finalDocs.push(new Document(docs[i])) } - const vectorStore = await PineconeStore.fromDocuments(finalDocs, embeddings, { + const obj: PineconeLibArgs = { pineconeIndex - }) + } + + if (pineconeNamespace) obj.namespace = pineconeNamespace + + const vectorStore = await PineconeStore.fromDocuments(finalDocs, embeddings, obj) if (output === 'retriever') { const retriever = vectorStore.asRetriever()