Chore: Update @langchain/community (#3787)

* update package versions

* fix updated field defs due to lib update

* Merge branch 'main' into chore/Upgrade-LC-version

# Conflicts:
#	packages/components/package.json
#	pnpm-lock.yaml

* lintfix

* fix follow up prompt dialog

* lintfix

---------

Co-authored-by: Henry <hzj94@hotmail.com>
This commit is contained in:
Light 2025-01-15 03:30:51 +11:00 committed by GitHub
parent 16aa3a0d29
commit cc87d85675
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 513 additions and 204 deletions

View File

@ -68,7 +68,7 @@
}, },
"resolutions": { "resolutions": {
"@google/generative-ai": "^0.15.0", "@google/generative-ai": "^0.15.0",
"@langchain/core": "0.3.18", "@langchain/core": "0.3.29",
"@qdrant/openapi-typescript-fetch": "1.2.6", "@qdrant/openapi-typescript-fetch": "1.2.6",
"openai": "4.57.3", "openai": "4.57.3",
"protobufjs": "7.4.0" "protobufjs": "7.4.0"

View File

@ -1,6 +1,6 @@
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
import { JinaEmbeddings, JinaEmbeddingsParams } from '@langchain/community/embeddings/jina' import { JinaEmbeddings } from '@langchain/community/embeddings/jina'
class JinaAIEmbedding_Embeddings implements INode { class JinaAIEmbedding_Embeddings implements INode {
label: string label: string
@ -45,12 +45,11 @@ class JinaAIEmbedding_Embeddings implements INode {
const credentialData = await getCredentialData(nodeData.credential ?? '', options) const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const apiKey = getCredentialParam('jinaAIAPIKey', credentialData, nodeData) const apiKey = getCredentialParam('jinaAIAPIKey', credentialData, nodeData)
const obj: JinaEmbeddingsParams = { const model = new JinaEmbeddings({
apiKey: apiKey, apiKey: apiKey,
model: modelName model: modelName
} })
const model = new JinaEmbeddings(obj)
return model return model
} }
} }

View File

@ -41,14 +41,14 @@
"@langchain/aws": "0.1.2", "@langchain/aws": "0.1.2",
"@langchain/baidu-qianfan": "^0.1.0", "@langchain/baidu-qianfan": "^0.1.0",
"@langchain/cohere": "^0.0.7", "@langchain/cohere": "^0.0.7",
"@langchain/community": "^0.3.11", "@langchain/community": "^0.3.24",
"@langchain/core": "0.3.18", "@langchain/core": "0.3.29",
"@langchain/exa": "^0.0.5", "@langchain/exa": "^0.0.5",
"@langchain/google-genai": "0.1.3", "@langchain/google-genai": "0.1.3",
"@langchain/google-vertexai": "^0.1.2", "@langchain/google-vertexai": "^0.1.2",
"@langchain/groq": "0.1.2", "@langchain/groq": "0.1.2",
"@langchain/langgraph": "^0.0.22", "@langchain/langgraph": "^0.0.22",
"@langchain/mistralai": "^0.0.26", "@langchain/mistralai": "^0.2.0",
"@langchain/mongodb": "^0.0.1", "@langchain/mongodb": "^0.0.1",
"@langchain/ollama": "0.1.2", "@langchain/ollama": "0.1.2",
"@langchain/openai": "0.3.13", "@langchain/openai": "0.3.13",

View File

@ -96,6 +96,7 @@ export const generateFollowUpPrompts = async (
model: providerConfig.modelName, model: providerConfig.modelName,
temperature: parseFloat(`${providerConfig.temperature}`) temperature: parseFloat(`${providerConfig.temperature}`)
}) })
// @ts-ignore
const structuredLLM = model.withStructuredOutput(FollowUpPromptType) const structuredLLM = model.withStructuredOutput(FollowUpPromptType)
const structuredResponse = await structuredLLM.invoke(followUpPromptsPrompt) const structuredResponse = await structuredLLM.invoke(followUpPromptsPrompt)
return structuredResponse return structuredResponse

View File

@ -354,16 +354,20 @@ const FollowUpPrompts = ({ dialogProps }) => {
chatbotConfig.followUpPrompts = value.followUpPrompts chatbotConfig.followUpPrompts = value.followUpPrompts
// if the prompt is not set, save the default prompt // if the prompt is not set, save the default prompt
if (!followUpPromptsConfig[followUpPromptsConfig.selectedProvider].prompt) { const selectedProvider = followUpPromptsConfig.selectedProvider
followUpPromptsConfig[followUpPromptsConfig.selectedProvider].prompt = followUpPromptsOptions[
followUpPromptsConfig.selectedProvider
].inputs.find((input) => input.name === 'prompt').default
}
if (!followUpPromptsConfig[followUpPromptsConfig.selectedProvider].temperature) { if (selectedProvider && followUpPromptsConfig[selectedProvider] && followUpPromptsOptions[selectedProvider]) {
followUpPromptsConfig[followUpPromptsConfig.selectedProvider].temperature = followUpPromptsOptions[ if (!followUpPromptsConfig[selectedProvider].prompt) {
followUpPromptsConfig.selectedProvider followUpPromptsConfig[selectedProvider].prompt = followUpPromptsOptions[selectedProvider].inputs.find(
].inputs.find((input) => input.name === 'temperature').default (input) => input.name === 'prompt'
)?.default
}
if (!followUpPromptsConfig[selectedProvider].temperature) {
followUpPromptsConfig[selectedProvider].temperature = followUpPromptsOptions[selectedProvider].inputs.find(
(input) => input.name === 'temperature'
)?.default
}
} }
const saveResp = await chatflowsApi.updateChatflow(dialogProps.chatflow.id, { const saveResp = await chatflowsApi.updateChatflow(dialogProps.chatflow.id, {
@ -462,7 +466,6 @@ const FollowUpPrompts = ({ dialogProps }) => {
<Typography variant='h5'>Providers</Typography> <Typography variant='h5'>Providers</Typography>
<FormControl fullWidth> <FormControl fullWidth>
<Select size='small' value={selectedProvider} onChange={handleSelectedProviderChange}> <Select size='small' value={selectedProvider} onChange={handleSelectedProviderChange}>
<MenuItem value='none'>None</MenuItem>
{Object.values(followUpPromptsOptions).map((provider) => ( {Object.values(followUpPromptsOptions).map((provider) => (
<MenuItem key={provider.name} value={provider.name}> <MenuItem key={provider.name} value={provider.name}>
{provider.label} {provider.label}

File diff suppressed because one or more lines are too long