基于 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辅助写作工具。
随着大模型能力的不断提升,这类工具将在内容创作领域发挥越来越重要的作用。

希望这个项目能为你的内容创作之旅带来灵感!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值