大模型按功能和使用场景可分为三大核心类型,以下结合 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