目前人工智能的存在就像一把双刃香蕉,一方面,许多人对其不道德的使用持谨慎态度。但另一方面,人工智能可以提供很多好处,帮助很多人加快工作速度。
在这篇文章中,我们将通过在社交媒体上创建帖子生成器来创建一个使用人工智能的案例研究示例。该生成器的目的是帮助个人或企业提供可用于帮助企业或个人品牌塑造的帖子灵感。
准备文件夹和要求
我们将在该项目中使用的库是openai
和streamlit
,如果未安装它们,我们可以在包管理器中下载它们pip
或conda
.
我们将创建的项目文件夹结构如下
- postgenerator
|--app.py
|--gpt.py
为了更容易维护,这里我们将文件分为app.py
和gpt.py
,这些文件app.py
包含我们的 Streamlit 应用程序的 UI 以及gpt.py
我们将创建的应用程序的逻辑。
制作gpt.py
里面的代码app.py
如下:
import openai
def generate_post(api_key, platform, topic, temperature, length, use_hashtags, use_emojis):
try:
client = openai.OpenAI(api_key=api_key)
prompt = f"Generate a {length} social media post for {topic} in {platform}."
if use_hashtags:
prompt += " Include relevant hashtags."
else:
prompt += " Do not include hashtags."
if use_emojis:
prompt += " Include appropriate emojis."
else:
prompt += " Do not include emojis."
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a social media expert with 20 years experience on Cupywriting"},
{"role": "user", "content": prompt}
],
max_tokens=1000,
temperature=temperature
)
post = response.choices[0].message.content
return post
except openai.AuthenticationError:
return "Invalid API key"
except Exception as e:
return str(e)
在此文件中,我们将创建一个名为 的函数generate_post
。该函数将接受七个参数,即api_key
, platform
, topic
, temperature
, length
, use_hashtags
, use_emojis
。
因为我们将向 OpenAI API 发出请求,所以我们用错误处理来包装我们的代码try-except
。目标是当出现错误时,希望我们的应用程序不会崩溃。
client
接下来我们从 openai.OpenAI创建一个对象,在这里api_key
我们输入的内容被验证。然后创建一个变量prompt
,其中包含我们将给出的命令的模板。
参数use_hashtag
和use_emojis
工作通过提供额外的提示来确定主题标签和表情符号是否将包含在我们将制作的帖子中。
然后我们容纳response
该方法,这里我们以, , , 和client.chat.completions.create
的形式输入参数。使用的模型是Openai当前最佳模型的小版本。model
messages
max_tokens
temperature
gpt-4o-mini
参数messages
为模型提供有关分配给模型的角色以及用户输入的提示的说明。这里我们告诉system prompt
模特,他是一位社交媒体专家,在文案领域也有丰富的经验。
该参数max_tokens
设置将生成的令牌的最大数量。这里我们输入1000,因为我们将把创建的帖子的长度设置为三类。
此外,调节模型响应创造力的参数temperature
,越高则越有创造力,反之亦然。
整个函数generate_post
将返回post
模型对用户给出的提示的响应。
制作app.py
gpt.py
创建逻辑后,我们继续使用 Streamlit 创建显示。整个代码app.py
如下:
import streamlit as st
from gpt import generate_post
def main():
st.title("Social Media Post Generator")
st.sidebar.title("Configuration")
api_key = st.sidebar.text_input("Enter your OpenAI API key:", type="password")
if api_key:
topic = st.text_input("What is your post for?")
platform = st.selectbox("Platform:", ["Facebook", "Instagram", "Twitter", "LinkedIn"])
temperature = st.slider("Creativity Level (temperature):", min_value=0.0, max_value=1.0, value=0.5, step=0.05)
length = st.selectbox("Choose the length:", ["Short", "Medium", "Long"])
use_hashtags = st.radio("Include hashtags?", ("Yes", "No"))
use_emojis = st.radio("Include emojis?", ("Yes", "No"))
use_hashtags = use_hashtags == "Yes"
use_emojis = use_emojis == "Yes"
# Generate Post Button
if st.button("Generate Post"):
if topic:
post = generate_post(api_key, platform, topic, temperature, length, use_hashtags, use_emojis)
if post == "Invalid API key":
st.error("Invalid API key. Please check and try again.")
elif "error" in post.lower():
st.error(f"An error occurred: {post}")
else:
st.success("Generated Post:")
st.write(post)
else:
st.warning("What is your post for?")
else:
st.warning("Please enter your OpenAI API key in the sidebar to generate a post.")
if __name__ == "__main__":
main()
总的来说,我们创建的 UI 由主显示和侧边栏组成。为了使用这个应用程序,用户必须首先输入各自的openAI。侧边栏的功能是容纳用户使用的 api 键。
用户可以输入的输入有topic
、platform
、temperature
、length
、use_hashtag
和use_emojis
。
主题采用输入文本的形式,包含我们将生成的帖子的目的。接下来,以包含值选项的选择框的形式输入platform
和。length
对于平台,我们可以选择 Facebook、LinkedIn、Twitter 或 LinkedIn。同时,我们可以选择短、中、长长度。
该参数temperature
采用滑块的形式,范围在 0 到 1 之间。最后use_hashtag
采用use_emojis
单选按钮的形式。
最后,有一个按钮将调用我们之前在文件中创建的Generate Post
函数。传递的参数将根据已输入 Streamlit UI 的用户输入进行调整。generate_post
gpt.py
运行应用程序 www.cqzlsb.com
要运行应用程序,我们可以streamlit run app.py
在终端中运行命令。以下是应用程序运行时的样子。
为了进行实验,我会要求发一个帖子
雅加达市一家名为“Kebulimu”的阿拉伯餐厅
接下来尝试了三种参数组合:
-
长度:短,标签:否,表情符号:否
-
长度:中等,标签:是,表情符号:否
-
长度:长,标签:是,表情符号:否
对于温度,我们将其设置为 0.75,目标平台是 Instagram。结果如下:
- 结果第一个参数的组合:
- 第二个参数的结果组合:
- 第三个参数的结果组合:
可以看到,提供的结果是符合我们指定的参数的。
闭幕式
从这个简单的项目中,我们可以了解给定提示对生成的输出的影响。目前,我们仍然依赖现有模型中的知识,可以通过使用检索增强生成(RAG)等技术添加我们自己文件中的知识来完成进一步的开发。
感谢您阅读这篇文章,希望它有用,并且不要厌倦继续学习!