Skip to main content

LangChain v0.3

最后更新时间:07.08.25

已变更的内容

新增功能

在 0.2.x 开发期间添加了以下功能:

如何更新你的代码

如果你正在使用 langchain / @langchain/community / @langchain/core 0.0 或 0.1,我们建议你首先 升级到 0.2

如果你正在使用 @langchain/langgraph,请升级到 @langchain/langgraph>=0.2.3。这将兼容所有基础包的 0.2 或 0.3 版本。

以下是所有已发布包及其在 package.json 中建议的版本约束的完整列表。任何现在支持 @langchain/core 0.3 的包都进行了次版本升级。

基础包

包名最新版本推荐的 package.json 约束
langchain0.3.29>=0.3.58 <0.4.0
@langchain/community0.3.48>=0.3.58 <0.4.0
@langchain/textsplitters0.1.0>=0.2.21 <0.4.0
@langchain/core0.3.62>=0.3.0 <0.4.0

下游包

包名最新版本推荐的 package.json 约束
@langchain/langgraph0.3.7>=0.3.58 <0.4.0

集成包

包名最新版本推荐的 package.json 约束
@langchain/anthropic0.3.24>=0.3.58 <0.4.0
@langchain/aws0.1.11>=0.3.58 <0.4.0
@langchain/azure-cosmosdb0.2.8>=0.2.21 <0.4.0
@langchain/azure-dynamic-sessions0.2.0>=0.2.21 <0.4.0
@langchain/baidu-qianfan0.1.0>=0.1.0 <0.4.0
@langchain/cloudflare0.1.0>=0.1.0 <0.4.0
@langchain/cohere0.3.4>=0.3.58 <0.4.0
@langchain/exa0.1.0>=0.1.0 <0.4.0
@langchain/google-genai0.2.14>=0.3.58 <0.4.0
@langchain/google-vertexai0.2.14>=0.3.58 <0.4.0
@langchain/google-vertexai-web0.2.14>=0.3.58 <0.4.0
@langchain/groq0.2.3>=0.3.58 <0.4.0
@langchain/mistralai0.2.1>=0.3.58 <0.4.0
@langchain/mixedbread-ai0.2.0>=0.2.21 <0.4.0
@langchain/mongodb0.1.0>=0.1.0 <0.4.0
@langchain/nomic0.1.0>=0.3.0 <0.4.0
@langchain/ollama0.2.3>=0.3.58 <0.4.0
@langchain/openai0.5.18>=0.3.58 <0.4.0
@langchain/pinecone0.2.0>=0.2.21 <0.4.0
@langchain/qdrant0.1.2>=0.2.21 <0.4.0
@langchain/redis0.1.1>=0.2.21 <0.4.0
@langchain/weaviate0.2.1>=0.2.21 <0.4.0
@langchain/yandex0.1.0>=0.2.21 <0.4.0

更新到最新版本的包后,如果尚未安装,你需要显式安装 @langchain/core

npm install @langchain/core

我们还建议检查你的 lockfile 或运行 相应的包管理器命令,以确保你的包管理器只安装了一个版本的 @langchain/core

如果你当前在无服务器环境中运行代码(例如,Cloudflare Worker、Edge 函数或 AWS Lambda 函数),并且你使用了 LangSmith 追踪或其他回调,你需要 等待回调完成以确保它们在函数结束前执行完毕。 以下是一个快速示例:

import { RunnableLambda } from "@langchain/core/runnables";
import { awaitAllCallbacks } from "@langchain/core/callbacks/promises";

const runnable = RunnableLambda.from(() => "hello!");

const customHandler = {
handleChainEnd: async () => {
await new Promise((resolve) => setTimeout(resolve, 2000));
console.log("调用完成");
},
};

const startTime = new Date().getTime();

await runnable.invoke({ number: "2" }, { callbacks: [customHandler] });

console.log(`耗时: ${new Date().getTime() - startTime}ms`);

await awaitAllCallbacks();

console.log(`最终耗时: ${new Date().getTime() - startTime}ms`);
耗时: 1ms
调用完成
最终耗时: 2164ms

你也可以将 LANGCHAIN_CALLBACKS_BACKGROUND 设置为 "false" 来使所有回调变为阻塞模式:

process.env.LANGCHAIN_CALLBACKS_BACKGROUND = "false";

const startTimeBlocking = new Date().getTime();

await runnable.invoke({ number: "2" }, { callbacks: [customHandler] });

console.log(
`初始耗时: ${new Date().getTime() - startTimeBlocking}ms`
);
调用完成
初始耗时: 2002ms

Was this page helpful?


You can also leave detailed feedback on GitHub.