1-认识langchain.js

初始化项目

  • npm init -y

安装 LangChain 核心包

  • npm install langchain

安装 LangChain 的 OpenAI 适配器

  • npm install @langchain/openai

(可选) 安装环境变量管理包 dotenv,用于管理 API Key

  • npm install dotenv

  • .env环境变量

txt 复制代码
DEEPSEEK_API_KEY="sk-f89f4c441f4540e68fxxxxxxxxxxxx"
BASE_URL="https://api.deepseek.com"
AI_MODEL="deepseek-chat"
  • llm.js单次调用
js 复制代码
import { ChatOpenAI } from "@langchain/openai";
import * as dotenv from "dotenv";

// 加载环境变量
dotenv.config();

// 配置 DeepSeek 模型
const model = new ChatOpenAI({
  // 指定 DeepSeek 的模型名称,例如 deepseek-chat
  model: process.env.AI_MODEL,
  // 配置 DeepSeek 的 API Key
  apiKey: process.env.DEEPSEEK_API_KEY,
  // 配置 DeepSeek 的 Base URL
  configuration: {
    baseURL: process.env.BASE_URL,
  },
});

async function main() {
  try {
    // 调用模型
    const response = await model.invoke("你好,请介绍一下你自己。");// 单次调用
    console.log(response.content);
  } catch (error) {
    console.error("发生错误:", error);
  }
}

main();
  • node llm.js执行如下:

llm.js批量调用

js 复制代码
import { ChatOpenAI } from "@langchain/openai";
import * as dotenv from "dotenv";

// 加载环境变量
dotenv.config();

// 配置 DeepSeek 模型
const model = new ChatOpenAI({
  // 指定 DeepSeek 的模型名称,例如 deepseek-chat
  model: process.env.AI_MODEL,
  // 配置 DeepSeek 的 API Key
  apiKey: process.env.DEEPSEEK_API_KEY,
  // 配置 DeepSeek 的 Base URL
  configuration: {
    baseURL: process.env.BASE_URL,
  },
});

async function main() {
  try {
    // 调用模型
    // const response = await model.invoke("你好,请介绍一下你自己。");// 单次调用
    const response = await model.batch(["1 + 1 = 多少", "2 + 2 = 多少"]); // 批量调用
    console.log(response);
  } catch (error) {
    console.error("发生错误:", error);
  }
}

main();

llm.js流式调用

js 复制代码
import { ChatOpenAI } from "@langchain/openai";
import * as dotenv from "dotenv";

// 加载环境变量
dotenv.config();

// 配置 DeepSeek 模型
const model = new ChatOpenAI({
  // 指定 DeepSeek 的模型名称,例如 deepseek-chat
  model: process.env.AI_MODEL,
  // 配置 DeepSeek 的 API Key
  apiKey: process.env.DEEPSEEK_API_KEY,
  // 配置 DeepSeek 的 Base URL
  configuration: {
    baseURL: process.env.BASE_URL,
  },
});

async function main() {
  try {
    // 调用模型
    const response = await model.stream("1 + 1 = 多少"); // 流式调用
    for await (const chunk of response) {
      console.log(chunk);
    }
  } catch (error) {
    console.error("发生错误:", error);
  }
}

main();
  • 效果图如下:

常用的属性学习

js 复制代码
import { ChatOpenAI } from "@langchain/openai";
import * as dotenv from "dotenv";

// 加载环境变量
dotenv.config();

// 配置 DeepSeek 模型
const model = new ChatOpenAI({
  // 指定 DeepSeek 的模型名称,例如 deepseek-chat
  model: process.env.AI_MODEL,

  // 配置 DeepSeek 的 API Key
  apiKey: process.env.DEEPSEEK_API_KEY,
  // 配置 DeepSeek 的 Base URL
  configuration: {
    baseURL: process.env.BASE_URL,
  },
  temperature: 0.7, // 模型温度的范围是0到1,0表示严格和事实,1表示完全创意(就是瞎吉儿编)
  maxTokens: 1024, // 最大输出token数
  verbose: true, // 允许我们调试模型
});

async function main() {
  try {
    // 调用模型
    const response = await model.invoke("1 + 1 = 多少"); // 单次调用
    console.log(response);
  } catch (error) {
    console.error("发生错误:", error);
  }
}

main();
  • 这就是我们第一个LangChain应用程序和聊天机器人
相关推荐
OpsEye7 小时前
直连大模型API、开源网关、商用AI管理平台,该如何抉择
人工智能·开源
杀生丸学AI7 小时前
【世界模型】Lyra 2.0:可探索的生成式3D世界(NVIDIA)
人工智能·深度学习·3d·数据挖掘·transformer·世界模型·高斯泼溅
xushichang123_7 小时前
工业企业推动自动化产线向自主化产线演进,云上物理 AI 与工业 Agent 方案如何选型?:优先采用 “云上智能底座+数字孪生+工业本体” 的分层架构
人工智能
hkNaruto7 小时前
【AI】规范驱动开发(SDD)团队实践指南 v2
人工智能·驱动开发
bittersuite7 小时前
BERT,fine-tuning
人工智能·深度学习·bert
武汉星际互动8 小时前
政务大厅引入AI数字人,需要关注哪些核心能力?
人工智能·政务
ZJU_统一阿萨姆8 小时前
【推理优化进阶】调度器的数学内核:排队论、SLO 与在线决策
开发语言·人工智能·语言模型·系统架构·vllm
今天AI了吗8 小时前
深度学习基础-Harness:从评估框架到工程落地
数据库·人工智能·sql·深度学习·机器学习
谁在黄金彼岸8 小时前
python webview打包版卡死、开发版正常
人工智能
大山佬8 小时前
抛弃 115200bps 的串口调试:J-Link RTT 实时日志系统配置、性能评测与多通道架构全面指南
人工智能·j-link