基于 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 ...
随机推荐
- API方式开发AI应用的三点总结
1. 编程式prompt 让 AI 具备类似程序的运行逻辑.把大模型当CLR使用.与传统的角色扮演提示prompt相比,此方式所需的tokens数量更少,且输出结果的准确性更高 .示例如下: 2. 语 ...
- JVM运行参数
一.三种参数类型 1.标准参数:比较稳定,以后版本会保留 -help -version 2.-X参数(非标准参数) -Xint -Xcomp 3.-XX参数(非标准参数,使用率较高) -XX:newS ...
- 学习理论:单阶段代理损失的(H, R) - 一致界证明
1 导引 我们在上一篇博客<学习理论:预测器-拒绝器多分类弃权学习>中介绍了弃权学习的基本概念和方法,其中包括了下列针对多分类问题的单阶段预测器-拒绝器弃权损失\(L_{\text{abs ...
- wxpython-窗体关闭
` def close(self, event): wx.Exit() `
- 关于我这周学习SQL注入的一些笔记:
sql注入的原理: 通过恶意的SQL语句插入到应用的输入参数中,再在后台数据库服务器上解析执行的攻击. Web程序的三层结构: 界面层( User Interface layer ) 业务逻辑层( ...
- javascript 陀螺仪加摄像头可以玩出AR效果
原文链接:https://blog.jijian.link/2020-09-08/js-ar/ 重要事情说三遍 此文章中的API接口,必须放在 https 协议下测试!浏览器APP必须开启摄像头权限! ...
- Qt设置QTextEdit的行高
Qt设置QTextEdit的行高 解决方法: QTextDocument* doc = ui->edtCountryIntroduce->document(); for(QTextBloc ...
- k8s dial tcp 127.0.0.1:6443: connect: connection refused排查流程及解决思路
前言 k8s 集群中,使用 kubelet 报错,如下: The connection to the server 127.0.0.1:6443 was refused - did you speci ...
- 基础指令:三剑客之sed、三剑客之awk详解
目录 4.9 三剑客之sed(查找.替换.删除.插入) 作用: 语法格式: 4.9.1 sed指定行输出 [行数]p 4.9.2 sed模糊搜索 /[字符串]/p 4.9.3 按照区间进行过滤查找 [ ...
- 【python-数据分析】pandas时间序列处理
1. timestamp 1.1 创建timestamp 自定义timestamp 语法:pd.Timestamp(ts_input,tz,year,month,day,hour,minute,sec ...