LangChain 版本 v0.3
最后更新日期:09.14.24
更改内容
- 所有 LangChain 软件包现在都有
@langchain/core作为对等依赖项而不是直接依赖项,以帮助避免围绕核心版本冲突的类型错误。- 您现在需要显式安装
@langchain/core而不是依赖于其他软件包的内部解析版本。
- 您现在需要显式安装
- 回调现在是后台的,默认情况下是非阻塞的,而不是阻塞的。
- 这意味着,如果您在无服务器环境中使用 LangSmith 进行跟踪,则需要等待回调以确保它们在函数结束之前完成。
- 从 中删除了已弃用的文档加载器和自查询入口点
langchain赞成@langchain/community和集成包。 - 从社区中删除了已弃用的 Google PaLM 入口点,以支持
@langchain/google-vertexai和@langchain/google-genai. - 已弃用,使用带有
"type"作为BaseMessageLike支持更像 OpenAI 的MessageWithRole
新增功能
在 0.2.x 的开发过程中添加了以下功能:
- 简化工具定义和使用。在此处阅读更多内容。
- 添加了通用聊天模型构造函数。
- 添加了调度自定义事件的功能。
- LangGraph.js 0.2.0 发布,使其成为使用 LangChain.js 创建代理的推荐方法。
- 修改了集成文档和 API 参考。在此处阅读更多内容。
如何更新您的代码
如果您使用的是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约束 |
|---|---|---|
| langchain | 0.3.0 | >=0.3.0 <0.4.0 |
| @langchain/community | 0.3.0 | >=0.3.0 <0.4.0 |
| @langchain/textsplitters | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/core | 0.3.0 | >=0.3.0 <0.4.0 |
下游软件包
| 包 | 最近的 | 推荐package.json约束 |
|---|---|---|
| @langchain/langgraph | 0.2.3 | >=0.2.3 <0.3 |
集成包
| 包 | 最近的 | 推荐package.json约束 |
|---|---|---|
| @langchain/anthropic | 0.3.0 | >=0.3.0 <0.4.0 |
| @langchain/aws | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/azure-cosmosdb | 0.2.0 | >=0.2.0 <0.3.0 |
| @langchain/azure-dynamic-sessions | 0.2.0 | >=0.2.0 <0.3.0 |
| @langchain/baidu-qianfan | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/cloudflare | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/cohere | 0.3.0 | >=0.3.0 <0.4.0 |
| @langchain/exa | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/google-genai | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/google-vertexai | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/google-vertexai-web | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/groq | 0.1.1 | >=0.1.1 <0.2.0 |
| @langchain/mistralai | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/mixedbread-ai | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/mongodb | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/nomic | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/ollama | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/openai | 0.3.0 | >=0.3.0 <0.4.0 |
| @langchain/pinecone | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/qdrant | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/redis | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/weaviate | 0.1.0 | >=0.1.0 <0.2.0 |
| @langchain/yandex | 0.1.0 | >=0.1.0 <0.2.0 |
更新到最新版本的软件包后,您需要显式安装@langchain/core如果您尚未执行以下作:
- npm
- 纱
- PNPM
npm install @langchain/core
yarn add @langchain/core
pnpm add @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