AI--LangChain基础

AI–LangChain基础

1.LangChain介绍

  LangChain是于2022年10月创建,围绕LLM建立的一个框架,核心里面是为各种LLM实现通用的接口,把LLM相关的组件连接在一起,简化LLM的开发难度,方便开发者快速的开发复杂的LLM

2.LangChain的部署

  LangChain在Python中已经封装成了一个库,我们可以直接调用,安装如下:

1
pip install langchain langchain-community langchain-ollama dashscope chromadb
  • langchain: 核心包
  • langchain-community: 社区支持包,提供了更多的第三方模型调用(我们用的阿里云千问模型就需要这个包)
  • langchain-ollama: Ollama支持包,支持调用Ollama托管部署的本地模型
  • dashscope: 阿里云通义千问的Python SDK
  • chromadb: 轻量向量数据库(后续使用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from langchain_openai import ChatOpenAI

# 1. 初始化模型
llm = ChatOpenAI(
model="qwen-turbo",
api_key="key",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
temperature=0
)

# 2. 调用模型
response = llm.invoke("你好,请用一句话介绍 LangChain")

print(response.content)

  

3.LangChain的流式输出

  LangChain的输出主要通过invoke和stream进行控制

  • Invoke:一次性返回完整的结果
  • stream:逐段返回结果,流式输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
from langchain_community.llms.tongyi import Tongyi

os.environ["DASHSCOPE_API_KEY"] = "KEY"

#实例化模型
llm = Tongyi(model= "qwen-max")

#invoke和stream
response = llm.invoke("讲个冷笑话")
print(response)

for chunk in llm.stream("讲个冷笑话"):
print(chunk, end="", flush=True)

  

4.LangChain的支持模型

    LangChain目前支持三种类型的模型使用:

  • LLMS(大语言模型)

    是技术范畴的统称,指基于大参数量、海量文本训练的 Transformer 架构模型,核心能力是理解和生成自然语言,主要服务于文本生成场景

  • Chat Models(聊天模型)

    是应用范畴的细分,是专为对话场景优化的 LLMs,核心能力是模拟人类对话的轮次交互,主要服务于聊天场景

  • Embeddings Models(嵌入模型)

    文本嵌入模型接收文本作为输入,得到文本的向量。

1
2
3
4
5
6
7
8
9
10
11
import os
from langchain_community.llms.tongyi import Tongyi


os.environ["DASHSCOPE_API_KEY"] = "KEY"

#实例化模型
llm = Tongyi(model= "qwen-max")

response = llm.invoke("讲个冷笑话")
print(response)

   

5.LangChain的聊天模型

   所谓聊天模型,其本质其实也只是大语言模型的分支,不过我们赋予了指定模型具体所处的环境和背景,例如让他进行cosplay,也就是前面OpenAI所提到的system模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import os
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage, AIMessage, SystemMessage

os.environ["DASHSCOPE_API_KEY"] = "key"
# 初始化模型
chat = ChatTongyi(model="qwen-max")

#准备消息list
messages = [
SystemMessage(content="你是一位边塞诗人"),
HumanMessage(content="写一首唐诗"),
AIMessage(content="锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。"),
HumanMessage(content="按照你上一个回复的格式,再写一首唐诗")
]

# 调用模型
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)
print("-----------------")

  除此之外,LangChain也支持简写的形式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import os
from langchain_community.chat_models.tongyi import ChatTongyi
#from langchain_core.messages import HumanMessage, AIMessage, SystemMessage

os.environ["DASHSCOPE_API_KEY"] = "key"
# 初始化模型
chat = ChatTongyi(model="qwen-max")

#准备消息list 简写的方式
messages = [
("system", "你是一位边塞诗人"),
("human", "写一首唐诗"),
("ai", "锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。"),
("human", "按照你上一个回复的格式,再写一首唐诗")
]

# 调用模型
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)
print("-----------------")

  简写的好处在于可以避免导包,写起来也更加简单易懂,可以让我们在运行时填充具体的值,后续使用提示词模版时就可以用到这种方式

  

6.LangChain的嵌入模型

  嵌入模型的特点就是将字符串作为输入,返回一个浮点数的列表(向量),在NLP中,Embedding的作用就是将数据进行文本向量化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#文本嵌入模型
import os
from langchain_community.embeddings import DashScopeEmbeddings

os.environ["DASHSCOPE_API_KEY"] = "key"

# 初始化模型 其默认使用模型是text-embedding-v1
embeddings = DashScopeEmbeddings(model="text-embedding-v3")

# 单个转换
result1 = embeddings.embed_query("我喜欢你")
print(result1)

# 批量转换
result2 = embeddings.embed_documents(["我喜欢你", "我不喜欢你", "晚上吃啥"])
print(result2)

  而在阿里云百炼平台中,所谓的向量模型也就是咱们的嵌入模型,提供了14种

  

7.LangChain模型类型总结


AI--LangChain基础
https://one-null-pointer.github.io/2026/01/10/AI --LangChain基础/
Author
liaoyue
Posted on
January 10, 2026
传送口