LangChainJs之基础模型(一)

LangChainJs之基础模型(一) 为什么需要LangChainLangChain 是一个专为智能体Agent设计的开发框架其核心价值在于为大模型赋予“连接外部工具”的能力从而突破其固有的“大脑”(大模型)边界。由于大模型在预训练完成后其参数化知识便已冻结无法实时更新或获取私有数据。若要注入新知识传统方式需进行成本高昂的重新训练。而 LangChain 另辟蹊径它并不试图改变模型的“思维”而是为其“长出手脚”——通过集成网络搜索、本地知识库检索即 RAG、文档编辑等外部工具让大模型能够利用外部信息源进行推理与行动从而极大地扩展了其应用边界。LangChain分为Python和Javascript两个版本下面的代码示例我们将以Javascript版本来学习LangChain。基础 LLM 调用环境要求NodeJs 20以上Langchainjs1.5Windows、Mac、Linux平台均支持。import “dotenv/config”;import { ChatOpenAI } from “langchain/openai”;const model new ChatOpenAI({// model指定使用的模型名称model: “GLM-5.1”,// 【参数】temperature控制回复的随机性和创造性// 0.0-0.3 → 确定性强适合代码生成、事实回答// 0.5-0.8 → 平衡适合日常对话// 0.8-1.0 → 高创造性适合写作、头脑风暴temperature: 0.7,configuration: {baseURL: process.env.OPENAI_API_KEY,apiKey: process.env.OPENAI_BASE_URL,},});async function main() {const response await model.invoke(“你好”);console.log(“AI 回复:”, response.content);}main().catch(console.error);代码参考基础llm调用聊天模型new ChatOpenAI即是对聊天模型实例初始化。ChatOpenAI是LangChain集成OpenAI聊天模型的核心类它适配所有支持OpenAI接口规范的大模型智谱GLM系列兼容OpenAI接口规范DeepSeek系列兼容OpenAI接口规范通义千问系列兼容OpenAI接口规范Kimi兼容OpenAI接口规范豆包系列兼容OpenAI接口规范同时LangChain集成支持Anthropic、Gemini、DeepSeek等接口规范通过 langchain/ 开头的官方集成包支持非常多的聊天模型。// Anthropicimport { ChatAnthropic } from ‘langchain/anthropic’;const model new ChatAnthropic({ model: ‘claude-3-5-sonnet’ });// DeepSeekimport { ChatDeepSeek } from ‘langchain/deepseek’;const model new ChatDeepSeek({ model: ‘deepseek-reasoner’ });Message在基础llm调用时我们通常直接使用字符串提问。这种方式适用于一次性问答但对于需要上下文连续性的多轮对话它便显得力不从心模型无法“记住”之前的交流每次提问都孤立无援。在日常开发中多轮对话是高频场景。LangChain的Message正是为此而生——它作为聊天模型输入输出的结构化对象通过 role角色和 content内容两个核心字段为每条消息赋予了明确的身份和意图。这一设计让模型能够清晰区分“谁在说”、“说了什么”从而真正理解对话的上下文实现连贯的多轮交互。import { HumanMessage, SystemMessage } from “langchain/core/messages”;// … 代码省略const messages [new SystemMessage(“你是一个 helpful 的 AI 助手用中文回答问题。”),new HumanMessage(“什么是 LangChain”),];const response await model.invoke(messages);console.log(“AI 回复:”, response.content);// … 代码省略代码参考message多轮对话LangChain中三个最常用的消息类是 HumanMessage、SystemMessage 和 AIMessage。SystemMessage在对话开始时给模型设定一个全局指令如定义它的角色、行为准则、输