一、创建模型(init_chat_model)
通用格式
python
python
from langchain.chat_models import init_chat_model
model = init_chat_model(
model="模型名",
model_provider="供应商",
base_url="API端点",
api_key="密钥"
)
参数说明
| 参数 | 是否必填 | 说明 |
|---|---|---|
model |
必填 | 模型名称,如 "deepseek-chat" |
model_provider |
视情况 | 供应商名称,官方支持的供应商可自动推断 |
base_url |
视情况 | API 端点地址,官方供应商可自动配置 |
api_key |
视情况 | 密钥,官方供应商可从环境变量自动读取 |
官方供应商(可省略 base_url 和 api_key)
python
python
# 模型名以 deepseek 开头,自动推断为 deepseek 供应商
model = init_chat_model("deepseek:deepseek-chat")
第三方兼容平台(必须手动指定)
以阿里云百炼为例:
python
python
import os
model = init_chat_model(
model="deepseek-v4-pro",
model_provider="openai", # 百炼兼容 OpenAI 格式
base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
二、创建 Agent(create_agent)
通用格式
python
python
from langchain.agents import create_agent
agent = create_agent(
model=model,
tools=[],
system_prompt="系统提示词"
)
参数说明
| 参数 | 是否必填 | 说明 |
|---|---|---|
model |
必填 | 传入已初始化好的模型对象,不是裸字符串 |
tools |
可选 | Agent 可调用的工具列表 |
system_prompt |
可选 | 系统提示词,设定 Agent 角色和行为 |
middleware |
可选 | 中间件,用于扩展 Agent 逻辑 |
response_format |
可选 | 结构化输出格式 |
checkpointer |
可选 | 持久化组件,用于保存对话历史 |
关键点
create_agent 没有 base_url 和 api_key 参数。所有连接信息都在上一步创建模型时配置好。
三、调用 Agent(invoke)
通用格式
python
python
response = agent.invoke({
"messages": [
{"role": "user", "content": "你的问题"}
]
})
输入参数说明
第一个参数是一个字典 ,包含 messages 键。messages 的值是一个消息列表,每条消息至少包含:
| 字段 | 说明 |
|---|---|
role |
角色,如 "user"、"assistant"、"system" |
content |
消息内容,可以是字符串或多模态列表 |
也可以传入 LangChain 消息对象
python
python
from langchain_core.messages import HumanMessage
response = agent.invoke({
"messages": [HumanMessage(content="你的问题")]
})
流式调用
python
python
for token, metadata in agent.stream(
{"messages": [{"role": "user", "content": "你的问题"}]},
stream_mode="messages"
):
if token.content:
print(token.content, end="", flush=True)
四、完整示例
python
python
import os
from langchain.chat_models import init_chat_model
from langchain.agents import create_agent
# 1. 创建模型
model = init_chat_model(
model="deepseek-v4-pro",
model_provider="openai",
base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
# 2. 创建 Agent
agent = create_agent(
model=model,
tools=[],
system_prompt="你是一个 helpful assistant"
)
# 3. 调用 Agent
response = agent.invoke({
"messages": [{"role": "user", "content": "你好"}]
})
print(response)