【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
相关推荐
后台开发者Ethan9 小时前
setState组件更新
前端·javascript·react
谙忆10249 小时前
大文件上传实战:前端分片、断点续传、秒传与并发控制怎么落地
前端
轻动琴弦9 小时前
VoltTool —— 一站式在线开发者工具平台,69+实用工具免费使用
前端·chrome
就叫飞六吧9 小时前
不同站点iframe嵌套种cookie、localstorege.set() 关系
前端
星栈9 小时前
LiveView 怎么测:从组件测试到端到端,我终于不再只敢手点页面了
前端·前端框架·elixir
蜡台9 小时前
uniapp vue2 转 vue3
前端·javascript·uni-app·vue3·vue2
Web4Browser9 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
用户059540174469 小时前
把前端内存泄漏排查从2小时压到5分钟,我们把它集成进了CI
前端·css
IMPYLH10 小时前
HTML 的 <dd> 元素
前端·html
申君健248641827720210 小时前
Vapor 核心数据结构:Block原理
前端