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

相关推荐
GEO从入门到精通4 小时前
GEO学习是学理论还是学工具操作?
学习
米小虾5 小时前
从 ReAct 到 Multi-Agent:AI Agent 架构设计的演进与实践
langchain·jetbrains
星幻元宇VR5 小时前
VR施工安全行走平台,沉浸式建筑安全培训新模式
科技·学习·安全·vr·虚拟现实
闫记康5 小时前
Linux学习day4
linux·运维·学习
南境十里·墨染春水6 小时前
线程池学习(四) 实现缓存式线程池
学习
吃好睡好便好6 小时前
伽利略·伽利雷的故事
学习
GEO从入门到精通6 小时前
为什么要学习GEO?
人工智能·学习
小趴菜不能喝6 小时前
LangChain 开发Agent基础
langchain
云姜.6 小时前
如何快速使用Langchain上手编程
python·langchain