ai-goofish-monitor

GitHub
10.9k 1.5k 中等 1 次阅读 今天MITAgent图像开发框架
AI 解读 由 AI 自动生成,仅供参考

ai-goofish-monitor 是一款专为闲鱼平台打造的智能监控助手,旨在帮助用户从海量商品中高效锁定心仪好物。它解决了传统手动刷新效率低下、关键词匹配不够精准以及难以实时捕捉新上架优质商品的痛点。

该工具基于 Playwright 浏览器自动化技术与多模态 AI 模型构建,不仅支持通过自然语言描述需求来自动创建监控任务,还能深度分析商品图片与文本信息,实现比传统关键词更聪明的筛选。系统提供完善的 Web 可视化管理界面,用户可轻松配置多任务并发、设定价格与区域范围、管理多个账号及代理池,并支持通过微信、Telegram 等多种渠道接收即时通知。此外,它还具备定时调度与数据持久化功能,确保监控稳定运行。

ai-goofish-monitor 特别适合希望在闲鱼“捡漏”的普通买家、需要批量追踪市场行情的二手商家,以及希望研究电商数据采集与 AI 应用结合的开发者。其独特的"AI 驱动任务创建”与“多模态商品分析”能力,让监控过程更加智能化与人性化。项目支持 Docker 一键部署,降低了使用门槛,让用户能快速搭建属于自己的私人监控机器人。

使用场景

资深数码玩家老张急需在闲鱼蹲守一款刚发布且价格低于官网 8 折的限量版机械键盘,但面对海量杂乱的个人卖家信息,他必须时刻刷新页面才能不错过“漏网之鱼”。

没有 ai-goofish-monitor 时

  • 人工盯屏效率极低:需要每隔几分钟手动刷新搜索页,耗费大量工作时间,且极易因网络延迟或手速慢而错失秒删好物。
  • 筛选规则僵化死板:仅能依靠简单的关键词匹配,无法识别商品描述中的隐含信息(如“仅拆封”、“箱说全”),常把二手翻新货误当新品。
  • 多账号切换繁琐:为了规避平台风控或扩大搜索范围,手动切换多个闲鱼账号操作复杂,容易触发验证码导致监控中断。
  • 错过最佳入手时机:由于无法做到 7x24 小时实时监控,往往在发现心仪商品时,卖家早已下架或被其他买家拍走。

使用 ai-goofish-monitor 后

  • AI 驱动智能研判:利用多模态模型深度分析商品图片与描述,精准识别“全新未拆”、“个人自用”等细微特征,自动过滤商家与翻新货。
  • 自然语言定义任务:老张只需用大白话输入“找 8 折以下带原盒的限量版键盘”,系统即可自动生成复杂的筛选策略与 Prompt,无需编写代码。
  • 多任务并发与自动轮换:后台同时运行多个监控任务,自动调度不同账号与代理 IP 进行抓取,确保持续稳定运行且不触发风控。
  • 毫秒级即时通知:一旦匹配到目标商品,系统立即通过企业微信或 Telegram 推送链接,让老张能在第一时间完成下单锁定。

ai-goofish-monitor 将原本耗时耗力的“人肉蹲守”转变为智能化的自动猎取,让用户从海量噪音中精准捕获高价值目标。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notesDocker 部署推荐,镜像已内置 Chromium 无需宿主机安装浏览器;本地开发需手动安装 Playwright 及 Chromium 驱动;需配置 OpenAI 兼容的 API Key 及多模态模型;Web UI 默认端口 8000;支持通过 Chrome 扩展导出闲鱼登录态。
python3.10+
Playwright
Chromium
FastAPI
Uvicorn
Node.js (v20.18.3+)
npm
ai-goofish-monitor hero image

快速开始

闲鱼智能监控机器人

英文 README

基于 Playwright 和 AI 的闲鱼多任务实时监控工具,提供完整的 Web 管理界面。

核心特性

  • Web 可视化管理: 任务管理、账号管理、AI 标准编辑、运行日志、结果浏览
  • AI 驱动: 自然语言创建任务,多模态模型深度分析商品
  • 多任务并发: 独立配置关键词、价格、筛选条件和 AI Prompt
  • 高级筛选: 包邮、新发布时间范围、省/市/区三级区域筛选
  • 即时通知: 支持 ntfy.sh、企业微信、Bark、Telegram、Webhook
  • 定时调度: Cron 表达式配置周期性任务
  • 账号与代理轮换: 多账号管理、任务绑定账号、代理池轮换与失败重试
  • Docker 部署: 一键容器化部署

截图

监控概览 任务管理 结果查看 通知推送

🐳 Docker 部署(推荐)

git clone https://github.com/Usagi-org/ai-goofish-monitor && cd ai-goofish-monitor
cp .env.example .env
vim .env # 填写相关配置项
docker compose up -d
docker compose logs -f app
docker compose down

如果镜像无法访问或下载速度慢,可尝试使用加速:


docker pull ghcr.nju.edu.cn/usagi-org/ai-goofish:latest
docker tag ghcr.nju.edu.cn/usagi-org/ai-goofish:latest ghcr.io/usagi-org/ai-goofish:latest
docker compose up -d
  • 默认 Web UI 地址:http://127.0.0.1:8000
  • Docker 镜像已内置 Chromium,无需宿主机额外安装浏览器。
  • 官方镜像地址:ghcr.io/usagi-org/ai-goofish:latest
  • 更新镜像:docker compose pull && docker compose up -d
  • 如果你修改了 .env 中的 SERVER_PORT,请同步更新 docker-compose.yaml 里的端口映射。
  • docker-compose.yaml 默认会把 SQLite 主库挂载到 ./data:/app/data,数据库文件默认为 data/app.sqlite3
  • 目前默认持久化这些目录:
    • data/ SQLite 主存储(任务、结果、价格历史)
    • state/ 登录状态 cookie 文件
    • prompts/ 任务提示词
    • logs/ 运行日志
    • images/ 商品图片与任务临时图片目录
    • config.jsonjsonl/price_history/ 首次升级到 SQLite 时用于兼容导入的旧数据源

数据存储与迁移

  • 当前在线主存储为 SQLite,默认路径 data/app.sqlite3
  • 可通过环境变量 APP_DATABASE_FILE 自定义数据库路径;Docker 默认设置为 /app/data/app.sqlite3
  • 应用启动时会自动建库建表,并尝试从旧的 config.jsonjsonl/price_history/ 导入一次历史数据
  • state/prompts/logs/images/ 仍然是文件系统目录,不在 SQLite 中
  • 商品图片会临时落到 images/task_images_<task_name>/,任务结束后默认会清理
  • 首次升级完成并确认 data/app.sqlite3 中数据正确后,可视部署方式决定是否继续保留旧的 config.jsonjsonl/price_history/ 挂载

最少配置

变量 说明 必填
OPENAI_API_KEY AI 模型 API Key
OPENAI_BASE_URL OpenAI 兼容接口地址
OPENAI_MODEL_NAME 支持图片输入的模型名称
WEB_USERNAME / WEB_PASSWORD Web UI 登login账号密码,默认 admin/admin123

其余配置见下方“配置说明”。

第一次使用

  1. 打开默认 Web UI http://127.0.0.1:8000 并登录。
  2. 进入“闲鱼账号管理”,使用 Chrome 扩展 导出并粘贴闲鱼登录态 JSON。
  3. 登录态文件会保存到 state/ 目录,例如 state/acc_1.json
  4. 回到“任务管理”,创建任务并绑定账号后即可运行。

创建第一个任务

  • AI判断:填写“详细需求”,提交后会弹出独立进度弹窗,后台异步生成分析标准。
  • 关键词判断:填写关键词规则,任务会直接创建,不经过 AI 生成流程。
  • 区域筛选:已改为省 / 市 / 区三级选择器,数据基于闲鱼页面抓取快照内置。

用户使用说明

点击展开 Web UI 功能说明

任务管理

  • 支持 AI 创建、关键词规则、价格范围、新发布范围、区域筛选、账号绑定、定时规则。
  • AI 任务创建是后台 job 流程,提交后会打开单独的进度弹窗。
  • 区域筛选会显著缩小结果集,默认留空。

账号管理

  • 支持导入、更新、删除闲鱼账号登录态。
  • 每个任务可指定账号,也可不绑定并交给系统自动选择。

结果查看与运行日志

  • 结果页和导出功能现在从 SQLite 查询,不再直接扫描 jsonl 文件。
  • 日志页按任务展示运行过程,便于排查登录态失效、风控和 AI 调用问题。

系统设置

  • 可查看系统状态、编辑 Prompt、调整代理与轮换相关配置。

开发者开发

环境要求

  • Python 3.10+
  • Node.js + npm(本地验证 Node v20.18.3 可完成前端构建)
  • Playwright CLI 与 Chromium,首次运行前建议执行 python3 -m pip install playwright && python3 -m playwright install chromium
  • Chrome / Edge 浏览器(Linux 环境也可使用 Chromium;start.sh 会先检查浏览器是否存在)
git clone https://github.com/Usagi-org/ai-goofish-monitor
cd ai-goofish-monitor
cp .env.example .env

一键启动

chmod +x start.sh
./start.sh

start.sh 会先检查 Playwright CLI 和浏览器前置条件;在前置条件满足后自动安装项目依赖、构建前端、复制构建产物并启动后端。

手动启动

# 后端
python -m src.app
# 或
uvicorn src.app:app --host 0.0.0.0 --port 8000 --reload

# 前端
cd web-ui
npm install
npm run dev
  • FastAPI 启动时会自动初始化 SQLite,并在首次启动时尝试导入旧的 config.json/jsonl/price_history
  • spider_v2.py 默认从 SQLite 读取任务;只有显式传入 --config <path> 时才会走 JSON 配置兼容模式
  • 默认数据库路径为 data/app.sqlite3
  • Vite 开发服务器会将 /api/auth/ws 代理到 http://127.0.0.1:8000
  • npm run build 先生成 web-ui/dist/start.sh 再复制到仓库根目录 dist/
  • FastAPI 负责提供根目录 dist/index.htmldist/assets/
  • ./start.sh 默认输出访问地址 http://localhost:8000 和 API 文档 http://localhost:8000/docs

测试与校验

PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest
cd web-ui && npm run build

任务创建 API

点击展开 API 行为说明
  • POST /api/tasks/generate
    • decision_mode=ai:返回 202job,需要继续轮询进度。
    • decision_mode=keyword:直接返回已创建任务。
  • GET /api/tasks/generate-jobs/{job_id}:查询 AI 任务生成进度。
  • POST /auth/status:校验 Web UI 登录凭据。

配置说明

点击展开常用配置项

AI 与运行时

  • OPENAI_API_KEY / OPENAI_BASE_URL / OPENAI_MODEL_NAME:AI 模型接入必填项。
  • PROXY_URL:为 AI 请求单独指定 HTTP/SOCKS5 代理。
  • RUN_HEADLESS:是否以无头模式运行爬虫;Docker 中应保持 true
  • SERVER_PORT:后端监听端口,默认 8000
  • LOGIN_IS_EDGE:本地环境可切换为 Edge 内核;Docker 镜像未内置 Edge,容器内会固定使用 Chromium。
  • PCURL_TO_MOBILE:是否将 PC 商品链接转换为移动端链接。

通知

  • NTFY_TOPIC_URL
  • GOTIFY_URL / GOTIFY_TOKEN
  • BARK_URL
  • WX_BOT_URL
  • TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID / TELEGRAM_API_BASE_URL
  • WEBHOOK_*

代理轮换与失败保护

  • PROXY_ROTATION_ENABLED
  • PROXY_ROTATION_MODE
  • PROXY_POOL
  • PROXY_ROTATION_RETRY_LIMIT
  • PROXY_BLACKLIST_TTL
  • TASK_FAILURE_THRESHOLD
  • TASK_FAILURE_PAUSE_SECONDS
  • TASK_FAILURE_GUARD_PATH

完整示例见 .env.example

Web 界面认证

点击展开认证说明
  • Web UI 当前使用登录页收集账号密码,并通过 POST /auth/status 校验。
  • 登录成功后,前端会在浏览器本地保存登录状态,用于路由守卫和 WebSocket 初始化。
  • 默认账号密码为 admin/admin123,生产环境请务必修改。

🚀 工作流程

下图描述了单个监控任务从启动到完成的核心处理逻辑。主服务运行于 src.app,按用户操作或定时调度启动一个或多个任务进程。

graph TD
    A[启动监控任务] --> B[选择账号/代理配置];
    B --> C[任务: 搜索商品];
    C --> D{发现新商品?};
    D -- 是 --> E[抓取商品详情 & 卖家信息];
    E --> F[下载商品图片];
    F --> G[调用AI进行分析];
    G --> H{AI是否推荐?};
    H -- 是 --> I[发送通知];
    H -- 否 --> J[保存记录到 SQLite];
    I --> J;
    D -- 否 --> K[翻页/等待];
    K --> C;
    J --> C;
    C --> L{触发风控/异常?};
    L -- 是 --> M[账号/代理轮换并重试];
    M --> C;

常见问题

点击展开常见问题

AI 任务创建为什么不是立即完成?

AI 模式会先生成分析标准,再创建任务。现在该流程已改为后台 job,提交后会显示独立进度弹窗,避免表单长时间卡住。

区域筛选为什么默认建议留空?

区域筛选会显著减少搜索结果,适合明确只看某个区域的场景。若你先验证整体市场,建议先不填。

本地页面打开后提示前端构建产物不存在?

说明根目录 dist/ 缺失。可直接执行 ./start.sh,或先在 web-ui/ 里执行 npm run build,再确认构建产物已复制到仓库根目录。

./start.sh 为什么提示缺少 Playwright 或浏览器?

这是脚本的前置检查。请先安装 Playwright CLI 与 Chromium,并确保系统中可用 Chrome / Edge(Linux 环境也可用 Chromium),然后重新执行 ./start.sh

致谢

点击展开致谢内容

本项目在开发过程中参考了以下优秀项目,特此感谢:

以及感谢LinuxDo相关人员的脚本贡献

以及感谢 LinuxDo 社区。

以及感谢 ClaudeCode/Gemini/Codex 等模型工具,解放双手 体验Vibe Coding的快乐。

注意事项

点击展开注意事项详情
  • 请遵守闲鱼的用户协议和robots.txt规则,不要进行过于频繁的请求,以免对服务器造成负担或导致账号被限制。
  • 本项目仅供学习和技术研究使用,请勿用于非法用途。
  • 本项目采用 MIT 许可证 发布,按"现状"提供,不提供任何形式的担保。
  • 项目作者及贡献者不对因使用本软件而导致的任何直接、间接、附带或特殊的损害或损失承担责任。
  • 如需了解更多详细信息,请查看 免责声明 文件。

星标历史

星标历史图表

Alt

版本历史

v1.32026/03/09
v.1.22026/03/04
v1.12026/03/03
v1.0.02026/01/12
2.32026/03/18
2.22026/03/16
v2.12026/03/13
v2.02026/03/11

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|6天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

151.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|2天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|6天前
插件开发框架