1. 大语言模型(Large Language Model, LLM)

定义:以文本为输入,生成文本的模型。

特点

  • 输入输出都是自然语言(或包含少量结构化的 prompt)。

  • 擅长对话、写作、推理、代码生成等任务。

  • 在 LangChain 中,LLM 是核心组件,用于构建链(Chain)、代理(Agent)等。

LangChain 中使用方式

from langchain_community.chat_models import ChatTongyi

llm = ChatTongyi(model="qwen-max")  # 可选 qwen-plus, qwen-turbo 等
response = llm.invoke("用一句话介绍 Python")
print(response.content)

2. 视觉模型(Vision Model)

定义:能够处理图像输入的模型。

特点

  • 输入可以是图像(或图像+文本),输出为文本。

  • 常用于图像描述、视觉问答、目标检测等。

LangChain 中使用方式
 

from langchain_community.chat_models import ChatTongyi
from langchain.schema import HumanMessage

llm = ChatTongyi(model="qwen-vl-plus")  # 视觉语言模型

message = HumanMessage(
    content=[
        {"type": "text", "text": "描述这张图片"},
        {"type": "image_url", "image_url": "https://example.com/cat.jpg"}
    ]
)
response = llm.invoke([message])
print(response.content)

3. 全模态模型(Omni-Modal Model)

定义:能够处理多种模态(文本、图像、音频、视频等)的模型,且往往能输出多种模态。

特点

  • 输入和输出都可以是多种模态的组合。

  • 能够进行图像生成、音频识别等跨模态任务。

  • 目前多数商业模型已向全模态发展。

LangChain 中使用方式
 

from langchain_community.chat_models import ChatTongyi
from langchain.schema import HumanMessage

llm = ChatTongyi(model="qwen-omni-turbo")

message = HumanMessage(
    content=[
        {"type": "text", "text": "请分析这段视频的内容"},
        {"type": "video_url", "video_url": "https://example.com/demo.mp4"}
    ]
)
response = llm.invoke([message])
print(response.content)

4. 语音模型(Speech Model)

定义:专门处理语音信号的模型。包括:

  • 语音识别(ASR):将语音转为文本(如 Whisper)。

  • 语音合成(TTS):将文本转为语音。

  • 语音理解:直接对语音进行意图识别等。

特点

  • 输入输出可能是音频文件或流。

  • 与 LLM 结合可用于语音对话系统。

LangChain 中使用方式

import dashscope
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

# 使用 paraformer-v1 模型识别音频文件
response = dashscope.audio.asr.Transcription.call(
    model="paraformer-v1",
    file_urls=["https://example.com/audio.wav"]
)
print(response.output['results'][0]['transcription'])

5. 向量模型(Embedding Model)

定义:将文本、图像等非结构化数据转换为固定长度的向量(embedding)。

特点

  • 输入是文本(或图像),输出是向量数组(如 1536 维)。

  • 不生成自然语言,而是用于相似度计算、检索、聚类等。

  • 与 LLM 最本质的区别:LLM 生成文本,向量模型不生成文本。

LangChain 中使用方式

from langchain_community.embeddings import DashScopeEmbeddings

embeddings = DashScopeEmbeddings(model="text-embedding-v1")
vector = embeddings.embed_query("这是一个测试文本")
print(len(vector))  # 输出向量维度(如 1536)

# 批量嵌入
vectors = embeddings.embed_documents(["文本1", "文本2"])

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐