【分享】用java和pathon实现小红书(Red Booklet)客服自动回复功能、技术实现分析

news/2024/11/25 0:53:43/

技术栈:python、java、android,进程管理、socket通信

客户需求:

客户需要在Red Booklet平台做一个可以24小时自动回复用户私信、评论、回关用户等行为的客服软件。他说他们公司有50个小红书号,十几个客服,急需一款代替或辅助人工客服的软件进行一些日常的客服工作。

我调研后发现,Red Booklet目前在2B这块还不成熟,目前平台主要还是偏2C业务,但是好多2B企业在上面引流,某种意义来说,Red Booklet已经出现了2B业务了。

我大概整理了一下客户具体需求如下:

一、私信聊天。

1、24小时实时回复用户私信消息。因为客服也是要下班,所以下班后是一个工作盲点。

2、能够对用户私信的内容进行针对性回复。匹配关键字进行预设回复。(往深的做也可以接入AI回复)

二、关注

1、24小时实时对用户的关注要进行回关

2、回关后还要给用户主动发二条或以上私信(小红书互相关注是可以发多条的)

三、评论

1、24小时实时回复用户评论,可以针对关键字进行预设回评内容

2、回评后需要主动关注用户

3、关注用户后,还需要主动给用户发一条私信

要点

软件开启后就需要做到全天运行,不需要人工再进行任何操作。

花了点时间还是搞出来了。先看一下测试视频

客服机器人自动回复私信

技术实现思路:

软件是一个用安卓开始的app,使用安卓线程管理、页面分析技术,以及通信抓包分析技术。

使用了java调用底层服务支持,使用了python做了大数据分析。

以下是代码

<vertical><card w="*" h="40" margin="10" cardCornerRadius="2dp"cardElevation="1dp" gravity="center_vertical"><Switch id="autoService" text="启动无障碍服务" checked="{{auto.service != null}}" padding="18 8 8 8" textSize="15sp" /><View bg="#4caf50" h="*" w="10" /></card>{/* <horizontal marginTop="10"><Switch paddingLeft="20"  id="only_new_store" text="只发新店"  checked="{{only_new_store}}"  w="auto"  /><Switch paddingLeft="50"  id="only_unsend_store" text="只发未发送过的" checked="{{only_unsend_store}}"  w="auto" /></horizontal> */}{/* <horizontal marginTop="10"> */}{/* <text textColor="#000000" paddingLeft="20" text="间隔(秒)" w="auto" />  <input id="interval_time" inputType="number" text="10" w="150" gravity="center" /> */}{/* <text textColor="#000000" paddingLeft="20" text="秒,到" w="auto" />   */}{/* <input id="max_time" inputType="number" hint="数字" w="150" gravity="center" /><text textColor="#000000" paddingLeft="20" text="秒" w="auto" /> */}{/* </horizontal> */}{/* <horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="销量低于" w="auto" />  <input id="sale_num_lt" inputType="number" text="10" w="150" gravity="center" /><text textColor="#000000" paddingLeft="20" text="发" w="auto" />  </horizontal> */}<horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="回复评论:" w="auto" />  <input paddingLeft="20"   id="replay_comment_content" line='5' inputType="textMultiLine" w="*" hint="回复内容"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="回评后私信:" w="auto" />  <input paddingLeft="20"   id="replay_comment_message" line='5' inputType="textMultiLine" w="*" hint="私信内容"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="回关私信1:" w="auto" /><input paddingLeft="20"   id="message1" line='5' inputType="textMultiLine" w="*" hint="内容一"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="回关私信2:" w="auto" /><input paddingLeft="20"   id="message2" line='5' inputType="textMultiLine" w="*" hint="内容二"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="回关私信3:" w="auto" /><input paddingLeft="20"   id="message3" line='5' inputType="textMultiLine" w="*" hint="内容三"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="私信关键字1:" w="auto" />  <input paddingLeft="20"   id="keyword1" line='5' inputType="textMultiLine" w="*" hint="多个关键字用逗号、隔开"  /></horizontal>  <horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="关键字回复1:" w="auto" />  <input paddingLeft="20"   id="replay_keyword1" line='5' inputType="textMultiLine" w="*" hint="回复内容"  /></horizontal><horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="私信关键字2:" w="auto" />  <input paddingLeft="20"   id="keyword2" line='5' inputType="textMultiLine" w="*" hint="多个关键字用逗号、隔开"  /></horizontal>   <horizontal marginTop="10"><text textColor="#000000" paddingLeft="20" text="关键字回复2:" w="auto" />  <input paddingLeft="20"   id="replay_keyword2" line='5' inputType="textMultiLine" w="*" hint="回复内容"  /></horizontal>    <horizontal><button id="start" text="开始运行" style="Widget.AppCompat.Button.Colored" w="*" margin="10" /></horizontal><horizontal w="*" h="*"><button id="save" text="保存设置"  layout_gravity="center" style="Widget.AppCompat.Button.Colored" margin="10" />{/* <button id="reset" text="恢复默认" style="Widget.AppCompat.Button.Colored" margin="10" /> */}<button id="stop" text="停止运行"  layout_gravity="right" style="Widget.AppCompat.Button.Colored" margin="10" /></horizontal></vertical>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="16dp"android:paddingRight="16dp"android:orientation="vertical" ><Buttonandroid:id="@+id/supabutton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="I'm a button" /><ImageButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:contentDescription="A tiny Android icon"android:src="@drawable/baseline_android_24"app:tint="#ff0000" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableStart="@drawable/baseline_android_24"android:drawablePadding="4dp"android:drawableTint="#ff0000"android:text="I'm a button with an icon" /></LinearLayout>

    public class MyCustomJavaControlService extends ControlsProviderService {private final int LIGHT_ID = 1337;private final String LIGHT_TITLE = "My fancy light";private final int LIGHT_TYPE = DeviceTypes.TYPE_LIGHT;private final int THERMOSTAT_ID = 1338;private final String THERMOSTAT_TITLE = "My fancy thermostat";private final int THERMOSTAT_TYPE = DeviceTypes.TYPE_THERMOSTAT;...}

特别声明:本技术基于安卓系统原有功能开发,没有使用破解之类的技术,一切合法合规。 


http://www.ppmy.cn/news/84153.html

相关文章

前端架构师-week7-引子:突破瓶颈,前端破局之路

复杂项目 业务的复杂度 交互的复杂性 数据结构和状态的复杂性 多项目互相依赖的复杂性 —— 组件库、数据状态、第三方库 打包 性能优化 第三方库使用和调研&#xff0c;以及二次开发 流程的复杂度 git flow lint 工具 单元测试 commit 信息 PR review CI/CD CI/CD&#xff1…

Typora的自定义主题

Typora的自定义主题 修改我们的Typora主题1. 在文件夹C:\Users\Peter\AppData\Roaming\Typora\themes中&#xff0c;加入下面的css文件即可&#xff0c;命名为my.css。my.css内容 2. 选择你的主题为my3. 效果如图 注意&#xff1a;如果你的字体没有完全像我一样&#xff0c;是因…

什么是垂直扩容和水平扩容

垂直扩容和水平扩容是架构设计中常用的两种扩容方式&#xff0c;它们各有优势&#xff0c;应根据具体场景选择合适的扩容方式。 1.垂直扩容 垂直扩容是通过增加单个节点的处理能力来提高整个系统的性能&#xff0c;通常是通过增加服务器的硬件配置、升级CPU、内存、硬盘等来实…

隐私计算论文合集「联邦学习系列」第2期

前言&#xff1a; 隐语awesome-PETs&#xff08;PETs即Privacy-Enhancing Technologies &#xff0c;隐私增强技术&#xff09;精选业内优秀论文&#xff0c;按技术类型进行整理分类&#xff0c;旨在为隐私计算领域的学习研究者提供一个高质量的学习交流社区。awesome-pets包含…

不限提问次数,免费无限制使用ChatGPT的手把手详细教程,国内最新免费使用ChatGPT教程

目录 一、使用效果 二、注册使用教程 1.打开Edge浏览器扩展 2.选择Edge浏览器外接程序 3.搜索WeTab 4.进入管理扩展 5.启用扩展 6.进入WeTab新标签页 7.打开Chat AI 8.注册 9.使用 ChatGPT是OpenAI推出的人工智能语言模型&#xff0c;能够通过理解和学习人类的语言来…

前端卷死java之面向对象进阶篇【更新中】

12-面向对象进阶 static 含义&#xff1a;static表示静态&#xff0c;是java中的一个修饰符&#xff0c;可以修饰成员方法&#xff0c;成员变量&#xff1b;被static修饰的成员变量叫做静态变量&#xff0c;被修饰的成员方法叫做静态方法特点&#xff1a;被该类所有对象共享&…

kafka的rebalance机制

1.什么是rebalance 再平衡&#xff1a;Reblance是一种协议&#xff0c;规定了一个Consumer Group下所有Consumer如何达成一致&#xff0c;来分配订阅Topic的每个分区&#xff0c;尽量让每个消费者分配到相对均匀的分区&#xff0c;使Consumer的资源都能得到充分利用&#xff0c…

【阿里云】阿里云OSS对象存储— 开通OSS服务、搭建OSS环境、快速入门

目录 一、开通OSS服务 二、搭建OSS环境 1、创建Bucket存储空间 2. 创建文件夹上传图片 3. RAM 访问控制 三、快速入门 1.下载SDK 2.创建存储空间[可选] 3.上传图片 一、开通OSS服务 二、搭建OSS环境 1、创建Bucket存储空间 选择 Bucket列表&#xff0c;进行Bucket创建…