当前位置:首页 » 《随便一记》 » 正文

Chatgpt接入Csdn:实现自动回复、评论、点赞

20 人参与  2023年04月16日 12:23  分类 : 《随便一记》  评论

点击全文阅读


背景

起初,我只是想自己弄个工具,用来处理一下大佬们的三连支持,后面我发现大家都在讨论chatgpt,于是我将自动回复和评论消息接入到了Csdn中,不知道这篇文章能不能发出来,代码的话暂时不开源,后面完善了会考虑客户端形式分享,今天只是分享一下逻辑,欢迎大家关注支持我!

已完成的工作

20230405

支持点赞、收藏回访(被动模式) 关注回访(需要发表过博客) 评论回访

20230406优化

私信检测到群发消息自动三连/满足模板设定给予三连触发 优化检测模式,防止出现多触发情况 为了防止操作额度不够,只处理最新发表的博客(第一条),不在继续往下操作 暂未对动态blink进行调整,理论可以 评论多评检测(防止有人故意而为之)

20230408

接入chatgpt,可对话、可自动评论

评论自动回复

今天刚刚接入chatgpt,用的是3.5的接口,没用api和密钥,用的是github某个项目的,可直接使用,替换掉原来的固定模式

原固定:

# content = "优质好文,感谢博主分享《" + blog_list['data']['list'][0]['title'] + "》!欢迎查看我新发布的文章呀,code:" + str(random_)  # 评论

新的方式:
通过构造“请写一条关于xxxxx为标题的评价,50字数以”
发送请求给chatgpt接口,并等待返回数据,这里因为接口是一个字一个字的返回,
在这里插入图片描述

所以需要用到

for line in response.iter_lines():        if line:            data = json.loads(line.decode("utf-8"))            # 对Python对象进行相应的处理            # print('接口返回的数据:', data)    return data

来对总的数据整合处理,然后再返回评价

 text_val = "请写一条关于“" + blog_list['data']['list'][0]['title'] + "”为标题的评价,50字数以内" content = chatgpt(text_val)

通过接口完成对该文章的评论请求

comment_result = comment_sub(content,blog_list['data']['list'][0]['articleId'])

检测文章互动数据

现在支持动态、文章点赞/收藏的监控,并能按需处理对方的文章,也就是说,你点我一次赞,我也会回你一次,在使用过程中发现了某博主会重复对我的某一篇文章,取消点赞再回赞的做法,这样就可以一直帮他打工了,考虑到额度限制,于是我加了评论检测,对于已经评论过的文章,不在处理

   print("正在检测是否重复评论")                            flages = "0"  # 0评论1不                            get_comment_list_result = get_comment_list_(blog_list['data']['list'][0]['articleId'])                            if get_comment_list_result['code'] == 200:                                for comment_info in get_comment_list_result['data']['list']:                                    if comment_info['info']['userName'] == UserName:                                        # 我已经评论过了,跳出本次                                        flages = "1"                                        break                                if flages == "0":                                    #                                    print("检测到:未评论");                                    text_val="请写一条关于“"+blog_list['data']['list'][0][                                        'title']+"”为标题的评价,50字数以内"                                    text=chatgpt(text_val)                                    random_ = random.randint(0, 9)

若检测到有“我”的账号评论的消息直接pass处理

对于收藏和点赞也是一样

消息检测

针对消息这一块,数据读取到了不代表,消息已被查看,在最开始使用的时候,因为没对这个做处理导致消息轰炸了某位博主,十分抱歉

 im_history = get_sixin_history(im_list['data'][i]['username'], millis)                        if im_history['code'] == "0":                            data = im_history['data']                            last_message_toUsername = data[0]["toUsername"]                            last_message_message = data[0]["messageBody"]                            if last_message_toUsername != UserName:                                print("最后一条消息不是对方发的")                                pass                            else:                                print("检测是否三连")                                text = last_message_message                                if text.find("http") != -1:                                    print("text中包含http")

检测到http连接信息,开始自动访问对方的最新博客信息,完成三连操作

自动回关

回关,我这里做的策略是,没有发表过文章的用户不采取关注,因为没意义

  follow_data_result = follow_list['data']['resultList']                for i in range(0, message['data']['follow']):                    print(f"第{i + 1}条,id:{follow_data_result[i]['id']}|账户{follow_data_result[i]['content']['username']}在{follow_data_result[i]['time']}关注了你,正在解析对方数据中..")                    get_userinfo_list = get_userinfo(follow_data_result[i]['content']['username'])                    if get_userinfo_list['code'] == 200:                        print("个人信息查询成功-判断博客是否有发布")                        if get_userinfo_list['data']['blog'] == 0:                            print("不满足发表文章-不关注")                            pass                        else:                            follow_list = follow(follow_data_result[i]['content']['username'])                            if follow_list['code'] == "0":                                print("回关成功")                                text = "已自动回关,时间:" + datetime.datetime.now().strftime(                                    '%Y-%m-%d  %H:%M:%S')                                im_sends(follow_data_result[i]['content']['username'], text)                            else:                                print("未知返回码,标识42546")                                pass

点击全文阅读


本文链接:http://zhangshiyu.com/post/59661.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1