UNPKG

@n8n/n8n-nodes-langchain

Version:

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

143 lines 6.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EmbeddingsAzureOpenAi = void 0; const openai_1 = require("@langchain/openai"); const ai_utilities_1 = require("@n8n/ai-utilities"); const n8n_workflow_1 = require("n8n-workflow"); class EmbeddingsAzureOpenAi { constructor() { this.description = { displayName: 'Embeddings Azure OpenAI', name: 'embeddingsAzureOpenAi', icon: 'file:azure.svg', credentials: [ { name: 'azureOpenAiApi', required: true, }, ], group: ['transform'], version: 1, description: 'Use Embeddings Azure OpenAI', defaults: { name: 'Embeddings Azure OpenAI', }, codex: { categories: ['AI'], subcategories: { AI: ['Embeddings'], }, resources: { primaryDocumentation: [ { url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsazureopenai/', }, ], }, }, inputs: [], outputs: [n8n_workflow_1.NodeConnectionTypes.AiEmbedding], outputNames: ['Embeddings'], properties: [ (0, ai_utilities_1.getConnectionHintNoticeField)([n8n_workflow_1.NodeConnectionTypes.AiVectorStore]), { displayName: 'Model (Deployment) Name', name: 'model', type: 'string', description: 'The name of the model(deployment) to use', default: '', }, { displayName: 'Options', name: 'options', placeholder: 'Add Option', description: 'Additional options to add', type: 'collection', default: {}, options: [ { displayName: 'Batch Size', name: 'batchSize', default: 512, typeOptions: { maxValue: 2048 }, description: 'Maximum number of documents to send in each request', type: 'number', }, { displayName: 'Strip New Lines', name: 'stripNewLines', default: true, description: 'Whether to strip new lines from the input text', type: 'boolean', }, { displayName: 'Timeout', name: 'timeout', default: -1, description: 'Maximum amount of time a request is allowed to take in seconds. Set to -1 for no timeout.', type: 'number', }, { displayName: 'Dimensions', name: 'dimensions', default: 1536, description: 'The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.', type: 'options', options: [ { name: '256', value: 256, }, { name: '512', value: 512, }, { name: '1024', value: 1024, }, { name: '1536', value: 1536, }, { name: '3072', value: 3072, }, ], }, ], }, ], }; } async supplyData(itemIndex) { this.logger.debug('Supply data for embeddings'); const credentials = await this.getCredentials('azureOpenAiApi'); const modelName = this.getNodeParameter('model', itemIndex); const options = this.getNodeParameter('options', itemIndex, {}); if (options.timeout === -1) { options.timeout = undefined; } const embeddings = new openai_1.AzureOpenAIEmbeddings({ azureOpenAIApiDeploymentName: modelName, azureOpenAIApiInstanceName: !credentials.endpoint ? credentials.resourceName : undefined, azureOpenAIApiKey: credentials.apiKey, azureOpenAIApiVersion: credentials.apiVersion, azureOpenAIBasePath: credentials.endpoint ? `${credentials.endpoint}/openai/deployments` : undefined, configuration: { fetchOptions: { dispatcher: (0, ai_utilities_1.getProxyAgent)(credentials.endpoint ?? `https://${credentials.resourceName}.openai.azure.com`, {}), }, }, ...options, }); return { response: (0, ai_utilities_1.logWrapper)(embeddings, this), }; } } exports.EmbeddingsAzureOpenAi = EmbeddingsAzureOpenAi; //# sourceMappingURL=EmbeddingsAzureOpenAi.node.js.map