[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
相关推荐
用户38845671995412 小时前
LangChain 源码解析:HumanInTheLoopMiddleware 如何实现 Agent 人机协同
langchain
l12586513 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
l12586515 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
二进制_博客15 小时前
rag面试题之rag 系统如何解决 llm 的幻觉问题
langchain·rag
jyOverQ17 小时前
LangGraph 流式执行详解:stream、astream 与 stream_mode 怎么选?
python·langchain
l12586518 小时前
# RAG低延迟架构设计:从5秒到500ms的优化全链路
数据库·人工智能·python·langchain
睡觉时不困44219 小时前
17.LangChain 1.0+ 第五篇:Tools 工具——让大模型从认识世界到改变世界
langchain
为你学会写情书19 小时前
NestJS + LangChain 集成指南:从库封装到手动构建
langchain
草莓熊Lotso19 小时前
【Linux网络加餐】手动部署:SSH 与 Web 服务实战 + 底层原理全解析
linux·运维·网络·人工智能·python·langchain·ssh
65岁退休Coder2 天前
LangChain v1.3.4 笔记 - 08 MCP & 相关概念
后端·python·langchain