当前位置:网站首页 >  教程

手把手教你用Python搭建爆款短视频标题生成器

时间:2026年05月23日 13:04:44 来源:易频IT社区

开发环境准备

在开始编写代码之前,必须确保本地开发环境配置正确。本指南基于Python 3.9版本编写,兼容Python 3.10及以上版本。请勿使用Python 2.7或Python 3.8以下版本,以免出现依赖库不兼容的问题。

1. 安装Python

如果你的电脑尚未安装Python,请访问Python官方下载页面 https://www.python.org/downloads/ 下载对应操作系统的安装包。安装过程中,务必勾选"Add Python to PATH"选项,这将自动配置环境变量,避免后续在命令行中无法识别python命令。

2. 创建项目目录

打开终端(Windows下为PowerShell或CMD,Mac下为Terminal),执行以下命令创建一个独立的项目文件夹,并进入该目录:

```bash mkdir video_title_generator cd video_title_generator ```

3. 创建并激活虚拟环境

为了隔离项目依赖,防止污染全局环境,强烈建议创建虚拟环境。在项目目录下执行命令:

```bash python -m venv venv ```

激活虚拟环境:

  • Windows系统:venv\Scripts\activate
  • Mac或Linux系统:source venv/bin/activate

4. 安装必要依赖库

本脚本需要调用OpenAI的接口以及管理环境变量,请执行以下命令安装依赖:

```bash pip install openai python-dotenv ```

如果下载速度过慢,可以使用国内镜像源加速安装:

```bash pip install openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 获取API密钥配置

本工具的核心逻辑依赖于大语言模型(LLM)的生成能力。我们需要获取OpenAI的API Key。如果你使用的是兼容OpenAI协议的国内大模型(如DeepSeek、Moonshot等),操作步骤类似,只需替换Base URL即可。

1. 注册并获取Key

访问 https://platform.openai.com/api-keys 登录你的账号。点击左侧菜单的"API keys",点击"+ Create new secret key"按钮。为了安全起见,请务必在创建后立即复制并保存该Key,因为页面刷新后将无法再次查看完整密钥。

2. 配置环境变量

为了防止密钥泄露到代码仓库中,我们使用.env文件进行管理。在项目根目录下创建一个名为.env的文件(注意文件名前有一个点),并在文件中写入以下内容:

```bash OPENAI_API_KEY=sk-your-actual-api-key-here ```

请将sk-your-actual-api-key-here替换为你上一步复制的真实密钥。如果你使用的是其他模型服务,还需要添加一行配置:

```bash OPENAI_BASE_URL=https://api.moonshot.cn/v1 ```

核心逻辑实现

手把手教你用Python搭建爆款短视频标题生成器

我们将代码拆分为三个模块:提示词工程、API调用函数、主程序交互逻辑。

提示词工程策略

生成标题的质量完全取决于提示词的设计。我们需要让AI扮演一个资深的短视频运营专家,并明确输出的格式和约束条件。我们将使用System Prompt(系统提示词)来设定AI的人设,User Prompt(用户提示词)来传递具体的视频主题。

提示词设计包含以下三个核心要素:

  • 角色设定:指定AI为拥有百万粉丝的短视频编导。
  • 任务描述:根据输入的主题生成5个具有高点击率的标题。
  • 约束条件:字数控制在15-25字之间,必须包含情绪价值或痛点,使用列表形式输出。

代码编写

在项目根目录下创建main.py文件。首先编写导入和初始化部分:

```python import os from openai import OpenAI from dotenv import load_dotenv 加载.env文件中的环境变量 load_dotenv() 初始化OpenAI客户端 client = OpenAI( api_key=os.getenv("OPENAI_API_KEY"), 如果使用非官方API,取消下面这行的注释并修改地址 base_url=os.getenv("OPENAI_BASE_URL") ) ```

接下来编写生成标题的核心函数。这里我们使用gpt-3.5-turbo模型,它在性价比和响应速度之间取得了很好的平衡。如果对质量要求极高,可替换为gpt-4o

```python def generate_titles(video_topic): """ 根据视频主题调用大模型生成5个爆款标题 """ system_prompt = """ 你是一位拥有10年经验的短视频爆款编导,擅长通过标题抓住用户眼球。 请根据用户提供的视频主题,生成5个具有高点击率的短视频标题。 要求: 1. 每个标题字数控制在15-25字之间。 2. 标题必须包含强烈的情绪价值、悬念或直击痛点。 3. 适当使用emoji表情符号增加吸引力。 4. 严格以无序列表的形式输出,不要包含任何其他废话。 """ try: response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": f"视频主题:{video_topic}"} ], temperature=0.7, 设置温度值,0.7保证一定的创造性但不会太离谱 max_tokens=500, 限制最大输出字数 ) return response.choices[0].message.content except Exception as e: return f"生成失败,错误信息:{str(e)}" ```

为了方便后续复盘和批量使用,我们增加一个将结果保存到本地txt文件的功能:

```python def save_to_file(topic, content): """ 将生成的标题保存到result.txt文件中 """ filename = "generated_titles.txt" timestamp = os.popen('date +"%Y-%m-%d %H:%M:%S"').read().strip() Windows下如果date命令报错,可以使用python内置时间库,这里为了通用性使用简单追加写入 with open(filename, "a", encoding="utf-8") as f: f.write(f"时间: {timestamp}\n") f.write(f"主题: {topic}\n") f.write(f"内容:\n{content}\n") f.write("-" 30 + "\n") print(f"结果已保存至 {filename}") ```

完整可执行代码

将上述代码片段整合,并添加主循环逻辑,形成完整的main.py。你可以直接复制以下代码覆盖整个文件:

```python import os import sys from openai import OpenAI from dotenv import load_dotenv 加载环境变量 load_dotenv() 检查API Key是否存在 api_key = os.getenv("OPENAI_API_KEY") if not api_key: print("错误:未找到OPENAI_API_KEY,请在.env文件中配置。") sys.exit(1) 初始化客户端 client = OpenAI( api_key=api_key, base_url=os.getenv("OPENAI_BASE_URL") 如果是空值会自动使用官方地址 ) def generate_titles(video_topic): system_prompt = """ 你是一位拥有10年经验的短视频爆款编导,擅长通过标题抓住用户眼球。 请根据用户提供的视频主题,生成5个具有高点击率的短视频标题。 要求: 1. 每个标题字数控制在15-25字之间。 2. 标题必须包含强烈的情绪价值、悬念或直击痛点。 3. 适当使用emoji表情符号增加吸引力。 4. 严格以无序列表的形式输出,不要包含任何其他废话。 """ try: response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": f"视频主题:{video_topic}"} ], temperature=0.7, max_tokens=500, ) return response.choices[0].message.content except Exception as e: return f"生成失败,错误信息:{str(e)}" def save_to_file(topic, content): filename = "generated_titles.txt" 获取当前时间戳 from datetime import datetime timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") with open(filename, "a", encoding="utf-8") as f: f.write(f"时间: {timestamp}\n") f.write(f"主题: {topic}\n") f.write(f"内容:\n{content}\n") f.write("-" 40 + "\n") print(f"\n[系统提示] 结果已自动保存至 {filename}") def main(): print("=== 爆款短视频标题生成器已启动 ===") print("输入 'quit' 或 'exit' 退出程序\n") while True: user_input = input("请输入视频主题:").strip() if user_input.lower() in ['quit', 'exit']: print("程序已退出。") break if not user_input: print("主题不能为空,请重新输入。") continue print("正在生成标题,请稍候...") result = generate_titles(user_input) print("\n生成结果:") print(result) 自动保存 save_to_file(user_input, result) print("\n") if __name__ == "__main__": main() ```

运行与效果验证

代码编写完成后,在终端中确保虚拟环境处于激活状态,然后执行以下命令启动程序:

```bash python main.py ```

测试案例:

当终端提示“请输入视频主题:”时,输入例如:“新手做红烧肉总是发柴怎么办”

程序将输出类似以下的结果(具体内容取决于AI模型的实时生成):

1. 别再加水煮了!红烧肉发柴只因做错这一步😭
2. 零失败!红烧肉软烂入味的3个隐藏秘诀🔥
3. 为什么你做的红烧肉像嚼蜡?大厨教你一招
4. 告别发柴!只需加一点“它”,红烧肉嫩滑爆汁
5. 新手必看!做红烧肉千万别犯这3个低级错误❌

同时,程序会在项目根目录下生成或更新generated_titles.txt文件,记录下本次的输入和输出结果,方便你后续批量使用或进行数据分析。

常见问题排查

1. 连接超时或网络错误

如果在调用API时出现ConnectionErrorTimeout,这通常是因为网络环境无法直接访问OpenAI服务。解决方法是在代码中配置代理,或者使用支持国内网络环境的API服务(如DeepSeek、阿里通义千问等),并在.env文件中修改OPENAI_BASE_URL

2. API Key 无效

如果提示Incorrect API key provided,请检查.env文件中的Key是否复制完整,是否包含了多余的空格。确保该API Key有可用的余额额度。

3. 依赖安装报错

如果在pip install时报错,建议先升级pip:python -m pip install --upgrade pip。如果依然报错,请检查Python版本是否符合要求,并确保网络连接正常。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图