跳到主要内容

Chat Model

聊天模型(Chat Model)是 LangChain 的核心组件之一。与基础的 LLM(仅接受字符串输入并返回字符串)不同,聊天模型使用“消息”作为输入和输出。

基础使用

在 LangChain.js 中,最常用的聊天模型接口是 ChatOpenAI(它也兼容许多支持 OpenAI 协议的其他模型服务)。

chatModel_basic.ts
import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({
model: "Qwen3-30B-A3B-AWQ",
temperature: 0.7,
configuration: {
baseURL: 'http://192.168.3.202:30001/v1',
},
apiKey: '11'
});

// 基础调用
console.log("--- 基础调用 ---");
const response = await model.invoke("你好,请自我介绍一下。");
console.log(response.content);

// 流式吞吐
console.log("\n--- 流式调用 ---");
const stream = await model.stream("写一首关于人工智能的短诗。");
for await (const chunk of stream) {
process.stdout.write(chunk.content as string);
}
console.log("\n--- 流式调用结束 ---");

核心概念

1. 消息类型

聊天模型通常处理以下几种消息类型:

  • SystemMessage: 系统消息,用于设置模型的行为和角色。
  • HumanMessage: 用户消息,即人类发送给模型的消息。
  • AIMessage: AI 消息,即模型返回的消息。

2. 常用方法

  • invoke(): 发送单一提示并获取完整的响应。
  • stream(): 获取模型的流式输出,适用于长文本生成。
  • batch(): 并行发送多个提示。

配置与参数

常见的配置参数包括:

  • modelName: 调用的模型名称。
  • temperature: 采样温度,越高输出越随机。
  • streaming: 是否启用流式处理。
  • configuration.baseURL: 自定义 API 端点。