基于 Streamlit 和 OpenAI 实现的小红书爆款文案生成器
项目介绍
在当今自媒体时代,高质量的文案是吸引流量的关键。特别是在小红书这样的平台上,一个吸引人的标题和富有情感的正文可以显著提高内容的曝光率。
本文将介绍一个基于OpenAI API和Streamlit开发的小红书文案生成器,它能够一键生成符合"小红书浓人"风格的标题和正文。

技术实现
这个项目主要基于:
- Streamlit:构建Web应用界面
- OpenAI API:提供GPT-3.5模型进行文本生成
- 提示工程:精心设计的系统提示词,引导AI生成符合小红书风格的文案
核心代码结构
import streamlit as st
from openai import OpenAI
from dotenv import load_dotenv
import os
# 加载环境变量
load_dotenv()
# 初始化 OpenAI 客户端
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 定义系统提示
systemprompt = """【小红书浓人】根据给定主题,生成情绪和网感浓浓的自媒体文案
你是一个小红书文案专家,也被称为小红书浓人。小红书浓人的意思是在互联网上非常外向会外露出激动的情绪。常见的情绪表达为:啊啊啊啊啊啊啊!!!!!不允许有人不知道这个!!
请详细阅读并遵循以下原则,按照我提供的主题,帮我创作小红书标题和文案。
# 标题创作原则
## 增加标题吸引力
- 使用标点:通过标点符号,尤其是叹号,增强语气,创造紧迫或惊喜的感觉!
- 挑战与悬念:提出引人入胜的问题或情境,激发好奇心。
- 结合正负刺激:平衡使用正面和负面的刺激,吸引注意力。
- 紧跟热点:融入当前流行的热梗、话题和实用信息。
- 明确成果:具体描述产品或方法带来的实际效果。
- 表情符号:适当使用emoji,增加活力和趣味性。
- 口语化表达:使用贴近日常交流的语言,增强亲和力。
- 字数控制:保持标题在20字以内,简洁明了。
## 标题公式
标题需要顺应人类天性,追求便捷与快乐,避免痛苦。
- 正面吸引:展示产品或方法的惊人效果,强调快速获得的益处。比如:产品或方法+只需1秒(短期)+便可开挂(逆天效果)。
- 负面警示:指出不采取行动可能带来的遗憾和损失,增加紧迫感。比如:你不xxx+绝对会后悔(天大损失)+(紧迫感)
## 标题关键词
从下面选择1-2个关键词:
我宣布、我不允许、请大数据把我推荐给、真的好用到哭、真的可以改变阶级、真的不输、永远可以相信、吹爆、搞钱必看、狠狠搞钱、一招拯救、正确姿势、正确打开方式、摸鱼暂停、停止摆烂、救命!、啊啊啊啊啊啊啊!、以前的...vs现在的...、再教一遍、再也不怕、教科书般、好用哭了、小白必看、宝藏、绝绝子、神器、都给我冲、划重点、打开了新世界的大门、YYDS、秘方、压箱底、建议收藏、上天在提醒你、挑战全网、手把手、揭秘、普通女生、沉浸式、有手就行、打工人、吐血整理、家人们、隐藏、高级感、治愈、破防了、万万没想到、爆款、被夸爆
# 正文创作原则
## 正文公式
选择以下一种方式作为文章的开篇引入:
- 引用名言、提出问题、使用夸张数据、举例说明、前后对比、情感共鸣。
## 正文要求
- 字数要求:500-800字之间,不宜过长
- 风格要求:真诚友好、鼓励建议、幽默轻松;口语化的表达风格,有共情力
- 多用叹号:增加感染力
- 格式要求:多分段、多用短句
- 重点在前:遵循倒金字塔原则,把最重要的事情放在开头说明
- 逻辑清晰:遵循总分总原则,第一段和结尾段总结,中间段分点说明
# 创作原则
- 标题数量:每次准备5个标题。
- 正文创作:撰写与标题相匹配的正文内容,具有强烈的浓人风格
现在,请告诉我你是否阅读完成?下面我将提供一个主题,请为我创作相应的小红书标题和文案,谢谢~"""
# Streamlit 应用程序
st.set_page_config(
page_title="小红书文案生成器",
page_icon="",
layout="centered",
initial_sidebar_state="collapsed", # 默认隐藏侧边栏
)
# 自定义CSS样式
st.markdown(
"""
<style>
/* 修改背景颜色 */
.stApp {
background-color: #f5f5f5;
color: #333;
}
/* 标题样式 */
.block-container {
padding-top: 1rem; /* 减少顶部空白 */
}
h1 {
color: #6c63ff;
text-align: center;
font-family: 'Arial', sans-serif;
font-weight: bold;
}
/* 输入框样式 */
.stTextInput > div > div > input {
border: 2px solid #6c63ff;
border-radius: 10px;
padding: 10px;
font-size: 16px;
background-color: #f5f5f5;
color: #333;
}
/* 按钮样式 */
.stButton button {
background-color: #6c63ff;
color: white;
font-size: 18px;
padding: 10px 20px;
border: none;
border-radius: 5px;
transition: 0.3s ease;
}
.stButton button:hover {
background-color: #5a54e1;
transform: scale(1.05);
}
/* 输出框样式 */
.stMarkdown {
background-color: #ffffff;
padding: 20px;
border: 1px solid #ddd;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
</style>
""",
unsafe_allow_html=True,
)
# 页面标题
st.title(" 小红书文案生成器 ")
# 用户输入
st.markdown(
"""
### 输入你的主题
请提供你需要生成文案的主题,我们会为你生成高质量的小红书标题和文案!
""",
unsafe_allow_html=True
)
user_input = st.text_input("", "例如:从零开始!一招揭秘AI大模型入门秘籍,让你轻松驾驭!")
# 生成按钮
if st.button("生成文案 "):
if user_input.strip() == "":
st.warning(" 请输入主题!")
else:
# 调用 OpenAI API
with st.spinner("正在生成文案,请稍等..."):
response = client.chat.completions.create(
messages=[
{'role': 'system', 'content': '我是一个小红书文案助手,我能够快速的跟你生成高质量的文案'},
{'role': 'system', 'content': systemprompt},
{'role': 'user', 'content': user_input}
],
model="gpt-3.5-turbo",
)
# 获取结果
result = response.choices[0].message.content
# 显示结果
st.success("文案生成成功!")
st.markdown("### 生成的文案", unsafe_allow_html=True)
st.markdown(result)
placeholder = st.empty()
运行命令:streamlit run xxx.py
提示工程的艺术
这个项目的核心在于精心设计的提示工程(Prompt Engineering)。我们的系统提示词详细规定了:
标题创作原则
- 使用标点增强语气
- 设置悬念和挑战
- 平衡正负刺激
- 融入热点和热梗
- 明确描述成果
- 适当使用emoji
- 控制标题长度在20字以内
标题公式
- 正面吸引:产品/方法 + 短期 + 逆天效果
- 负面警示:不采取行动 + 天大损失 + 紧迫感
正文创作原则
- 开篇引入多样化:名言、问题、数据等
- 字数控制在500-800字
- 真诚友好的风格
- 多用感叹号增加感染力
- 分段清晰,使用短句
- 遵循倒金字塔原则
应用界面设计
应用采用了简洁但富有视觉吸引力的设计:
- 柔和的背景色
- 醒目的主题色(#6c63ff)
- 圆角边框和阴影效果
- 响应式按钮设计
- 清晰的输出区域样式
结语
这个项目展示了如何结合提示工程和简单的web应用开发,创建一个实用的AI辅助写作工具。
随着大模型能力的不断提升,这类工具将在内容创作领域发挥越来越重要的作用。
希望这个项目能为你的内容创作之旅带来灵感!
基于 Streamlit 和 OpenAI 实现的小红书爆款文案生成器的更多相关文章
- 2月第3周业务风控关注|上海网信办复测23个被约谈APP 涉及1号店、小红书等
易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.上海网信办复测23个被约谈A ...
- 超实用教程,教你用墨刀做出小红书app原型
一个新手怎么用1小时快速学会APP原型设计? 1小时很短,这意味着学习时必须把握APP原型设计中的重点.难点,而非面面俱到. 要在短时间内理解.掌握一个工具的使用,最有效的方式莫过于临摹: 看实例视频 ...
- Keep、小红书、美图…独角兽App能拿到新一轮救命钱吗?
大多数人热爱手机,不是因为时尚的外观或者结实的零部件,而是因琳琅满目的App赋予其太多的功能.智能手机最先是清理掉人类的零碎时间,现如今又开始肢解我们大块的时间,或者说,智能手机本身就是生活.在如此背 ...
- 小红书携手HMS Core,畅玩高清视界,种草美好生活
在相同流量消耗的情况下,540p可秒变1080p?这不是魔法,通过视频超分辨率技术(简称视频超分),就能让视频变得更清晰. 7月20日,在小红书最新版本7.48的App中,用户就能体验到这项技术带来的 ...
- Android -- 仿小红书欢迎界面
1,觉得小红书的欢迎界面感觉很漂亮,就像来学习学习一下来实现类似于这种效果 原效果图如下: 2,根据效果我们来一点点分析 第一步:首先看一下我们的主界面布局文件视图效果如下: main_activi ...
- 使用Vue2完成“小红书” app
小红书项目说明 整体页面格调.功能和原版 app 无限接近.具体页面细节可以下载 “小红书” app查看. 图片素材:https://pan.baidu.com/s/1qYOcx7e 整体要求: · ...
- 剑指Offer——小米+小红书笔试题+知识点总结
剑指Offer--小米+小红书笔试题+知识点总结 情景回顾 时间:2016.9.23 19:00-21:00 2016.9.24 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事 ...
- 6.简单提取小红书app数据(简单初步试采集与分析)-1
采集小红书数据爬虫:1.本来是要通过app端的接口去直接采集数据,但是app接口手机端设置本地代理这边开启抓包后就不能正常访问数据.所以就采用了微信小程序里的小红书app接口去采集数据. 2.通过 f ...
- 2019 小红书java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.小红书等公司offer,岗位是Java后端开发,因为发展原因最终选择去了小红书,入职一年时间了,也成为了面试官 ...
- 最新 小红书java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.小红书等10家互联网公司的校招Offer,因为某些自身原因最终选择了小红书.6.7月主要是做系统复习.项目复盘.LeetCo ...
随机推荐
- 一段VUE代码:通过组件封装全局方法、自定义指令和注册组件
index.js // 插件定义第一种方式,对象:拥有 install() 方法的对象 const myPlugin = { install(app, options) { // 配置全局方法 app ...
- 分布式锁—7.Curator的分布式锁
大纲 1.Curator的可重入锁的源码 2.Curator的非可重入锁的源码 3.Curator的可重入读写锁的源码 4.Curator的MultiLock源码 5.Curator的Semaphor ...
- 自动化-Yaml文件读取函数封装
1.文件布局 打开文件修改读取方式为w load函数加载文件 class ReadConfiYaml: def __init__(self,yaml_file): self.yaml_file=yam ...
- jmespath 使用及案例
什么是jmespath jmespath 是python里面的一个库 主要在httprunner框架里使用 2.使用语法 列表: with_jmespath(jmes_path,var_name) m ...
- Ubuntu下如何管理多个ssh密钥
Ubuntu下如何管理多个ssh密钥 前言 我一直在逃避这个问题,误以为我能够单纯地用一个 ssh 走天下. 好吧,现实是我不得不管理多个 ssh 做,那就写个博客总结一下吧. 查阅后发现前人已经 ...
- Flask快速入门2
六,Flask HTTP方法 Http协议是万维网中数据通信的基础.在该协议中定义了从指定URL检索数据的不同方法. 下表总结了不同的http方法: 序号 方法 描述 1 GET 以未加密的形式将数据 ...
- ORB算法介绍 Introduction to ORB (Oriented FAST and Rotated BRIEF)
Introduction to ORB (Oriented FAST and Rotated BRIEF) 1. Introduction ORB(Oriented FAST and Rotated ...
- 区块链特辑——solidity语言基础(一)
Solidity语法基础学习 一.智能合约的结构: 首先以上是智能合约的结构,包含版权宣告.编译指示.Using for 宣告.错误定义.输入.列举与枚举.常数.合约.函数.注释.第一个注释不同于其他 ...
- JDK7-时间类、时间格式化类--java进阶day07
1.Date类:表示时间的类 1.Date常用的构造方法 . 2.Date常用的成员方法 1.getTime:返回从时间原点到对象设定的时间之间的时间 2.setTime:将对象的时间设置为setTi ...
- python发送QQ邮件,自定义邮件内容
怎么发QQ邮件,网上的例子很多,就不介绍了,具体可参考:https://www.jianshu.com/p/0f8c5e4e7054 这里主要把自定义邮件内容写一下 # -*- coding: utf ...