mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 21:00:58 +03:00
Merge pull request #37 from FlowiseAI/feature/Pinecone
Feature/Add namespace to pinecone
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface'
|
import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface'
|
||||||
import { PineconeClient } from '@pinecone-database/pinecone'
|
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 { Embeddings } from 'langchain/embeddings/base'
|
||||||
import { getBaseClasses } from '../../../src/utils'
|
import { getBaseClasses } from '../../../src/utils'
|
||||||
|
|
||||||
@@ -43,6 +43,13 @@ class Pinecone_Existing_VectorStores implements INode {
|
|||||||
label: 'Pinecone Index',
|
label: 'Pinecone Index',
|
||||||
name: 'pineconeIndex',
|
name: 'pineconeIndex',
|
||||||
type: 'string'
|
type: 'string'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Pinecone Namespace',
|
||||||
|
name: 'pineconeNamespace',
|
||||||
|
type: 'string',
|
||||||
|
placeholder: 'my-first-namespace',
|
||||||
|
optional: true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
this.outputs = [
|
this.outputs = [
|
||||||
@@ -63,6 +70,7 @@ class Pinecone_Existing_VectorStores implements INode {
|
|||||||
const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string
|
const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string
|
||||||
const pineconeEnv = nodeData.inputs?.pineconeEnv as string
|
const pineconeEnv = nodeData.inputs?.pineconeEnv as string
|
||||||
const index = nodeData.inputs?.pineconeIndex as string
|
const index = nodeData.inputs?.pineconeIndex as string
|
||||||
|
const pineconeNamespace = nodeData.inputs?.pineconeNamespace as string
|
||||||
const embeddings = nodeData.inputs?.embeddings as Embeddings
|
const embeddings = nodeData.inputs?.embeddings as Embeddings
|
||||||
const output = nodeData.outputs?.output as string
|
const output = nodeData.outputs?.output as string
|
||||||
|
|
||||||
@@ -74,9 +82,13 @@ class Pinecone_Existing_VectorStores implements INode {
|
|||||||
|
|
||||||
const pineconeIndex = client.Index(index)
|
const pineconeIndex = client.Index(index)
|
||||||
|
|
||||||
const vectorStore = await PineconeStore.fromExistingIndex(embeddings, {
|
const obj: PineconeLibArgs = {
|
||||||
pineconeIndex
|
pineconeIndex
|
||||||
})
|
}
|
||||||
|
|
||||||
|
if (pineconeNamespace) obj.namespace = pineconeNamespace
|
||||||
|
|
||||||
|
const vectorStore = await PineconeStore.fromExistingIndex(embeddings, obj)
|
||||||
|
|
||||||
if (output === 'retriever') {
|
if (output === 'retriever') {
|
||||||
const retriever = vectorStore.asRetriever()
|
const retriever = vectorStore.asRetriever()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface'
|
import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface'
|
||||||
import { PineconeClient } from '@pinecone-database/pinecone'
|
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 { Embeddings } from 'langchain/embeddings/base'
|
||||||
import { Document } from 'langchain/document'
|
import { Document } from 'langchain/document'
|
||||||
import { getBaseClasses } from '../../../src/utils'
|
import { getBaseClasses } from '../../../src/utils'
|
||||||
@@ -46,9 +46,11 @@ class PineconeUpsert_VectorStores implements INode {
|
|||||||
type: 'string'
|
type: 'string'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Pinecone Index',
|
label: 'Pinecone Namespace',
|
||||||
name: 'pineconeIndex',
|
name: 'pineconeNamespace',
|
||||||
type: 'string'
|
type: 'string',
|
||||||
|
placeholder: 'my-first-namespace',
|
||||||
|
optional: true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
this.outputs = [
|
this.outputs = [
|
||||||
@@ -69,6 +71,7 @@ class PineconeUpsert_VectorStores implements INode {
|
|||||||
const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string
|
const pineconeApiKey = nodeData.inputs?.pineconeApiKey as string
|
||||||
const pineconeEnv = nodeData.inputs?.pineconeEnv as string
|
const pineconeEnv = nodeData.inputs?.pineconeEnv as string
|
||||||
const index = nodeData.inputs?.pineconeIndex as string
|
const index = nodeData.inputs?.pineconeIndex as string
|
||||||
|
const pineconeNamespace = nodeData.inputs?.pineconeNamespace as string
|
||||||
const docs = nodeData.inputs?.document as Document[]
|
const docs = nodeData.inputs?.document as Document[]
|
||||||
const embeddings = nodeData.inputs?.embeddings as Embeddings
|
const embeddings = nodeData.inputs?.embeddings as Embeddings
|
||||||
const output = nodeData.outputs?.output as string
|
const output = nodeData.outputs?.output as string
|
||||||
@@ -86,9 +89,13 @@ class PineconeUpsert_VectorStores implements INode {
|
|||||||
finalDocs.push(new Document(docs[i]))
|
finalDocs.push(new Document(docs[i]))
|
||||||
}
|
}
|
||||||
|
|
||||||
const vectorStore = await PineconeStore.fromDocuments(finalDocs, embeddings, {
|
const obj: PineconeLibArgs = {
|
||||||
pineconeIndex
|
pineconeIndex
|
||||||
})
|
}
|
||||||
|
|
||||||
|
if (pineconeNamespace) obj.namespace = pineconeNamespace
|
||||||
|
|
||||||
|
const vectorStore = await PineconeStore.fromDocuments(finalDocs, embeddings, obj)
|
||||||
|
|
||||||
if (output === 'retriever') {
|
if (output === 'retriever') {
|
||||||
const retriever = vectorStore.asRetriever()
|
const retriever = vectorStore.asRetriever()
|
||||||
|
|||||||
Reference in New Issue
Block a user