当前位置: 首页 > news >正文

Python 新手入门,用 AI 写个自动诗歌生成器

环境准备让 Python ready for AI在动手写代码之前我们需要先搭好“舞台”。对于零基础的朋友来说这一步其实非常简单只需要确保你的电脑里安装了 Python并准备好两个关键的“工具包”。首先请确认你已安装Python 3.8或更高版本。安装时务必勾选Add Python to PATH这样才能在命令行中直接调用它。安装完成后打开终端Windows 下是 cmd 或 PowerShellMac 下是终端输入python --version如果能看到版本号说明基础环境没问题。接下来我们需要安装两个核心库requests它是 Python 中的“快递员”负责向大模型 API 发送请求并取回结果。python-dotenv它是你的“保险箱”用来安全地存储 API 密钥避免将其硬编码在代码中泄露。在终端中执行以下命令即可一键安装pipinstallrequests python-dotenv配置密钥拿到通往 AI 世界的“钥匙”要调用大模型你需要一把“钥匙”也就是API Key。这就好比你要使用外卖服务必须先注册账号并获取令牌。目前市面上有许多大模型提供商如 OpenAI、月之暗面、阿里云等注册流程大同小异。以通用的流程为例登录大模型平台的控制台。找到API Keys管理页面点击创建新的密钥。复制生成的密钥通常是一串长字符如sk-...。重要提示千万不要把这串字符直接写在代码文件里上传到 GitHub 或其他公开平台最安全的做法是创建一个名为.env的文件放在你的项目文件夹根目录下内容如下OPENAI_API_KEYsk-你的真实密钥在这里这样我们的代码就可以通过读取这个文件来获取密钥既方便又安全。核心实战5 分钟构建自动诗歌生成器环境就绪密钥在手现在我们来完成今天的核心任务编写一个能根据主题自动生成五言绝句的 Python 脚本。我们将把这个文件命名为poem_generator.py。1. 导入模块与加载配置首先我们需要告诉 Python 要用哪些工具并把刚才存好的密钥读出来。importosimportrequestsfromdotenvimportload_dotenv# 加载 .env 文件中的环境变量load_dotenv()# 获取 API 密钥api_keyos.getenv(OPENAI_API_KEY)ifnotapi_key:raiseValueError(未找到 API 密钥请检查 .env 文件配置)这段代码做了两件事一是引入必要的库二是从环境变量中安全地提取密钥。如果没找到密钥程序会立即报错提醒避免后续无效运行。2. 构造 Prompt给 AI 下达精准指令与大模型交互的核心在于Prompt提示词。你可以把它理解为给 AI 的“任务说明书”。说明书写得越清晰AI 生成的内容就越符合预期。针对“写一首五言绝句”的需求我们可以这样设计 Promptdefbuild_prompt(topic):returnf 你是一位精通中国古典文学的诗人擅长创作五言绝句。 请以{topic}为主题创作一首诗。 要求 1. 严格遵循五言绝句格式四句每句五个字。 2. 押韵自然意境优美。 3. 只输出诗歌内容不要包含标题或额外解释。 这里我们运用了几个技巧角色设定精通古典文学的诗人、具体约束五言、押韵、无废话以及变量插入{topic}。这种结构能让大模型迅速进入状态输出高质量内容。3. 发送请求与解析响应这是整个流程中最具技术含量的部分。我们需要使用requests库向 API 接口发送 HTTP POST 请求并将用户的 Prompt 包装成 JSON 格式。defgenerate_poem(topic):urlhttps://api.openai.com/v1/chat/completions# 此处以通用接口为例不同厂商地址可能不同headers{Authorization:fBearer{api_key},Content-Type:application/json}payload{model:gpt-3.5-turbo,# 选择模型也可替换为其他兼容模型messages:[{role:user,content:build_prompt(topic)}],temperature:0.7# 控制创造性0.7 是一个平衡点}try:responserequests.post(url,headersheaders,jsonpayload,timeout10)response.raise_for_status()# 如果状态码不是 200抛出异常# 解析 JSON 响应resultresponse.json()poem_contentresult[choices][0][message][content]returnpoem_content.strip()exceptrequests.exceptions.RequestExceptionase:returnf请求失败{e}这段代码逻辑非常清晰构建请求头带上身份认证信息。构建载荷Payload指定模型、传入消息列表。注意messages是一个列表即使只有单轮对话也要遵循此格式。发送与处理使用post方法发送请求并用raise_for_status()确保网络通畅。提取数据大模型返回的是复杂的 JSON 对象我们需要层层深入找到choices-message-content这条路径那里才是我们要的诗句。4. 运行与测试最后我们把所有部分组装起来添加一个简单的用户交互入口if__name____main__:print( 欢迎使用 AI 诗歌生成器)user_topicinput(请输入一个主题例如春天、月亮、离别)ifuser_topic:print(\n正在构思诗句...\n)poemgenerate_poem(user_topic)print(f【{user_topic}】\n{poem})else:print(未输入主题程序退出。)保存文件后在终端运行python poem_generator.py。当你输入“春天”时几秒内你就能看到类似这样的输出春晨晓露润桃枝燕语莺啼入画池。最是一年好光景东风拂柳惹相思。理解背后的工作流通过这个小小的诗歌生成器你已经掌握了 AI 原生应用开发的最基本范式输入 - 构造 Prompt - 调用 API - 解析 JSON - 输出。在这个过程中Python 扮演了“胶水语言”的角色它不需要懂如何写诗只需要负责把用户的需求翻译成大模型能听懂的指令然后把大模型的回复整理好展示给用户。requests库处理了复杂的网络通信细节而 JSON 格式则确保了数据交换的标准化。对于初学者而言不必一开始就纠结于深度学习算法的原理或神经网络的架构。利用现有的大模型 API结合简单的 Python 脚本就能快速构建出具有实际价值的应用。无论是写诗、生成文案还是未来的多轮对话机器人其核心逻辑都是一脉相承的。现在你可以尝试修改 Prompt 中的要求比如让 AI 写一首“现代诗”或者“藏头诗”看看会发生什么有趣的变化。
http://www.zskr.cn/news/1409877.html

相关文章:

  • 保姆级教程:在Win10上用VMware 15.5.2给Mac OS X 10.11安个家(附解锁工具和镜像)
  • 别再只用SSH了!在Ubuntu 20.04上快速启用Telnet服务,搞定那些老旧设备的远程调试
  • 5分钟掌握chfsgui:零门槛文件共享神器新手必看指南
  • 三分钟解锁B站4K视频下载:告别在线播放限制的智能解决方案
  • 网卡代理商选型参考:三层漏斗筛选核心维度一次说清
  • 从Vue项目实战出发:一步步教你用Echarts 5.3.3 + china.js绘制可交互的中国地图(附完整代码)
  • 告别绝对路径!用Virtual Interface和config_db重构你的UVM Driver(附完整代码)
  • 深入浅出 LoongSuite Python Agent:让你的 AI 应用「透明化」(上篇)
  • 别再找第三方工具了!用Windows自带的DISM命令,5分钟搞定Win10家庭版组策略(gpedit.msc)安装
  • Win10家庭版也能用组策略!保姆级DISM命令安装gpedit.msc教程(附一键脚本)
  • 从x86到ARM:深入对比不同CPU架构下PCIe MPS的默认策略与性能调优实践
  • Nacos 2.x 服务端IP配置全解析:从配置文件到JVM参数,哪种方式更适合你的生产环境?
  • 上下料夹爪品牌实用选购经验:适配生产线进出料作业 - 品牌2025
  • 2026年5月更新:河北地区装饰冲孔板订购厂家深度解析与推荐 - 2026年企业资讯
  • 别再死记硬背了!用PTV Vissim 2024做交通仿真,这5个高效建模技巧让你事半功倍
  • Cortex-M3/M4的AHB-Lite突发传输机制与优化策略
  • 别再手动装系统了!用virt-manager在Ubuntu上5分钟搞定一个可复用的qcow2镜像
  • 2026年4月智慧泵房实力厂家哪家强,排污泵/潜水排污泵/一体化污水处理设备/供水控制柜,智慧泵房源头厂家哪个好 - 品牌推荐师
  • 求解线性代数方程组的标准方法是高斯消去法。应用于三对角方程组,通常采用托马斯算法(国内称为追赶法)求解。-两种方法区别
  • Ubuntu 装英伟达显卡驱动
  • 别再为IC617安装头疼了!手把手教你用Ubuntu虚拟机快速搭建Cadence学习环境(含SMIC 0.18um工艺库配置)
  • route 命令设置路由
  • 别再手动对位了!PCB钢网开Mark点,新手焊接效率翻倍的秘密
  • 从经纬度到城市名:高德逆地理编码API在用户画像与数据分析中的实战应用
  • Activiti 5.22 二十五张表都存了啥?一张图帮你理清核心数据流转
  • 2026年 DTF膜/墨水/烫画膜/热熔粉/弹性墨水,离型膜/氟素/非硅/硅油/硅胶离型膜源头厂家推荐榜 - 品牌企业推荐师(官方)
  • ChatGPT定制饮食计划失效真相:3类高危输入词+4步合规性校验流程(卫健委膳食指南交叉验证版)
  • NestJS拦截器实战:除了格式化响应,我还能用RxJS pipe玩出什么花?
  • Python实战:用AlphaBeta剪枝算法搞定井字棋AI(附完整代码)
  • 从UGUI Button到自定义事件:手把手教你用UnityEvent重构游戏中的消息系统(避免强引用内存泄漏)