LangChain学习之环境搭建与基础概念(1/8)

模块 1: 环境搭建与基础概念

1.1 LangChain.js/TS 简介

LangChain 是一个用于开发由大型语言模型(LLMs)驱动的应用程序的框架。它提供了一套工具、组件和接口,旨在简化 LLM 应用程序的开发流程。LangChain 支持多种语言,包括 Python 和 JavaScript/TypeScript。对于 TypeScript 开发者而言,LangChain.js 提供了完整的类型安全和现代 JavaScript 生态系统的优势 1

1.2 环境搭建

在开始使用 LangChain.js 之前,需要进行必要的环境搭建。这主要包括安装 LangChain 库及其相关依赖,并配置 LLM 提供商的 API 密钥。

1.2.1 安装核心库

首先,通过 npm 或 yarn 安装 LangChain 的核心库以及您计划使用的 LLM 提供商的集成库。例如,如果使用 DeepSeek 模型,则需要安装 @langchain/openai (因为 DeepSeek 兼容 OpenAI API 协议):

bash 复制代码
npm install langchain @langchain/openai
# 或者
yarn add langchain @langchain/openai

1.2.2 配置 API 密钥

大多数 LLM 提供商(如 DeepSeek)都需要 API 密钥进行身份验证。建议将这些密钥存储在环境变量中,以确保安全性并避免将其硬编码到代码中。例如,对于 DeepSeek API 密钥,可以在 .env 文件中设置 DEEPSEEK_API_KEY

dotenv 复制代码
DEEPSEEK_API_KEY="your_deepseek_api_key_here"

然后在您的 TypeScript 代码中,可以使用 process.env 来访问这些环境变量。为了在 Node.js 环境中加载 .env 文件,通常会使用 dotenv 库:

bash 复制代码
npm install dotenv

并在应用程序的入口文件顶部引入并配置 dotenv

typescript 复制代码
import 'dotenv/config';
// 现在可以通过 process.env.DEEPSEEK_API_KEY 访问密钥

1.3 LLM 与 Chat Models

在 LangChain 中,有两种主要的模型类型用于与大型语言模型进行交互:LLM (Large Language Models)Chat Models (聊天模型)。理解它们之间的区别对于选择合适的模型接口至关重要。

1.3.1 LLM (Large Language Models)

LLM 接口通常用于处理纯文本输入和输出 。它们接收一个字符串作为输入,并返回一个字符串作为输出。这适用于需要生成文本、完成句子或进行文本摘要等任务。例如,OpenAI 类就是 LLM 接口的一个实现,但我们可以通过配置使其指向 DeepSeek 的 API。

typescript 复制代码
import { ChatOpenAI } from "@langchain/openai"; // 注意:DeepSeek 兼容 OpenAI API,所以仍使用 @langchain/openai

const model = new ChatOpenAI({
  model: "deepseek-v4-flash", // 指定 DeepSeek 模型
  temperature: 0.9, // 控制输出的随机性
  apiKey: process.env.DEEPSEEK_API_KEY, // 使用 DeepSeek API Key
  configuration: {
    baseURL: "https://api.deepseek.com", // DeepSeek API 的基础 URL
  },
});

const result = await model.invoke("写一个关于人工智能的短篇故事。");
console.log(result.content); // 访问生成内容

1.3.2 Chat Models (聊天模型)

Chat Models 接口专门用于处理一系列消息 作为输入,并返回一个消息作为输出。这些模型更适合于对话式应用,因为它们能够理解对话的上下文和角色(如系统、人类、AI)。ChatOpenAI 类是 Chat Models 接口的一个实现,同样可以配置为使用 DeepSeek。

消息通常由 HumanMessageAIMessageSystemMessage 等类型组成,它们带有 contentrole 属性。

typescript 复制代码
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage, SystemMessage } from "@langchain/core/messages";

const chatModel = new ChatOpenAI({
  model: "deepseek-v4-flash", // 指定 DeepSeek 模型
  temperature: 0.7,
  apiKey: process.env.DEEPSEEK_API_KEY,
  configuration: {
    baseURL: "https://api.deepseek.com", // DeepSeek API 的基础 URL
  },
});

const messages = [
  new SystemMessage("你是一个乐于助人的 AI 助手。"),
  new HumanMessage("你好,请问今天天气怎么样?"),
];

const response = await chatModel.invoke(messages);
console.log(response.content);

1.3.3 总结对比

特性 LLM (Large Language Models) Chat Models (聊天模型)
输入 纯文本字符串 消息数组 (HumanMessage, AIMessage, SystemMessage)
输出 纯文本字符串 AI 消息对象 (AIMessage)
适用场景 文本生成、摘要、补全 对话系统、聊天机器人、多轮交互
示例类 ChatOpenAI (配置为 LLM 行为) ChatOpenAI (配置为 Chat 行为)

参考文献

1 LangChain.js Overview. (n.d.). Docs by LangChain. Retrieved from https://docs.langchain.com/oss/javascript/langchain/overview

相关推荐
m4Rk_27 分钟前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
陈年老古董31 分钟前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
旺仔小馒头wang39 分钟前
AI 智能手机发布会:赋予人类的五种新能力
人工智能·学习·音视频
人工智能培训40 分钟前
未来三年,AI 落地的五个确定性判断
大数据·人工智能·学习·生活·ai写作
LONGZETECH1 小时前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车
彧azz1 小时前
操作系统时间管理与系统核心板块学习总结
c语言·笔记·学习·系统架构
啦啦啦!1 小时前
RAG初阶学习
学习·ai·知识库·rag
小林ixn1 小时前
从 LangChain 到 LangGraph:用「网状工作流」解锁多 Agent 协作的正确姿势
langchain·llm·agent
外收内放1 小时前
数据分析(jupyter与pandas初体验)
python·学习
zhangrelay1 小时前
《机器人控制器设计与编程》课程习题资料-2026
linux·笔记·学习·ubuntu