【Python LLM小说自动化生成实战】3|项目.env配置文件设计
目录
上一节我们搭建好了 Pydantic 数据模型,定下了小说数据的规范。现在有一个很现实的问题摆在眼前:DeepSeek 的 API 密钥、模型名称、AI 创作温度这些参数,如果直接硬编码写到 Python 代码里,后患无穷。 密钥一旦跟着代码一起上传或者分享出去,账户额度随时可能被别人薅空;后续想调整模型、修改 AI 脑洞大小,还得到处翻代码改动。 行业里标准的解决方案就是 .env 环境变量配置文件,本节我们就来搭建这套统一配置方案。
一、创建 .env 配置文件
在项目根目录新建文件,文件名固定为 .env,注意文件名前面带有英文小数点。 完整填写的配置内容参考下图:

二、.env 文件通俗讲解
先说核心结论:.env 的作用就是集中存放项目密钥、全局可调参数。业务代码从文件读取配置,绝不把敏感信息、可变参数硬写死在源码中。 我们把配置划分成三大模块,逐个拆解含义。
第一块:LLM 服务基础配置:连接大模型的必备三件套
API_KEY=sk***********************
BASE_URL=https://api.deepseek.com
MODEL=deepseek-v4-flash
- API_KEY :你调用大模型服务的账号凭证。接口请求时用来校验身份,确认调用权限。 ⚠️ 重中之重:绝对不要完整把密钥随意转发、随代码分享,一旦泄露,他人可以直接消耗你账户余额!
- BASE_URL :到大模型官方网站获取,这个是大模型厂商的服务接口地址,告诉程序应该向哪个服务器发送请求。 当前填写 DeepSeek 官方地址;后续如果切换 OpenAI、智谱 AI 等其他平台,只需要修改这一行地址。
- MODEL: 指定想要调用的大模型名称。示例中的
deepseek-v4-flash特点是响应速度快、计价性价比高。想要更换同平台其他模型,仅修改该参数即可,不需要改动业务代码。
第二块:生成参数:控制 AI 创作风格与输出上限
OUTLINE_TEMPERATURE=0.7
CHAPTER_TEMPERATURE=0.85
MAX_TOKENS=4096
- Temperature(温度)【小说项目核心参数】 取值范围常规为
0 ~ 1
- 数值越接近 0:AI 输出更加严谨、逻辑稳定,但创意不足,内容容易重复;
- 数值越接近 1:AI 脑洞更大,故事更富有想象力,但是更容易出现逻辑跑偏、凭空编造内容的情况。
OUTLINE_TEMPERATURE=0.7:生成小说大纲使用。大纲看重整体故事逻辑,因此温度设置偏低,保证主线不乱;CHAPTER_TEMPERATURE=0.85:生成章节正文使用。正文需要丰富情节,适度拉高温度,提升故事可读性。
- MAX_TOKENS=4096 限制单次接口调用,AI 能够输出内容的最大长度。token 可以粗略理解为文字计量单位,设置上限能够避免单次生成文本超长触发接口报错。
第三块:重试容错配置
MAX_RETRIES=3
网络波动、服务商服务器拥挤,都有可能造成接口调用临时失败。
MAX_RETRIES=3 代表请求失败后程序最多自动重试 3 次;连续 3 次全部失败,才抛出异常终止运行。配置简单,却能显著提升整套小说生成程序的稳定性👍
三、补充小白基础知识点
- 环境配置文件标准命名就是
.env,配合python-dotenv第三方库读取; - Python 基础读取示例代码:
from dotenv import load_dotenv
import os
# 自动加载根目录.env文件
load_dotenv()
api_key = os.getenv("API_KEY")
base_url = os.getenv("BASE_URL")
【补充问题】🤔为什么独立.env 文件,不直接写进 py 源码?
① 保护密钥,避免敏感凭证直接暴露在代码内;
② 调整模型、AI 创意温度、接口地址,只修改配置文件,无需改动业务代码;
③ 分享项目代码、上传代码仓库时,可以轻松隔离密钥,规避财产损失风险。
四、结合本小说项目梳理运行逻辑
🤓整套程序运行流程联动:
- 启动生成小说大纲时,代码自动读取
OUTLINE_TEMPERATURE=0.7; - 进入章节扩写阶段,切换读取
CHAPTER_TEMPERATURE=0.85; - 每一次向 DeepSeek 发起接口请求,自动携带.env 内的 API_KEY;
- 请求失败时,依照
MAX_RETRIES的数值进行重试。
文末收尾 & 下集预告
🐾至此我们完成项目全局配置管理,密钥与可调参数全部实现解耦,后续各个模块都统一读取这套配置。
下一节预告:【Python LLM 小说自动化生成实战】4|系统提示词管理,约束大模型严格输出规范 JSON,解决字段缺失、命名错乱等解析报错。
🔗 本系列专栏合集传送门:小白入门!从零实战开发Python LLM小说自动化生成系统
更多推荐


所有评论(0)