链接丢给它,精华吐出来!微信AI小助理又行了,附完整提示词

picture.image

猴哥的第 88 期分享,欢迎追看

前两天,搞了个微信 AI 小助理,爸妈玩的不亦乐乎。

有朋友问,还能干点啥?

可玩的花样可多了~

最近关注的公众号有点多,根本看不完。我在想:把链接丢给小助理,让它帮我把文章大纲整理出来,这样岂不双赢:既不会遗漏重要内容,又节省了大量时间。

说干就干!

前两篇整体框架已经搭建好了,现在做的无非就是给小助理装上三头六臂!

本文将手把手带大家,实现小助理的 AI 摘要功能。

整个过程只需 4 步:

  • 获取微信公众号文章链接;
  • 爬取文章内容;
  • 编写提示词,调用 LLM 进行总结;
  • 调用发送消息接口,返回摘要内容。

话不多说,上实操!

❝ 友情提醒:注册小号使用,严禁用于违法用途(如发送广告/群发/诈骗、色情、政治等内容),否则封号是早晚的事哦。

  1. 获取文章链接

微信公众号文章转发到微信,消息类型是 urlLink

为此,只需要在上篇处理消息的逻辑基础上,修改下路由,单独处理urlLink类型的消息:

  
def handle_message(message_type='text', content='', source='', is_from_self="0"):  
    if is_from_self == "1":  
        return  
    if message_type == "text":  
        bot_answer = handle_text(content)  
    if message_type == "urlLink":  
        bot_answer = handle_url(content)  

消息内容 content 中有一个 url 字段,这就是文章链接。

拿到文章链接,我们就可以写一个爬虫,爬取文章完整内容。

  1. 爬取文章内容

爬取文章内容的方式有很多。

之前给大家分享 dify 使用教程 时,用过firecrawl这个爬虫插件,把网页自动转存为 markdown 内容,非常方便,免费用户有使用额度。

如果不想装整个插件,那么我们完全可以自己动手,写一个简单的爬虫!

只需要用到requestsbs4即可:

  
import requests  
from bs4 import BeautifulSoup  
response = requests.get(url, headers=headers)  
soup = BeautifulSoup(response.text, 'html.parser')  
content = soup.find('div', attrs={'id': 'js\_content'}) # html文件  

上面得到的内容是 html 格式,当然直接把它送给 LLM 也是没问题的。

如果吝啬你宝贵的 Token 资源,那么强烈建议你用上这个库:html2text,一键将html 转存成 markdown

  
import html2text  
h = html2text.HTML2Text()  
markdown_content = h.handle(str(content))  

有了文章内容,接下来我们送给 LLM,让它给提炼出文章大纲。

  1. 调用 LLM 进行总结

直接丢给 LLM 么?

当然可以,但如果希望得到的结果可控且可靠,最好设计下角色提示词。

下面是我针对这个任务,编写的提示词,供小伙伴们参考:

  
sys_prompt_kp = '''  
    - Role: 文章分析专家  
    - Background: 用户需要对一篇给定的文章进行关键点总结,并生成文章的大纲。  
    - Profile: 你是一位经验丰富的编辑,擅长提炼文章核心思想和结构化信息。  
    - Skills: 文章阅读、关键点提取、信息组织、大纲创建。  
    - Goals: 帮助用户从文章中提取关键点,并生成清晰的大纲。  
    - Constrains: 确保大纲简洁明了,覆盖文章所有主要观点。  
    - OutputFormat: 文章大纲,以列表形式呈现。  
    - Workflow:  
    1. 阅读并理解文章内容。  
    2. 提取文章中的关键点和主要论点。  
    3. 根据提取的关键点创建文章大纲。  
    4. 只输出markdown格式的文章大纲,不要回答其他任何内容。  
    '''  

来吧,这下应该没什么问题了:

  
def article_summary(data, model_name='gemini-1.5-pro'):  
    messages = [  
        {'role': 'system', 'content': sys_prompt_kp},  
        {'role': 'user', 'content': data['content']},  
    ]  
    summary = unillm(model_name, messages)  
    return summary  

  1. 调用发送消息接口

最后,我们把上面两个函数打包一下:

  
def handle_url(content='', url=''):  
    # 处理公众号链接  
    if content:  
        content = json.loads(content)  
        url = content['url']  
    if 'weixin.qq.com' in url:  
        data = get_gzh_article(url, content_only=False)  
    else:  
        data = {}  
    summary = article_summary(data, model_name='gemini-1.5-flash')  
    return summary  

一旦判定消息类型为 urlLink,直接调用上面的 handle_url 进行处理,并将结果用上篇提到的发送消息接口进行返回。

注:后面发现,转发文章中的链接,简单的爬虫无法搞定:当前环境异常,完成验证后即可继续访问

所以:退而求其次,直接发送原文链接。

暂且先这么搞吧,小伙伴有其它方法的,欢迎评论区交流。

  1. 看看效果吧

先找一篇技术干货,把之前写的 Ollama 教程发给它:本地部署大模型?Ollama 部署和实战,看这篇就够了

picture.image

再来一篇宣传软文:

picture.image

怎么样?

写在最后

终于,给小爱装上了阅读理解神器,再也不用担心错过重要文章了。

不管是硬核技术文还是软萌广告文,链接丢给它,精华吐出来。

我不想读,但我想知道的必备神器!

当然,小爱还有无限想象空间,之前部署了很多 AI 服务,我打算慢慢接进来,把小爱打造成身边的超级助理!

大家有什么需求 or 想法,欢迎评论区交流。

如果本文对你有帮助,不妨点个免费的赞收藏 备用。


为了方便大家交流,新建了一个 AI 交流群,欢迎感兴趣的小伙伴加入。

小爱也在群里,想进群体验的朋友,公众号后台「联系我」即可,拉你进群。

👇 关注猴哥,快速入门AI工具

picture.image

# AI 工具:

本地部署大模型?看这篇就够了,Ollama 部署和实战

# AI应用** :**

弃坑 Coze,我把 Dify 接入了个人微信,AI小助理太强了

中国版 Whisper 来了,5分钟带你部署体验

# 效率工具:

电脑微信双开/多开?两种方法任你挑,1分钟搞定

0
0
0
0
评论
未登录
暂无评论