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

相关推荐
我的xiaodoujiao3 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
你想知道什么?5 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御5 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
chaors6 小时前
DeepRearchSystem 0x00:初识
langchain·llm·ai编程
AOwhisky6 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
minglie17 小时前
zynq中linux系统的自动登录和免密登录
学习
茯苓gao8 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
我想我不够好。9 小时前
监控学习 7.23 1.5hour
学习
BerryS3N9 小时前
深度解析 LangChain V1.3:架构演进、核心源码剖析与企业级应用落地指南
架构·langchain
泰勒朗斯11 小时前
Helicopter FBI-405尾电机版本设置
学习