定义聊天模型

Token 是文本的基本单位(自然语言处理(NLP))
1 token ≈ 4 个字符(0.75 个英文单词) ≈ 0.25 个中文汉字
使用中文比较耗费 token
通过 API 定义聊天模型
1️⃣ ChatOpenAI
常用参数:
model=ChatOpenAI(
model="gpt-4o-mini", # 模型名称
temperature=0, # 温度(越高,回复的内容越天马行空;越低,越保守) 一般是0~2
max_tokens=100, # 最大token数
timeout=None, # 请求超时时间
max_retries=2, # 最大重连次数
# api_key="...",
# base_url="...", # 指定前置路径(用来兼容其它模型)
# organization="...", # openAi的组织id
# other params...
)
此方法也可以兼容其它大模型 , 只需修改 base_url 即可

2️⃣ init_chat_model
常用参数:


1.示例 1 : 基本用法
from langchain.chat_models import init_chat_model
# 1.基本用法
gdp_model = init_chat_model("gpt-4o-mini",model_provider="openai")
deepseek_model = init_chat_model("deepseek-v4-flash",model_provider="deepseek")
print(f"gpt-4o-mini: {gdp_model.invoke('你是谁?').content}")
print(f"deepseek-v4-flash: {deepseek_model.invoke('你是谁?').content})")

deepseek-chat 模型已经进入过渡停用时期
deepseek-chat目前自动路由到 deepseek-v4-flash 的非思考模式(non-thinking mode)。deepseek-reasoner则对应deepseek-v4-flash的思考模式(thinking mode)
2.示例 2 : 创建可配置模型

# 2. 定义可配置的模型(模型模拟器)
config_model = init_chat_model(temperature=0.3)
messages = [
SystemMessage(content="请补全一段故事,100个字以内:"),
HumanMessage(content="一只猫正在__?")
]
# .invoke() 的config参数才真正意义上定义了模型
print(f'config_model:{config_model.invoke(input=messages,
config={"configurable" : {
"model" : "deepseek-v4-flash"
}}).content}')
3.示例 3 : 具有默认值的可配置模型

# 3. 可配置的模型(默认参数)
# 原本输出
# 精简版本
model = init_chat_model(
model="gpt-4o-mini",
model_provider="openai",
temperature=0.3,
max_tokens=1024,
configurable_fields=("max_tokens", "model", "model_provider",),#传list
config_prefix="first",
)
messages = [
SystemMessage(content="请补全一段故事,100个字以内:"),
HumanMessage(content="一只猫正在__?")
]
result = model.invoke(
input = messages,
config={
"configurable" : {
"first_max_tokens" : 10,
"first_model": "deepseek-chat",
"first_model_provider": "deepseek",
}
}
)
print(result)
通过本地部署 LLM 定义聊天模型
方式 1 : 直接在终端调用 LLM
- 安装 ollama
- 安装 ollama 包 :
pip install -U langchain_ollama - 通过 ollama 官网下载 llm (ollama 官网 Ollama)
- 检查 ollama 是否正常运行 : http://localhost:11434 (默认服务的端口号是 11434)
- 查看已下载的模型 :
ollama list - 启动并进入对话模式 :
ollama run deepseek-r1:1.5b
即可在终端直接使用大模型

方式 2 : Python SDK 调用

from langchain_ollama import ChatOllama
# 调用本地部署的大模型
ollama_model = ChatOllama(model="deepseek-r1:1.5b",base_url="http://localhost:11434")
print(ollama_model.invoke("简单介绍一下学习大语言模型的顺序").content)
💡 附:终端中常用的 Ollama 命令
- 查看已下载的模型 :
ollama list - 启动并进入对话模式 :
ollama run deepseek-r1:1.5b - 删除指定模型 :
ollama rm deepseek-r1:1.5b - 停止正在运行的模型 :
ollama stop deepseek-r1:1.5b