跟着官网学LangChain【第01章:模型(Models)】

第01章:模型(Models)

📚 本章学习目标

  • 理解LangChain中的模型抽象
  • 掌握不同模型的配置方法
  • 学习静态和动态模型使用
  • 了解模型参数的作用

🎯 什么是模型?

在LangChain中,**模型(Model)**是对各种大语言模型的统一抽象。无论你使用OpenAI、Anthropic、还是其他提供商的模型,LangChain都提供了一致的接口。

模型抽象层

应用代码
LangChain模型接口
OpenAI适配器
Anthropic适配器
本地模型适配器
其他提供商适配器
GPT-4/GPT-3.5
Claude
Llama/Ollama
Qwen/Baichuan等

🔧 模型配置方式

方式1:静态模型配置

静态配置是最直接的方式,适合固定使用某个模型:

python 复制代码
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="qwen-plus",
    api_key="your_api_key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    temperature=0.7,
    max_tokens=1024
)

方式2:使用create_agent(推荐)

create_agent是LangChain V1.2推荐的方式,它提供了更灵活的使用方式:

python 复制代码
from langchain.agents import create_agent

agent = create_agent(
    model="qwen-plus",  # 可以直接使用字符串
    system_prompt="你是一个友好的助手"
)

模型配置对比

静态配置
直接使用模型实例
create_agent
智能体封装
llm.invoke
agent.invoke

⚙️ 模型参数详解

核心参数

参数 说明 默认值 影响
model 模型名称 - 选择使用的模型
temperature 温度参数 0.7 控制输出的随机性,0-2之间
max_tokens 最大token数 - 限制输出长度
top_p 核采样参数 1.0 控制输出的多样性
api_key API密钥 - 认证信息
base_url API基础URL - 自定义API端点

Temperature参数的影响

Temperature = 0
确定性输出

每次相同
Temperature = 0.7
平衡

有创意但可控
Temperature = 1.5
高随机性

创意性强

建议值

  • 0.0-0.3: 需要确定性答案(如代码生成、数据提取)
  • 0.7-1.0: 一般对话和创作
  • 1.0-2.0: 需要高创意性(如故事创作)

📊 模型调用流程

完整调用流程

LLM模型 API服务 API适配器 LangChain 客户端代码 LLM模型 API服务 API适配器 LangChain 客户端代码 invoke(message) 格式化消息 准备请求 HTTP请求 处理请求 生成响应 JSON响应 解析响应 AIMessage对象

💡 使用场景

场景1:简单问答

python 复制代码
response = llm.invoke("什么是Python?")

适用于:单次问答,不需要上下文

场景2:带系统提示

python 复制代码
from langchain_core.messages import SystemMessage, HumanMessage

messages = [
    SystemMessage(content="你是一个专业的Python编程助手"),
    HumanMessage(content="请解释一下装饰器")
]
response = llm.invoke(messages)

适用于:需要定义AI角色或行为

场景3:使用智能体

python 复制代码
agent = create_agent(
    model=llm,
    system_prompt="你是一个友好的助手"
)
result = agent.invoke({
    "messages": [{"role": "user", "content": "问题"}]
})

适用于:需要更高级功能(工具调用、记忆等)

🔄 模型选择策略

不同场景的模型选择

简单对话
复杂推理
代码生成
中文场景
选择模型
使用场景
轻量级模型

如gpt-3.5-turbo
高级模型

如gpt-4
代码专用模型

如code-davinci
中文优化模型

如qwen-plus

🎓 最佳实践

1. 统一模型配置

使用统一的配置文件管理模型:

python 复制代码
# models.py
from langchain_openai import ChatOpenAI
import os

api_key = os.getenv("DASHSCOPE_API_KEY")
qwen = ChatOpenAI(
    model="qwen-plus",
    api_key=api_key,
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    temperature=0.7,
)

2. 环境变量管理

使用环境变量存储敏感信息:

bash 复制代码
# Windows PowerShell
$env:DASHSCOPE_API_KEY="your_api_key"

# Linux/Mac
export DASHSCOPE_API_KEY="your_api_key"

3. 错误处理

python 复制代码
try:
    response = llm.invoke("问题")
except Exception as e:
    print(f"调用失败: {e}")

📈 性能优化

批量调用

python 复制代码
# 批量处理多个请求
responses = llm.batch([
    "问题1",
    "问题2",
    "问题3"
])

异步调用

python 复制代码
# 异步调用提高并发性能
response = await llm.ainvoke("问题")

🎓 学习要点总结

  1. 模型抽象: LangChain提供统一的模型接口
  2. 配置方式: 静态配置和create_agent两种方式
  3. 参数调优: temperature等参数影响输出质量
  4. 最佳实践: 统一配置、环境变量、错误处理

🔗 下一步

完成本章后,你应该能够:

  • ✅ 配置和使用不同的模型
  • ✅ 理解模型参数的作用
  • ✅ 选择合适的模型和参数
  • ✅ 使用最佳实践管理模型

下一章我们将学习提示词和消息(Prompts & Messages),这是与模型交互的核心。

📚 参考资源

相关推荐
wenzhangli716 小时前
OoderAgent SDK(0.6.6) UDP通讯与协议测试深度解析
网络·网络协议·udp
天才奇男子17 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
安科士andxe17 小时前
60km 远距离通信新选择:AndXe SFP-155M 单模单纤光模块深度测评
网络·信息与通信
ASKED_201917 小时前
Langchain学习笔记一 -基础模块以及架构概览
笔记·学习·langchain
酥暮沐17 小时前
iscsi部署网络存储
linux·网络·存储·iscsi
darkb1rd18 小时前
四、PHP文件包含漏洞深度解析
网络·安全·php
❀͜͡傀儡师18 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
Dying.Light18 小时前
Linux部署问题
linux·运维·服务器
S190118 小时前
Linux的常用指令
linux·运维·服务器
小义_18 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器