🎯 课程主题
介绍模型初始化中常用的配置参数,包括 temperature、max_tokens、timeout、max_retries 等,重点讲解 temperature 和 max_tokens 的作用与实践。
📝 核心知识点
1. 常用参数一览
model/model_name:模型名称。model_provider:模型提供者(init_chat_model特有)。api_key:API 密钥。base_url:API 端点地址。temperature:控制输出随机性 / 创造性,范围0.0 ~ 2.0(左闭右开),默认值0.7。max_tokens:限制模型输出的最大 token 数量,int 类型,无默认值。timeout:请求超时时间(float 类型),超时后取消请求。max_retries:请求失败时的最大重试次数,默认值6。
2. temperature 详解
- 概念说明:温度参数控制模型输出的随机性和创造性。
- 取值范围与效果:
0.0 ~ 0.3:输出高度确定,适合数据提取、JSON 格式化、代码生成、数学计算等场景。0.5 ~ 0.7:平衡状态,兼具创意性与准确性。> 1.0:创意性强,适合头脑风暴、创意文案等场景。- 接近
2.0时可能出现幻觉 / 乱码问题。
- 注意:不同大模型平台的 API 中,temperature 范围可能不同(有的为
0.0 ~ 1.0),LangChain 统一为0.0 ~ 2.0。
3. max_tokens 与 Token 概念
- Token 定义:大模型通过分词器将文本拆分后的最小语义单元。
- Token 的两个角色:
- 基本单位:类似于自然语言中的"词"或计算机中的"字节"概念。
- 收费依据:输入和输出的 token 数量决定费用。
- 关键细节:
- 不同模型采用不同分词算法,同一段文本在不同模型中的 token 数量可能不同。
- 一个中文 token 约等于 1~1.8 个汉字;一个英文 token 约等于 3~4 个字符。
max_tokens作用:限制输出内容长度。当输出因max_tokens限制而中断时,finish_reason的值为"length"(正常结束则为"stop")。
🏗️ 架构与工作流
模型初始化 (ChatXxx 或 init_chat_model)
│
▼
配置参数 (temperature, max_tokens, timeout, max_retries 等)
│
▼
调用 .invoke() / .stream() 等方法
│
▼
参数生效 → 控制输出风格、长度、超时、重试策略
💻 代码实战
from langchain.chat_models import init_chat_model
model = init_chat_model(
model="gpt-4o-mini",
model_provider="openai",
base_url="https://api.closeai-asia.com/v1"
)
# ----- temperature 示例:低温度数据提取 -----
response = model.invoke("""
将以下文本转换为JSON格式:
商品名称:机械键盘,价格:299元,颜色:黑色
""", temperature=0.0) # 确定性强,适合结构化提取
print(response.content)
# ----- temperature 示例:高温度创意文案 -----
response = model.invoke(
"请为一款极致静音的机械键盘,写三个充满诗意且极具张力的广告语。",
temperature=1.5 # 创意性强
)
print(response.content)
# ----- max_tokens 示例:限制输出长度 -----
response = model.invoke("介绍一下你自己。", max_tokens=10)
print(response.content) # 输出被截断,finish_reason 为 "length"
⚠️ 常见问题与避坑指南
temperature=0不代表完全无随机性:在某些模型上可能仍有微小波动,但对于数学计算、数据提取等场景,尽量设置为较低值(0.0~0.2)。- 不同平台的 temperature 范围不一致:LangChain 统一为 0.0~2.0,但底层模型的 API 可能有自己的校验规则,设置过高可能被拒绝。
max_tokens不设置时模型会输出到自然截止,可能导致输出过长、费用增加。
💡 个人总结与延伸
temperature 和 max_tokens 是实际开发中最常调整的两个参数,前者决定"好不好创意",后者决定"省不省钱"。建议在数据提取类任务中设置低温度(0.0~0.3)、在创意生成类任务中设置中高温度(0.7~1.5),并结合 max_tokens 控制成本。后续第六节将更系统地讲解模型初始化的完整参数集合。