Python新手入门之编写一个自动诗歌生成器
作者:OpenWorld
时间:2026-06-30
浏览:0
配置Python3.8+环境,安装requests与python-dotenv库,创建.env文件安全存储API密钥;通过构造精准Prompt调用大模型API,解析JSON响应生成五言绝句。脚本实现从用户输入主题到输出诗歌的完整流程。
写代码之前,先得把环境搭起来。这事儿对零基础的朋友来说,其实很简单,只要电脑里装好 Python,再备上两个关键工具包就行。
本文内容来源于互联网,如有侵权请联系删除。
环境准备:让 Python ready for AI
先确认你装的是 Python 3.8 或更高版本。安装时务必勾选“Add Python to PATH”,这样后面才能在命令行里直接调用它。装完后,打开终端(Windows 下用 cmd 或 PowerShell,Mac 下用终端),输入python --version,看到版本号就对了。
接下来要装两个核心库:
requests——Python 世界里的“快递员”,负责向大模型 API 发请求、取结果。python-dotenv——你的“保险箱”,用来安全存储 API 密钥,避免把它直接写在代码里泄露出去。
pip install requests python-dotenv
配置密钥:拿到通往 AI 世界的“钥匙”
大模型调用需要一把钥匙——API Key。就跟点外卖得先注册账号获取令牌一样。 市面上大模型提供商不少(OpenAI、月之暗面、阿里云等等),注册流程大同小异。大致是这样:- 登录大模型平台的控制台。
- 找到“API Keys”管理页面,创建新密钥。
- 复制生成的那串长字符(比如
sk-...)。
.env 的文件,内容如下:
代码通过读取这个文件获取密钥,既方便又安全。OPENAI_API_KEY=sk-你的真实密钥在这里
核心实战:5 分钟构建自动诗歌生成器
环境就绪、密钥在手,现在来完成今天的核心任务:写一个能根据主题自动生成五言绝句的 Python 脚本,就叫它poem_generator.py。
1. 导入模块与加载配置
先告诉 Python 要用哪些工具,再把刚才存好的密钥读出来。import os
import requests
from dotenv import load_dotenv
# 加载 .env 文件中的环境变量
load_dotenv()
# 获取 API 密钥
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("未找到 API 密钥,请检查 .env 文件配置")
这一段干了两件事:引入必要的库,从环境变量中安全提取密钥。没找到密钥就直接报错,避免后面无效运行。
2. 构造 Prompt:给 AI 下达精准指令
和大模型打交道,关键就是 Prompt(提示词)。你可以把它理解为给 AI 的“任务说明书”。说明书写得越清楚,AI 产出的结果就越靠谱。 要让 AI 写五言绝句,可以这样设计 Prompt:def build_prompt(topic):
return f"""
你是一位精通中国古典文学的诗人,擅长创作五言绝句。
请以"{topic}"为主题,创作一首诗。
要求:
1. 严格遵循五言绝句格式(四句,每句五个字)。
2. 押韵自然,意境优美。
3. 只输出诗歌内容,不要包含标题或额外解释。
"""
这里用了几个技巧:角色设定(精通古典文学的诗人)、具体约束(五言、押韵、无废话)和变量插入( {topic} )。这种结构能让大模型迅速进入状态,输出高质量内容。
3. 发送请求与解析响应
这里算是整个流程最带技术含量的地方。用requests 库向 API 接口发一个 HTTP POST 请求,把用户的 Prompt 包装成 JSON 格式。
def generate_poem(topic):
url = "https://api.openai.com/v1/chat/completions" # 这里以通用接口为例,不同厂商地址可能不一样
headers = {
"Authorization": f"Bearer {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:
response = requests.post(url, headers=headers, json=payload, timeout=10)
response.raise_for_status() # 状态码不是 200 就抛异常
# 解析 JSON 响应
result = response.json()
poem_content = result["choices"][0]["message"]["content"]
return poem_content.strip()
except requests.exceptions.RequestException as e:
return f"请求失败:{e}"
逻辑很清楚:
- 构建请求头:带上身份认证信息。
- 构建载荷(Payload):指定模型、传入消息列表。注意
messages是个列表,单轮对话也照此办理。 - 发送与处理:用
post发请求,raise_for_status()确保网络通畅。 - 提取数据:大模型返回的是复杂的 JSON 对象,要从
choices→message→content这条路径挖下去,那里才是诗。
4. 运行与测试
最后把各部分组装起来,加个简单的用户交互入口:if __name__ == "__main__":
print("? 欢迎使用 AI 诗歌生成器!")
user_topic = input("请输入一个主题(例如:春天、月亮、离别):")
if user_topic:
print("n正在构思诗句...n")
poem = generate_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 写首“现代诗”或者“藏头诗”,看看会发生什么有趣的事情。
作者最新文章
三星 Galaxy A08 渲染图曝光:Helio G99 芯片与 6000mAh 电池配置解析
2026-09-08 17:14
OPPO Find X10 Pro Max 影像规格详解:三颗2亿像素镜头与全焦段8K视频能力
2026-09-08 16:41
PDF转HTML在线转换器怎么选?转换后网页排版怎么查?
2026-09-04 11:02
AE教程书籍挑选指南:零基础、动效与合成方向实战标准
2026-09-02 13:31
教程书籍使用SAI软件Logo要单独授权吗:商标引用与出版合规要点
2026-09-02 11:50
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































