目标
上一节,我们成功抓取了推特上的”ChatGPT4使用方法”并存入CSV文件。没看过的小伙伴快去回顾下!🏃♂️
GPT-4的使用场景和案例:基于Twitter热门推文的分析和中文总结
CSV文件存在Google Drive服务器,每次生成新总结都要跑代码,累死我了!😩 今天,我们来试试在Discord机器人中直接获取推文总结,一键轻松拿到!🤖
效果一览无遗:
不多啰嗦,直接上问答!🔥
问答
先让GPT回忆一下代码
要让GPT4照葫芦画瓢,得先给它展示我之前写的代码。代码多得像流水账,先看个图吧!
小家伙还算识趣,飞速阅读完代码,然后接受了我的挑战。💪
添加discord机器人功能
然后给出我们的要求,还是老样子,立刻给你说出了个一二三条解决步骤,棒棒哒💯
按它的建议,我试试运行代码。结果呢?报错了!这GPT4的代码也不能全信,想害我!😤 不过,我也不懈Python啊,就把错误扔回去!
这下果然老实了,立刻承认错误,然后给我新的解决方案。抱着再试一试的想法,我又将代码放入colab中执行。我去又给我报错,而我还是老套路,直接把错误丢给它。
ok完美运行!!!
给机器人输入数据
如果大家看过上一节,就会发现之前GPT给我们写的获取推文总结功能没有被封装成函数!!!!,那么我们的机器人如何调用呢!。身为一个程序员,我自己当然会给他封装一下。但是本着只BB,绝对不自己动手做的原则,我还是给GPT下达了一个命令,让它锻炼一下给我封装成scrape_and_summarize函数。
好家伙封装的还挺快!,那么接下来我们直接让它将新封装的函数scrape_and_summarize和机器人功能相结合。自然我肯定是不会写的,当然是张嘴要求了啊!
然后我愉快的开始执行,然后又给我报错,不过这次我们熟练了,直接将错误丢给它,让它自己解决。
然后我们将代码放入colab中运行,可以看见我们的机器人已经成功上线了。
优化机器人输出反馈
因为获取数据需要进行网络请求,这就导致scrape_and_summarize函数需要等待很长时间,所以说我们在输入命令之后,机器人迟迟没有响应。那么我再要求一下GPT给我们的机器人加个处理提示文本。
完整代码
所有代码都是GPT4写的!!!,我只是负责出提示
import os
import discord
from discord.ext import commands
import snscrape.modules.twitter as twitter
import pandas as pd
import openai
import logging
from googletrans import Translator
import nest_asyncio
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
openai.api_key = "your openai key"
def scrape_and_summarize():
query = "chatgpt4 (use OR uses OR using OR example OR examples OR scenario OR scenarios OR application OR applications)"
results_to_retrieve = 10
logger.info(f"Searching for '{query}' on Twitter")
scraper = twitter.TwitterSearchScraper(query)
tweets = sorted(scraper.get_items(), key=lambda x: x.likeCount + x.quoteCount + x.replyCount, reverse=True)
translator = Translator()
tweet_data = []
for i, tweet in enumerate(tweets[:results_to_retrieve]):
tweet_url = tweet.url
tweet_content = tweet.content
response = openai.Completion.create(
engine="text-davinci-002",
prompt=f"Please summarize the following tweet:nn{tweet_content}nnSummary:",
max_tokens=30,
n=1,
stop=None,
temperature=0.7,
)
summary = response.choices[0].text.strip()
translated_summary = translator.translate(summary, dest="zh-cn").text
tweet_data.append((tweet_url, tweet_content, summary, translated_summary))
return tweet_data
# df = pd.DataFrame(tweet_data, columns=["Tweet URL", "Tweet Content", "Summary", "Translated Summary (Chinese)"])
# df.to_csv("tweet_summaries.csv", index=False)
# Discord bot code
TOKEN = "your discord bot key"
intents = discord.Intents.default()
intents.messages = True
intents.guilds = True
intents.reactions = True
intents.message_content = True # 添加这一行
bot = commands.Bot(command_prefix='/', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} has connected to Discord!')
@bot.command(name='news', help='Returns summaries of the top tweets about ChatGPT-4')
async def news(ctx):
print("hello bot")
processing_message = await ctx.send("正在处理您的请求,请稍候...")
tweet_summaries = scrape_and_summarize()
await processing_message.edit(content="处理完成!正在发送推文总结...")
for url, content, summary, translated_summary in tweet_summaries:
response = f"**Tweet 地址**: {url}n Tweet 总结 **: {translated_summary}n"
await ctx.send(response)
await ctx.send(response)
nest_asyncio.apply()
bot.run(TOKEN)
结尾
总而言之,我们成功地运用了ChatGPT4来升级我们的Discord机器人,让它可以更便捷地获取推特上关于”ChatGPT4使用方法”的热门推文总结。尽管在过程中遇到了一些小挫折,但我们一路披荆斩棘,最终达到了目标。
这次探索不仅让我们深入了解了ChatGPT4的潜力,还提醒我们,人工智能虽然强大,但在实际应用中可能还会遇到挑战。作为使用者,我们需要不断学习和适应,与这个神奇的AI助手共同成长。
在此感谢大家的支持与陪伴!如果你喜欢这篇文章,别忘了点个赞👍、关注我们,以便及时获取更多精彩内容。同时,欢迎在评论区留下你的宝贵意见和建议,我们非常期待与大家互动交流,共同探讨更多有趣的话题!💬🌟—— 这一部分我还是只动了嘴