Day 02 · 环境搭建:一套装备打天下
AI Python 系列」第 01 栏 · AI 时代的 Python 办公自动化全栏 20 篇 · 零成本跟完 品牌梅雅达编程笔记开篇 · 你是不是也卡在这一步Day 01 说了AI 办公自动化能帮你省钱省时间。很多读者看完热血沸腾——然后打开电脑对着满屏的报错发呆“openai这个库不是 OpenAI 的吗我不用 OpenAI 也要装”“智谱的 API 到底怎么调官方文档看了三遍还是懵”“每个教程用的库都不一样我到底装哪个”“API Key 写在代码里发到 GitHub 上被人盗了怎么办”这些问题看着小但90% 的新手就卡在这里放弃了。今天这篇我把整个环境搭建拆成三步装 Python → 注册智谱拿 Key → 写一份通用封装代码。搞完这三步后续 18 篇的代码你都能直接跑。一、传统做法 vs AI 时代做法传统做法每个项目从头搭传统 Python 项目搭建环境你得手动创建虚拟环境一个个pip install装库每个项目重写一遍 API 调用代码API Key 硬编码在代码里危险换个模型供应商整个项目重改痛点重复劳动代码不可复用密钥不安全。AI 时代做法一套装备打天下我们的思路很简单一份llm_client.py通吃四家 APIGLM/DeepSeek/Qwen/OpenAIAPI Key 走环境变量代码里看不到密钥一行代码切换供应商LLMClient(providerglm)→LLMClient(providerdeepseek)后续 18 篇全用这同一个文件不重复造轮子这套封装不是花架子——梅雅达编程笔记的实际开发中从 Day 03 到 Day 20每一篇的代码都from llm_client import LLMClient一行导入然后直接干活。二、环境搭建三步走第一步安装 Python 3.11如果你已经装了 Python 3.10 以上可以跳过这步。Windows 用户去 python.org 下载 3.11 安装包安装时务必勾选 “Add Python to PATH”打开终端验证python--version# 输出 Python 3.11.x 或更高Mac 用户# 用 Homebrew 安装brewinstallpython3.11 python3--version第二步注册智谱 BigModel拿到免费 API Key这是整个专栏唯一需要你注册的平台。GLM-4.7-Flash 永久免费不花一分钱。注册流程打开 智谱开放平台手机号注册并登录进入控制台左侧菜单找到API 密钥管理点击创建新密钥复制生成的 Key⚠️ 重要API Key 只显示一次丢了只能重新创建。复制好存到安全的地方。平台颁发的 API Key 由 API Key ID 与 签名密钥 secret 组成完整格式为{API Key ID}.{secret}。你拿到的 Key 长这样{API Key ID}.{secret} xxxxxxxx.xxxxxxxxxxxxxxxx为什么选智谱对比项智谱 GLM-4.7-FlashOpenAI GPT-4o-miniDeepSeek Chat价格✅永久免费❌ 需充值信用卡❌ 新用户送100万Token后收费上下文200K128K128K最大输出128K16K8K国内访问✅ 直连❌ 需科学上网✅ 直连注册门槛手机号海外信用卡手机号结论免费额度最大、门槛最低、中文能力最强。没理由不用它。第三步创建 .env 文件保护你的 Key为什么不直接把 Key 写在代码里因为如果你把 Key 写在代码里然后传到 GitHub 或分享给别人——你的 Key 就泄露了。别人可以用你的额度甚至拿去做坏事。我们的做法用.env文件存放 Key代码通过python-dotenv库自动读取。好处Key 跟着项目文件夹走重装系统也不怕丢。只要.env文件不外传密钥就是安全的。操作步骤在项目目录下创建.env文件注意前面有个点填入你的 Key# .env 文件内容 GLM_API_KEY你刚复制的Key创建.gitignore文件排除.env防止误传到代码仓库.env __pycache__/ *.pyc把.env.example模板文件放进去方便别人知道要填什么如果已经有 Key 了直接填进去就行智谱的 Key 通用的不用重新申请。习惯用系统环境变量的也行代码会先读.env文件如果没有再读系统环境变量。两种方式任选一种。Windows:$env:GLM_API_KEY 你的KeyMac/Linux:export GLM_API_KEY你的Key推荐用.env更省心。三、一份通用封装llm_client.py这是整个专栏最核心的一个文件。后续每一篇都会import它。设计思路用openai官方库智谱 API 兼容OpenAI格式一套库通吃四家传入provider参数切换供应商Key 从环境变量读取chat()方法普通对话chat_json()方法让 AI 返回JSONDay 05 会详细讲内置简单的重试机制安装依赖pipinstallopenai1.12.0完整依赖见文末requirements.txtllm_client.py完整代码 llm_client.py - 通用 LLM 客户端封装 支持GLM智谱/ DeepSeek / Qwen通义千问/ OpenAI 用法from llm_client import LLMClient client LLMClient(providerglm) answer client.chat(你好) importosimporttimefromdotenvimportload_dotenvfromopenaiimportOpenAI# 自动加载当前目录下的 .env 文件load_dotenv()classLLMClient:通用 LLM 客户端 - 一行代码切换四家模型# 四家供应商配置PROVIDERS{glm:{base_url:https://open.bigmodel.cn/api/paas/v4/,default_model:glm-4.7-flash,# 永久免费 · 200K上下文env_key:GLM_API_KEY,},deepseek:{base_url:https://api.deepseek.com/v1,default_model:deepseek-chat,env_key:DEEPSEEK_API_KEY,},qwen:{base_url:https://dashscope.aliyuncs.com/compatible-mode/v1,default_model:qwen-plus,env_key:DASHSCOPE_API_KEY,},openai:{base_url:https://api.openai.com/v1,default_model:gpt-4o-mini,env_key:OPENAI_API_KEY,},}def__init__(self,providerglm,modelNone): 初始化客户端 参数 provider: 供应商 glm / deepseek / qwen / openai model: 模型名称不传则用默认模型 ifprovidernotinself.PROVIDERS:raiseValueError(f不支持的供应商:{provider}\nf可选:{, .join(self.PROVIDERS.keys())})configself.PROVIDERS[provider]self.providerprovider self.modelmodelorconfig[default_model]# 从环境变量读取 API Key.env 文件会被 load_dotenv() 自动加载api_keyos.environ.get(config[env_key])ifnotapi_key:raiseValueError(f环境变量{config[env_key]}未设置\nf请在项目目录下创建 .env 文件填入\nf{config[env_key]}你的Key\nf或设置系统环境变量\nf Windows: $env:{config[env_key]} \你的Key\\nf Mac/Linux: export{config[env_key]}\你的Key\)self.clientOpenAI(api_keyapi_key,base_urlconfig[base_url],)defchat(self,message,system_promptNone,temperature0.7,max_tokens4096,retry2): 普通对话 参数 message: 用户消息字符串 system_prompt: 系统提示词可选设定AI角色 temperature: 0确定性输出1更随机默认0.7 max_tokens: 最大输出长度 retry: 失败重试次数 返回AI 回复的文本 messages[]ifsystem_prompt:messages.append({role:system,content:system_prompt})messages.append({role:user,content:message})forattemptinrange(retry1):try:responseself.client.chat.completions.create(modelself.model,messagesmessages,temperaturetemperature,max_tokensmax_tokens,)returnresponse.choices[0].message.contentexceptExceptionase:ifattemptretry:print(f⚠️ 第{attempt1}次调用失败{1.5}s 后重试...)print(f 错误信息:{e})time.sleep(1.5)else:raisedefchat_json(self,message,system_promptNone,temperature0.1,retry2): 让 AI 返回 JSON 格式数据 参数 message: 用户消息 system_prompt: 系统提示词 temperature: 低温度更稳定默认0.1 retry: 失败重试次数 返回AI 回复的 JSON 字符串 messages[]ifsystem_prompt:messages.append({role:system,content:system_prompt})messages.append({role:user,content:message})forattemptinrange(retry1):try:responseself.client.chat.completions.create(modelself.model,messagesmessages,temperaturetemperature,response_format{type:json_object},)returnresponse.choices[0].message.contentexceptExceptionase:ifattemptretry:print(f⚠️ 第{attempt1}次调用失败{1.5}s 后重试...)time.sleep(1.5)else:raisedef__repr__(self):returnfLLMClient(provider{self.provider}, model{self.model})代码解读你不需要完全看懂每个细节但有几个关键点要理解1. 为什么要用openai库调智谱的 API因为智谱的 API 兼容OpenAI的接口格式。这意味着你只要会调OpenAI就会调智谱、DeepSeek、通义千问。一套库通吃四家切换只需要改base_url和api_key。2.PROVIDERS字典怎么用四家供应商的配置写在一个字典里。初始化时传providerglm就用智谱传providerdeepseek就用DeepSeek。模型名、API地址、环境变量名都自动对应。3.chat()和chat_json()有什么区别chat()普通对话AI 想说什么就说什么chat_json()强制 AI 返回 JSON 格式后续办公自动化大量用到Day 05 会详细讲4. 重试机制为什么重要API 调用偶尔会失败网络波动、服务端超时等。retry2意味着失败后自动重试两次不用你手动重新运行脚本。这在批量处理文档时特别重要——Day 06 处理 200 张发票时你不会想因为第 87 张超时就全部重来。四、Hello LLM你的第一行 AI 代码环境搭好了封装写好了现在跑第一个测试。hello_llm.py hello_llm.py - 第一次调用大模型 验证环境是否搭建成功 importsys,os sys.path.insert(0,os.path.abspath(os.path.join(os.path.dirname(__file__),../../)))fromllm_clientimportLLMClientdefmain():# 第 1 步初始化客户端默认用 GLM-4.7-FlashclientLLMClient(providerglm)print(f✅ 客户端就绪{client})print()# 第 2 步最简单的对话print(*50)print(测试 1简单问候)print(*50)answerclient.chat(你好请用一句话介绍你自己)print(fAI{answer})print()# 第 3 步带系统提示词的对话print(*50)print(测试 2角色设定)print(*50)answerclient.chat(message我们公司明天要开周会帮我写三句话的开场白,system_prompt你是一个简洁干练的职场助手说话不超过三句不废话。,temperature0.3,# 低温度更稳定)print(fAI{answer})print()# 第 4 步让 AI 返回结构化数据Day 05 预告print(*50)print(测试 3JSON 结构化输出)print(*50)json_answerclient.chat_json(message请提取这段信息张三手机号13800138000邮箱zhangsanexample.com输出为JSON包含name、phone、email字段,system_prompt你是一个信息提取助手只输出JSON不输出其他内容。,)print(fAI{json_answer})print()print( 全部测试通过环境搭建成功)if__name____main__:main()路径处理说明为什么需要这两行因为llm_client.py在项目根目录而hello_llm.py在code/day02/目录下。Python 默认只会在当前目录找模块所以需要告诉它去根目录找。importsys,os sys.path.insert(0,os.path.abspath(os.path.join(os.path.dirname(__file__),../../)))../../是什么意思就像在文件管理器里点两次返回上级code/day02/hello_llm.py ↓ (../) 返回上级 code/ ↓ (../) 再返回上级 ai-office/ ← 根目录找到 llm_client.py 了后续每篇都要加吗是的。只要代码文件在code/子目录下开头都要加这两行。复制粘贴即可不用记。运行结果预期输出✅ 客户端就绪LLMClient(providerglm, modelglm-4.7-flash) 测试 1简单问候 AI你好我是 GLM-4.7-Flash一个由智谱AI开发的大语言模型擅长中文理解和生成。 测试 2角色设定 AI各位同事好本周工作汇报现在开始。上周我们完成了三项核心任务的推进今天重点同步进展和本周计划。请大家先看会议议程。 测试 3JSON 结构化输出 AI{name: 张三, phone: 13800138000, email: zhangsanexample.com} 全部测试通过环境搭建成功注意AI 的实际回复内容每次可能略有不同因为temperature参数的存在但格式和结构应该一致。测试 3 的 JSON 字段名应该完全匹配。如果报错了怎么办报错原因解决ModuleNotFoundError: No module named openaiopenai库没装pip install openai环境变量 GLM_API_KEY 未设置Key没配好回到第三步创建.env文件AuthenticationErrorKey不对或已过期去智谱控制台重新生成KeyRateLimitError超出并发限制等几秒再跑免费版限 30 并发ConnectionError网络不通检查网络公司内网可能需要代理五、项目文件结构建议按这个结构组织代码ai-office/ ├── llm_client.py ← 通用封装本篇创建后续所有篇复用 ├── hello_llm.py ← 测试脚本本篇创建 ├── requirements.txt ← 依赖清单 ├── .env ← 你的 API Key不要传到 GitHub ├── .env.example ← 模板文件可以传告诉别人要填什么 ├── .gitignore ← 排除 .env 等敏感文件 ├── code/ ← 后续每篇的代码放这里 │ ├── day03/ │ ├── day06/ │ └── ... └── data/ ← 测试数据 └── ...requirements.txtopenai1.12.0 python-dotenv1.0.0python-dotenv是可选的——如果你不想用系统环境变量可以创建.env文件存放Key用dotenv加载。但别把.env文件传到GitHub 本篇成本透明栏项目数值API 调用次数3 次测试 1-3消耗 Token约 2,000 tokens成本¥0GLM-4.7-Flash永久免费免费额度是否够✅ 够用新用户送 2000 万Token商用估算¥0练手改造题改造 1基础修改hello_llm.py让 AI 用五种不同风格回答同一个问题今天午饭吃什么。提示调整system_prompt和temperature参数。改造 2进阶写一个translate()函数调用client.chat()实现中英互译。输入中文返回英文输入英文返回中文。提示可以让 AI 先判断输入语言再翻译。或者直接在system_prompt里设定规则。下期预告Day 03 · Prompt 工程 5 大心法环境搭好了Key也拿到了。但如果你只会说帮我写个周报——AI 给你的大概率是废话。Day 03 讲透 5 个Prompt心法每个配一个办公场景对比实验。写完你就能让 AI 从大概能用变成精准好用。 资源与工具文末合规集中智谱开放平台注册 API Keyhttps://open.bigmodel.cn/智谱模型文档https://docs.bigmodel.cn/DeepSeek 开放平台https://platform.deepseek.com/通义千问Qwenhttps://dashscope.aliyun.com/Python 官网下载https://www.python.org/downloads/本专栏配套代码CSDN 下载区每篇更新 作者的话梅雅达编程笔记专注 Python AI 办公自动化实战教程。这套llm_client.py不是教学演示代码——它是我们在实际开发中真正在用的封装。后续 18 篇每篇都会用到它所以今天这篇请务必跑通。跑通了的读者评论区扣个 1让我知道你准备好了 上一篇Day 01 · 为什么 2026 年办公自动化必须AI 化下一篇Day 03 · Prompt 工程 5 大心法专栏订阅「AI 时代的 Python 办公自动化」姊妹专栏Python 零基础编程笔记编程启蒙-Scratch转Python

相关新闻

Nintendo Switch大气层系统完全指南:从零开始打造你的终极游戏体验

Nintendo Switch大气层系统完全指南:从零开始打造你的终极游戏体验

Nintendo Switch大气层系统完全指南:从零开始打造你的终极游戏体验 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要彻底释放Nintendo Switch的隐藏潜力吗?大气层…

2026/7/24 20:40:38阅读更多 →
终极文档下载神器:如何用kill-doc轻松下载任意文档

终极文档下载神器:如何用kill-doc轻松下载任意文档

终极文档下载神器:如何用kill-doc轻松下载任意文档 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决…

2026/7/24 20:40:38阅读更多 →
Python 项目配置管理:用 pydantic-settings 管理 RAG 服务的多环境配置

Python 项目配置管理:用 pydantic-settings 管理 RAG 服务的多环境配置

Python 项目配置管理:用 pydantic-settings 管理 RAG 服务的多环境配置 一、深度引言与场景痛点 去年做 RAG 服务上线时,我犯过一个低级错误——把 dev 环境的 Milvus 地址配置到了生产 yaml 里,结果用户搜到的全是测试数据。更尴尬的是&…

2026/7/24 20:38:38阅读更多 →
DP83TC811R-Q1以太网PHY芯片RGMII与SMI接口配置实战指南

DP83TC811R-Q1以太网PHY芯片RGMII与SMI接口配置实战指南

1. 项目概述与核心价值在嵌入式网络设备开发中,选对一颗PHY芯片只是第一步,真正让它在你的板子上“活”起来,跑得稳,才是工程师价值的体现。我最近在几个车载网关和工业控制器的项目里,都深度使用了德州仪器的DP83TC81…

2026/7/24 22:02:52阅读更多 →
入门高速PCB设计一

入门高速PCB设计一

文章目录一、如何判别信号是否为高速信号?二、传输线类别2.1 共轴传输线2.2 微带线2.3 带状线三、什么是特性阻抗?3.1 传输线与特性阻抗的关系3.2 特性阻抗与哪些因素有关3.3 PCB如何计算特性阻抗3.4 不控阻抗会造成什么影响3.5 特性阻抗分了哪几种类型四…

2026/7/24 22:02:52阅读更多 →
Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验

Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验

Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and ma…

2026/7/24 22:02:52阅读更多 →
DLP3010 DMD芯片组:光学接口、热管理与系统可靠性设计实践

DLP3010 DMD芯片组:光学接口、热管理与系统可靠性设计实践

1. DLP3010 DMD芯片组:从微镜到系统的工程实践如果你正在设计一个微型投影仪、3D打印机的光固化单元,或者任何需要高速、高精度空间光调制的系统,那么德州仪器(TI)的DLP技术很可能在你的候选名单上。DLP3010作为一款0.…

2026/7/24 22:02:52阅读更多 →
打造健康办公环境哪家强?2026年智慧办公环境服务商实力TOP5测评

打造健康办公环境哪家强?2026年智慧办公环境服务商实力TOP5测评

2026年,参考世界经济论坛与麦肯锡健康研究院联合发布的《Thriving Workplaces: How Employers can Improve Productivity and Change Lives》研究结论,以及中国建筑装饰协会行业报告中的空间健康化评估方法可见,国内办公空间健康化升级需求持…

2026/7/24 22:02:52阅读更多 →
AI食用菌培育智能巡检机器人 Qt完整项目

AI食用菌培育智能巡检机器人 Qt完整项目

# AI食用菌培育智能巡检机器人 Qt完整项目 ## 项目定位 适配工控,面向**食用菌培育工**,AI菌房巡检机器人上位监控系统;覆盖菌房恒温恒湿机组、CO₂通风风机、雾化加湿设备、灭菌锅、接种超净台、木屑粉碎机整套培育产线监控、AI病害+设备双故障诊断、无菌化标准化维保工单…

2026/7/24 22:00:52阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →