diff --git a/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/HuggingFaceInferenceEmbedding.ts b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/HuggingFaceInferenceEmbedding.ts new file mode 100644 index 000000000..6f14325a6 --- /dev/null +++ b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/HuggingFaceInferenceEmbedding.ts @@ -0,0 +1,53 @@ +import { INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' +import { HuggingFaceInferenceEmbeddings, HuggingFaceInferenceEmbeddingsParams } from 'langchain/embeddings/hf' + +class HuggingFaceInferenceEmbedding_Embeddings implements INode { + label: string + name: string + type: string + icon: string + category: string + description: string + baseClasses: string[] + inputs: INodeParams[] + + constructor() { + this.label = 'HuggingFace Inference Embeddings' + this.name = 'huggingFaceInferenceEmbeddings' + this.type = 'HuggingFaceInferenceEmbeddings' + this.icon = 'huggingface.png' + this.category = 'Embeddings' + this.description = 'HuggingFace Inference API to generate embeddings for a given text' + this.baseClasses = [this.type, ...getBaseClasses(HuggingFaceInferenceEmbeddings)] + this.inputs = [ + { + label: 'HuggingFace Api Key', + name: 'apiKey', + type: 'password' + }, + { + label: 'Model', + name: 'modelName', + type: 'string', + optional: true + } + ] + } + + async init(nodeData: INodeData): Promise { + const apiKey = nodeData.inputs?.apiKey as string + const modelName = nodeData.inputs?.modelName as string + + const obj: Partial = { + apiKey + } + + if (modelName) obj.model = modelName + + const model = new HuggingFaceInferenceEmbeddings(obj) + return model + } +} + +module.exports = { nodeClass: HuggingFaceInferenceEmbedding_Embeddings } diff --git a/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/huggingface.png b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/huggingface.png new file mode 100644 index 000000000..f8f202a46 Binary files /dev/null and b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/huggingface.png differ diff --git a/packages/components/package.json b/packages/components/package.json index f72272753..b51f85346 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -17,7 +17,7 @@ "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "@dqbd/tiktoken": "^1.0.7", - "@huggingface/inference": "^1.6.3", + "@huggingface/inference": "1", "@pinecone-database/pinecone": "^0.0.12", "@supabase/supabase-js": "^2.21.0", "axios": "^0.27.2",