【LangChain.js学习】大模型分类

大模型按功能和使用场景可分为三大核心类型,以下结合 LangChain.js 调用通义千问的实操代码,分别讲解各类模型的定位、用法和适用场景:

模型分类 核心定位 典型能力 适用场景
大语言模型(LLM) 基础文本生成引擎 文本补全、续写、单一问答 简单文本生成、基础问答
对话模型(Chat Model) 多轮交互式对话引擎 多角色交互、上下文理解 智能客服、翻译、多轮对话
嵌入模型(Embedding Model) 文本向量化引擎 语义转化、相似度计算 知识库检索、文本聚类、推荐

对话模型(Chat Model)

核心特点

专为多轮对话设计,支持 system/human/ai 多角色设定,能理解上下文并按预设规则生成响应,是交互类场景的核心模型。

调用代码

typescript 复制代码
import { ChatOpenAI } from "@langchain/openai"

const chatModel = new ChatOpenAI({
    model: "qwen-max",
    configuration: {
        baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
        apiKey: "[你的阿里百炼API Key]",
    },
})

const response = await chatModel.invoke([
    {
        // system角色:预设模型行为和能力
        role: "system",
        content: "你是一个专业的翻译,你可以将中文翻译成英文",
    },
    {
        // user角色:输入具体用户指令
        role: "user",
        content: "请帮我翻译成英文:你好",
    },
])
console.log(response.content) // 输出示例:Hello

嵌入模型(Embedding Model)

核心特点

将文本转化为固定维度的数值向量(通义千问 text-embedding-v2 为768维),向量间的距离可表征文本语义相似度,是语义检索、知识库的基础。

调用代码

typescript 复制代码
import { OpenAIEmbeddings } from "@langchain/openai"

const embeddingsModel = new OpenAIEmbeddings({
    model: "text-embedding-v2",
    configuration: {
        baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
        apiKey: "[你的阿里百炼API Key]",
    },
})

// 单文本向量化:返回一维向量数组
const queryEmbedding = await embeddingsModel.embedQuery("你好")
console.log(queryEmbedding) // 输出示例:[0.012, -0.045, 0.078, ...]

// 扩展:多文本批量向量化(适用于知识库构建)
// const batchEmbeddings = await embeddingsModel.embedDocuments(["你好", "世界"])

大语言模型(LLM)

核心特点

最基础的大模型类型,以「文本补全」为核心能力,无多角色交互设计,输入单一文本指令,返回对应的生成结果。

与对话模型的区别

  • 大语言模型:输入输出均为纯文本,无角色区分,适合简单的文本生成/问答;
  • 对话模型:基于大语言模型封装,支持多角色、多轮上下文,交互性更强。

调用代码

typescript 复制代码
import { OpenAI } from "@langchain/openai"

const llm = new OpenAI({
    model: "qwen-plus",
    configuration: {
        baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
        apiKey: "[你的阿里百炼API Key]",
    },
})

// 输入单一文本指令,直接返回结果
const response = await llm.invoke("翻译"你好"成英文")
console.log(response) // 输出示例:Hello
相关推荐
anOnion5 小时前
构建无障碍组件之Menu Button pattern
前端·html·交互设计
用户47949283569155 小时前
claude Fable用不了?把Gpt 5.5pro接到你的claude code里
前端·后端
zhangxingchao8 小时前
Kotlin常用的Flow 操作符整理
前端
IT_陈寒9 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端
Pedantic10 小时前
SwiftUI 手势笔记
前端·后端
橙子家11 小时前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user205855615181311 小时前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州11 小时前
CSS aspect-ratio 属性完全指南
前端
Pedantic13 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端