Feature/update openai version, add reasoning effort param, add o3 mini (#3973)

* update openai version, add reasoning effort param

* update azure

* add filter for pinecone llamaindex

* update graph cypher qa chain
This commit is contained in:
Henry Heng
2025-02-04 08:43:27 +00:00
committed by GitHub
parent 2a0e712b7d
commit a0b4abdd13
24 changed files with 498 additions and 289 deletions
@@ -1,4 +1,4 @@
import { AzureOpenAIInput, ClientOptions, LegacyOpenAIInput, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { AzureOpenAIInput, ClientOptions, AzureOpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
@@ -28,7 +28,7 @@ class AzureOpenAIEmbedding_Embeddings implements INode {
this.icon = 'Azure.svg'
this.category = 'Embeddings'
this.description = 'Azure OpenAI API to generate embeddings for a given text'
this.baseClasses = [this.type, ...getBaseClasses(OpenAIEmbeddings)]
this.baseClasses = [this.type, ...getBaseClasses(AzureOpenAIEmbeddings)]
this.credential = {
label: 'Connect Credential',
name: 'credential',
@@ -81,7 +81,7 @@ class AzureOpenAIEmbedding_Embeddings implements INode {
const azureOpenAIApiDeploymentName = getCredentialParam('azureOpenAIApiDeploymentName', credentialData, nodeData)
const azureOpenAIApiVersion = getCredentialParam('azureOpenAIApiVersion', credentialData, nodeData)
const obj: Partial<OpenAIEmbeddingsParams> & Partial<AzureOpenAIInput> & { configuration?: ClientOptions & LegacyOpenAIInput } = {
const obj: Partial<OpenAIEmbeddingsParams> & Partial<AzureOpenAIInput> & { configuration?: ClientOptions } = {
azureOpenAIApiKey,
azureOpenAIApiInstanceName,
azureOpenAIApiDeploymentName,
@@ -102,7 +102,7 @@ class AzureOpenAIEmbedding_Embeddings implements INode {
}
}
const model = new OpenAIEmbeddings(obj)
const model = new AzureOpenAIEmbeddings(obj)
return model
}
}
@@ -1,4 +1,4 @@
import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ClientOptions, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
import { getCredentialData, getCredentialParam } from '../../../src/utils'
@@ -53,14 +53,16 @@ class LocalAIEmbedding_Embeddings implements INode {
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const localAIApiKey = getCredentialParam('localAIApiKey', credentialData, nodeData)
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string } = {
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string; configuration?: ClientOptions } = {
modelName,
openAIApiKey: 'sk-'
}
if (localAIApiKey) obj.openAIApiKey = localAIApiKey
const model = new OpenAIEmbeddings(obj, { basePath })
if (basePath) obj.configuration = { baseURL: basePath }
const model = new OpenAIEmbeddings(obj)
return model
}
@@ -1,4 +1,4 @@
import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ClientOptions, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ICommonObject, INode, INodeData, INodeOptionsValue, INodeParams } from '../../../src/Interface'
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
import { MODEL_TYPE, getModels } from '../../../src/modelLoader'
@@ -97,7 +97,7 @@ class OpenAIEmbedding_Embeddings implements INode {
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const openAIApiKey = getCredentialParam('openAIApiKey', credentialData, nodeData)
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string } = {
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string; configuration?: ClientOptions } = {
openAIApiKey,
modelName
}
@@ -107,7 +107,13 @@ class OpenAIEmbedding_Embeddings implements INode {
if (timeout) obj.timeout = parseInt(timeout, 10)
if (dimensions) obj.dimensions = parseInt(dimensions, 10)
const model = new OpenAIEmbeddings(obj, { basePath })
if (basePath) {
obj.configuration = {
baseURL: basePath
}
}
const model = new OpenAIEmbeddings(obj)
return model
}
}
@@ -1,4 +1,4 @@
import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ClientOptions, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai'
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
@@ -93,7 +93,7 @@ class OpenAIEmbeddingCustom_Embeddings implements INode {
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const openAIApiKey = getCredentialParam('openAIApiKey', credentialData, nodeData)
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string } = {
const obj: Partial<OpenAIEmbeddingsParams> & { openAIApiKey?: string; configuration?: ClientOptions } = {
openAIApiKey
}
@@ -112,7 +112,14 @@ class OpenAIEmbeddingCustom_Embeddings implements INode {
}
}
const model = new OpenAIEmbeddings(obj, { baseURL: basePath, defaultHeaders: parsedBaseOptions })
if (basePath || parsedBaseOptions) {
obj.configuration = {
baseURL: basePath,
defaultHeaders: parsedBaseOptions
}
}
const model = new OpenAIEmbeddings(obj)
return model
}
}