>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Java

使用 XianYuAssistant 自动化数字产品销售

在市场上销售数字密钥、访问码和小件二手物品很快就会变成单调的例行工作。买家在凌晨三点付款购买产品,期待即时交付,但你正在睡觉。结果,店铺评分下降,客户转向竞争对手。

开源仓库 XianYuAssistant 的作者决定为这个中文平台闲鱼(阿里巴巴的二手市场)解决这个问题。他们创建了一个功能完整的自托管组合,可以即时接收传入的消息,通过 AI 响应买家,并从库存中自动交付促销码或文件。

为什么开发者应该关注这个项目

即使你不在闲鱼上销售任何东西,这个项目的技术实现也很有趣。它是基于 Java 21 和 Spring Boot 3.5.7 的全新技术栈,将内置的神经网络向量搜索、浏览器自动化和 WebSocket 工作带入到了激进的反欺诈条件下的真实生产环境。

平台网站积极防御机器人。为了绕过限制,作者采用了综合方法:

  • 使用 Playwright 的无头浏览器进行二维码登录。
  • 模拟请求之间的真实延迟和令牌刷新。
  • 集成本地 SQLite 数据库,在单个文件中存储向量。
  • 基于 Spring AI 和通义千问模型的智能自动回复器,支持知识库搜索(RAG)。

自动化消息和密钥交付

主要工作流程依赖于持续的 WebSocket 通道监控。一旦买家为商品付款,服务会立即检测到"已付款"状态,并从内部虚拟商品库存中检索匹配的密钥。

当买家询问"如何激活?"或"在俄罗斯能用吗?"等常规问题时,服务不会只发送模板。你可以配置基于正则表达式的规则或接入语言模型。每个产品都有包含描述和说明的向量数据库。神经网络会提取相关的文本片段并生成自然的回复。

对抗封禁和滑块验证码

这些项目最具挑战性的方面是防止平台因使用自动化而封禁账户。XianYuAssistant 实现了一个有趣的会话轮换机制:

  1. 每 30 分钟通过后台端点调用刷新 Cookie。
  2. 令牌 _m_h5_tk 以 1.5 到 2.5 小时之间的浮动间隔重置。
  3. WebSocket 令牌每 10-14 小时更换一次。
  4. 多个账户的操作之间保持 2-5 秒的暂停。

如果平台触发滑块验证码,系统会记录此事件并在控制面板中显示提示。用户可以通过浏览器手动完成验证,并注入新的 Cookie 而无需完全重启机器人。

架构和技术栈

该项目由单体后端和 Vue 3.5 前端与 Element Plus 组成。所有内容都在单个 Docker 容器中运行,无需单独的数据库——SQLite 通过挂载指令嵌入。

值得注意的后端组件包括:

  • Playwright Java:用于渲染登录页面和扫描二维码。
  • Spring AI 1.1.4:处理与 LLM 和向量存储的集成,无需 Pinecone 或 Qdrant 等第三方服务。
  • ZXing 和 MessagePack:用于条形码处理和二进制协议消息解码。

界面是响应式的,因此即使从手机回复消息或查看交付日志也很方便。

值得安装吗

XianYuAssistant 是面向在亚洲市场交易者的专用工具。然而,仓库的源代码是使用 Java 21、现代 Spring Boot 和 Vue 3 编写机器人的优秀教程。

如果你对如何在本地 SQLite 文件上组织 RAG 搜索、处理二进制 WebSocket 消息或设置会话轮换以避免封禁感兴趣,这个项目绝对值得仔细研究。

相关项目