Skip to main content

LangChain 版本 v0.3

最后更新日期:09.14.24

更改内容

新增功能

在 0.2.x 的开发过程中添加了以下功能:

如何更新您的代码

如果您使用的是langchain / @langchain/community / @langchain/core0.0 或 0.1,建议您先升级到 0.2

如果您使用的是@langchain/langgraph,升级到@langchain/langgraph>=0.2.3.这将适用于所有基础包的 0.2 或 0.3 版本。

以下是所有已发布的软件包的完整列表,以及我们建议将版本约束升级到package.json. 现在支持@langchain/core0.3 有一个小版本更新。

基础包

最近的推荐package.json约束
langchain0.3.0>=0.3.0 <0.4.0
@langchain/community0.3.0>=0.3.0 <0.4.0
@langchain/textsplitters0.1.0>=0.1.0 <0.2.0
@langchain/core0.3.0>=0.3.0 <0.4.0

下游软件包

最近的推荐package.json约束
@langchain/langgraph0.2.3>=0.2.3 <0.3

集成包

最近的推荐package.json约束
@langchain/anthropic0.3.0>=0.3.0 <0.4.0
@langchain/aws0.1.0>=0.1.0 <0.2.0
@langchain/azure-cosmosdb0.2.0>=0.2.0 <0.3.0
@langchain/azure-dynamic-sessions0.2.0>=0.2.0 <0.3.0
@langchain/baidu-qianfan0.1.0>=0.1.0 <0.2.0
@langchain/cloudflare0.1.0>=0.1.0 <0.2.0
@langchain/cohere0.3.0>=0.3.0 <0.4.0
@langchain/exa0.1.0>=0.1.0 <0.2.0
@langchain/google-genai0.1.0>=0.1.0 <0.2.0
@langchain/google-vertexai0.1.0>=0.1.0 <0.2.0
@langchain/google-vertexai-web0.1.0>=0.1.0 <0.2.0
@langchain/groq0.1.1>=0.1.1 <0.2.0
@langchain/mistralai0.1.0>=0.1.0 <0.2.0
@langchain/mixedbread-ai0.1.0>=0.1.0 <0.2.0
@langchain/mongodb0.1.0>=0.1.0 <0.2.0
@langchain/nomic0.1.0>=0.1.0 <0.2.0
@langchain/ollama0.1.0>=0.1.0 <0.2.0
@langchain/openai0.3.0>=0.3.0 <0.4.0
@langchain/pinecone0.1.0>=0.1.0 <0.2.0
@langchain/qdrant0.1.0>=0.1.0 <0.2.0
@langchain/redis0.1.0>=0.1.0 <0.2.0
@langchain/weaviate0.1.0>=0.1.0 <0.2.0
@langchain/yandex0.1.0>=0.1.0 <0.2.0

更新到最新版本的软件包后,您需要显式安装@langchain/core如果您尚未执行以下作:

npm install @langchain/core

我们还建议您检查您的锁定文件或运行相应的包管理器命令,以确保您的包管理器只有一个版本的@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("Call finished");
},
};

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

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

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

await awaitAllCallbacks();

console.log(`Final elapsed time: ${new Date().getTime() - startTime}ms`);
Elapsed time: 1ms
Call finished
Final elapsed time: 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(
`Initial elapsed time: ${new Date().getTime() - startTimeBlocking}ms`
);
Call finished
Initial elapsed time: 2002ms