[LangChain]LangChain聊天模型

定义聊天模型

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

  1. 安装 ollama
  2. 安装 ollama 包 : pip install -U langchain_ollama
  3. 通过 ollama 官网下载 llm (ollama 官网 Ollama)
  4. 检查 ollama 是否正常运行 : http://localhost:11434 (默认服务的端口号是 11434)
  5. 查看已下载的模型ollama list
  6. 启动并进入对话模式 : 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
相关推荐
湿韵轮回3 小时前
LangChain LCEL,用 | 串联AI的魔法语言
服务器·人工智能·langchain
吃饱了得干活7 小时前
别只会传 temperature!一文挖透 LangChain 模型配置:Profile、全参数与运行时动态覆盖
python·langchain
龙腾亚太8 小时前
基础差/零基础人员具身智能学习路线
langchain·qlora·大模型培训·智能体培训·具身智能培训·llm 实战教程
xywww16814 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
糖果店的幽灵1 天前
从 GPT Researcher 学习 LangChain
gpt·学习·langchain
吃饱了得干活1 天前
LangChain 模型调用方案:invoke、stream、batch 的同步与异步
langchain·llm
吃饱了得干活1 天前
LangChain 多对话模型统一接入工程实践
langchain
一只小bit1 天前
LangChain 核型组件与消息管理及提示词模版
windows·microsoft·langchain
齐 飞1 天前
LangGraph快速入门-03节点与边
python·langchain