生活化引入前 7 章你其实已经偷偷攒了一整套兵器能聊天、能写小红书文案、能接微信、能摘要、能翻译、能讲段子、还能画张图。但老实说——它们现在像一堆散落在地上的乐高想玩的时候还得一个个翻出来拼。我一个朋友就是这样桌面上chat.py、xiaohongshu.py、translate.py排了一排每次用都得回忆上次翻译那个文件叫啥来着。结果呢90% 的功能他根本没用上因为找脚本比用脚本还累。今天咱们干一件爽事把这些散兵游勇收编成一个带菜单的小程序。打开它输入数字 15要啥有啥。这一章是阶段 1 的毕业设计——你将从会写单个脚本的人升级成有自己的 AI 工具箱的人。 大白话原理你前面每章写的本质上都是同一件事的变种把一句话丢给 AI把回答拿回来。区别只是人设卡不同——写文案时你给 AI 戴了爆款写手的帽子翻译时戴了专业翻译的帽子。所以聪明的做法是先写一个万能传声筒ask(问题, 人设)谁要干活就套上对应的人设去喊它。然后在外面套一个菜单像餐厅点菜一样选 1 上聊天、选 2 上文案。换句话说——不是又学新东西而是把你已有的 7 个脚本用函数 菜单打包成一件。小知识这种一个入口、多个功能的结构专业上叫命令行工具CLI。你今天写的就是人生第一个 CLI。 可运行代码方式一云端 API默认需 Key新人有免费额度python# 第 8 章 · AI 百宝箱 --------------------------------------------------- # 安装依赖在终端运行 pip install openai from openai import OpenAI # ① 配置区只改这里就行 API_KEY 你的APIKey # 换成你的真实 Key BASE_URL None # None 用 OpenAI 官方地址云端 # 如果改用本地免费 Ollama把上面两行改成 # API_KEY ollama # Ollama 不校验 Key随便填 # BASE_URL http://localhost:11434/v1 # 本地模型地址 # ② 万能传声筒给 AI 一句话 一个人设拿回回答 def get_client(): 按配置返回客户端云端和本地共用同一套代码不用改别处 if BASE_URL: # 配了本地地址就用本地 return OpenAI(api_keyAPI_KEY, base_urlBASE_URL) return OpenAI(api_keyAPI_KEY) # 否则用云端 client get_client() # 程序启动就建好客户端 def ask(prompt, system你是一个乐于助人的AI助手, modelgpt-4o-mini): 万能调用发 (人设 问题) 给 AI返回纯文本回答 resp client.chat.completions.create( # 调用对话接口 modelmodel, # 云端 gpt-4o-mini / 本地如 qwen2.5:7b messages[ # messages 是对话历史 {role: system, content: system}, # system 给 AI 戴的人设帽 {role: user, content: prompt}, # user 你真正想问的 ], ) return resp.choices[0].message.content # 取出回答文字 # ③ 五个功能全都是 ask() 套不同人设 ----------------------------------- def chat(): 功能1自由聊天 print(输入 exit 退出聊天) while True: q input(你) if q.lower() exit: break print(AI ask(q)) # 不戴特殊帽子普通助手 def xiaohongshu(): 功能2小红书文案一次 10 条 topic input(想写什么主题) print(ask(f帮我写10条关于「{topic}」的小红书文案带emoji和话题标签, system你是爆款小红书文案写手擅长抓痛点)) def summary(): 功能3长文秒变 1 分钟摘要 text input(粘贴一段长文\n) print(ask(f用1分钟能读完的篇幅总结下面内容\n{text}, system你是信息提炼高手只留重点)) def translate(): 功能4英文翻中文 text input(要翻译的英文) print(ask(f翻译成中文保留语气{text}, system你是专业英中翻译)) def joke(): 功能5段子生成器 topic input(段子主题) print(ask(f讲一个关于「{topic}」的搞笑段子带反转, system你是脱口秀段子手)) # ④ 菜单像点菜一样选功能 --------------------------------------------- menu { 1: ( 自由聊天, chat), 2: ( 小红书文案, xiaohongshu), 3: ( 长文摘要, summary), 4: ( 英语翻译, translate), 5: ( 段子生成, joke), } print( 欢迎来到你的 AI 百宝箱 ) for k, (name, _) in menu.items(): print(k, name) # 打印 1 聊天 / 2 文案 ... while True: choice input(\n选个功能0 退出) if choice 0: print(下次见) break if choice in menu: menu[choice][1]() # 调用对应函数 else: print(没这个选项重选)方式二本地 Ollama完全免费零成本只需把配置区改成下面这样其余代码一字不改python# 本地免费版只改这两行其它全一样 API_KEY ollama # 本地不校验填啥都行 BASE_URL http://localhost:11434/v1 # Ollama 的 OpenAI 兼容地址 # 并把 ask() 里的 model 换成你本地装好的模型例如 # modelqwen2.5:7b本地前提先装好 Ollama 并拉一个模型ollama run qwen2.5:7b。跑这一章时模型要在后台开着。不会装第 20 章会手把手教。升级玩法选做加生图按钮把第 7 章的生图函数也收编进来——在menu里加一行6: ( 画张图, draw)再补一个draw()函数调用images.generate即可。云端用 DALL·E本地免费用 Stable Diffusion第 7 章讲过。✨ 炫酷效果 / 变现点一个程序顶七个桌面放一个ai_toolbox.py双击就能用朋友看了直呼你这不像小白写的。接单利器把这套菜单稍微改改比如默认人设换成淘宝详情页写手就是给网店老板用的文案百宝箱按次/按月收费都行。下一步产品化第 35 章会教你怎么把它打包成.exe发给不懂代码的人直接卖或送引流。私域钩子菜单里加个生成引流文案功能自动产出带你公众号/专栏名的短文案发到群里就是活广告。️ 练习题基础在菜单里加一个6. 中英互译切换功能——让用户输入en 你好就翻译成中文zh Hello就翻译成英文提示判断开头字母决定 system 人设。进阶给每个功能运行前后加print(⏳ 思考中…)让等待时不那么尴尬再试试用本地 Ollama 跑通整个百宝箱算算你这一章花了多少钱答案0 元。️ 配图建议一张终端运行截图菜单 15 列出来用户选 2 后吐出 10 条小红书文案直观展示一个程序顶七个。一张对比图左边是桌面上一排散乱的chat.py / translate.py右边是单个ai_toolbox.py配一个菜单气泡标题写从乐高碎片到整套装备。一张人设帽比喻图同一个 AI 小人头上依次换写手帽/翻译帽/段子手帽对应不同输出。