joy-cli/docs/ops/manhuang-channels-and-quote-api.md
feibisi 2c6281d041 feat(manhuang): supply-chain dashboard, probes, and side-cache data
Expand manhuang collect/UI (tabs, markets, guishi/quote probes), add
configs and launchd helpers, ops handbooks, and scripts for channel
validation and price/threat enrichment. Keys stay in keys.env.example only.
2026-07-13 02:08:29 +08:00

7.7 KiB
Raw Permalink Blame History

蛮荒 · 渠道目录 + Quote API + 社区价源

2026-07-12 · 灰市探针 / 社区公开 API / free+MSRP / 本地聚合 / ChangeDetection
总手册:manhuang-handbook.md
校验:python3 scripts/manhuang/validate-channels.py
全量核实:manhuang-full-audit-2026-07-12.md

目标

把「店 + 中转 + 接码 + GitHub 周更表 + free 档 + 官方 token 锚」收成统一缓存,面板与脚本只读本地/内网 API不在 browser 里锤外网。

架构

外源控频、launchd
  ├─ GGSel / FunPay / Plati HTML     → probe-ai-account-quotes.py
  ├─ awesome-ai-api-proxy JSON       → probe-community-prices.py
  ├─ OpenRouter /api/v1/models       → 同上
  ├─ 5sim /v1/guest/prices           → 同上(接码主路径 · 免 key
  ├─ mnfst free data.json            → 同上 → free-llm-lists.json
  ├─ LiteLLM model_prices JSON       → 同上 → msrp-litellm.json
  ├─ providers.yaml (active)         → probe-named-relays.py 动态候选
  ├─ named relays HTTP               → probe-named-relays.py
  └─ ChangeDetection ai-team         → probe-changedetection.py
           │
           ▼
  ~/.cache/manhuang/{quotes,relays,changedetection}/
           │
     ┌─────┴──────┐
     ▼            ▼
 collect_manhuang   quote-aggregator.py :8877
     │            /v1/quotes · /v1/msrp · /v1/free
     ▼
 joy dashboard UI

本地 Quote API

cd ~/Projects/joy-cli
python3 scripts/manhuang/quote-aggregator.py          # 127.0.0.1:8877
curl -s http://127.0.0.1:8877/v1/summary | jq .
curl -s 'http://127.0.0.1:8877/v1/quotes?demand=1' | jq '.n,.summary.demand_coverage'
curl -s http://127.0.0.1:8877/v1/community | jq '{overlay_n, free_llm, msrp_keys: (.msrp_anchor|keys)}'
curl -s http://127.0.0.1:8877/v1/msrp | jq '.anchors|keys'
curl -s http://127.0.0.1:8877/v1/free | jq '.providers_n // .mnfst.providers_n'
curl -s http://127.0.0.1:8877/v1/channels | jq '.obscure_notes'
路径 含义
/health 探活
/v1/summary 覆盖率 KPIdemand_with_market_n · free · msrp
/v1/quotes?sku= / ?demand=1 归一化货架视图
/v1/relays 具名中转 + 动态候选探活结果
/v1/community GitHub/5sim overlay + free/msrp 字段
/v1/msrp LiteLLM 官方 token 价锚
/v1/free 永久 free 档目录摘要
/v1/changedetection CD 状态
/v1/channels 渠道目录 JSON
/v1/product-types 产品类型

只读、无密钥、默认真机回环。要给集群:--host 0.0.0.0 + 防火墙仅内网(先问用户)。

改脚本后需重启 launchd

launchctl kickstart -k gui/$(id -u)/com.feibisi.manhuang-quote-api

渠道目录

  • 仓库:configs/manhuang/channels.json
  • 可选覆盖:~/.config/manhuang/channels.json

目录块

说明
marketplaces GGSel/FunPay/… + catalog_only 聚合类
sms_apis 5sim activeSMS-Activate shutdown;其余 watch_only
relay_price_feeds awesome JSON · OpenRouter · LiteLLM · providers.yaml · bltcy…
named_relay_stations 具名中转(down = 核实不可达)
free_llm_lists mnfst 机读 + cheahjs 等
demand_sku_ids demand-first 白名单
obscure_notes 给代理的短提示

status 与货架

见手册 §8。要点

  • shutdown / dead / exit_scam不进 heishi
  • down → 保留目录但勿当主采购中转
  • SMS-Activate 不是 needs_key,是 已停运

接码(务必读)

状态 用法
5sim guest active 唯一主路径 · 免 key 实时价
SMS-Activate shutdown2025-12 官方停运) 禁止充值;冒充新站=诈骗;勿接 API key
SMS-Man / Grizzly watch_only 仅目录观察

GitHub 公开价源

用途 风险
howardpen9/awesome-ai-api-proxy prices.latest.json 中转 token 价 ~3000 条 中转非官方;周更
同 repo providers.yaml 站名单 → relays 动态候选 收录≠背书
OpenRouter /api/v1/models 聚合商实时价 官方
LiteLLM model_prices_and_context_window.json 官方/主流 token MSRP 锚 社区维护价库
5sim guest prices 接码实时 免 key
mnfst/awesome-free-llm-apis data.json 永久 free 档 辅线接口
cheahjs/free-llm-api-resources free/试用目录 README 级
zukixa/cool-ai-stuff 社区列表 ToS/逆向风险,不进主采购

不做主路径:暗网镜像、量产号工具、不可审计逆向网关、已停运品牌充值。

社区探针输出

文件 内容
~/.cache/manhuang/quotes/community-prices.json overlay + free_llm + msrp_anchor + sources
~/.cache/manhuang/quotes/msrp-litellm.json 锚价明细
~/.cache/manhuang/quotes/free-llm-lists.json free 目录
~/.cache/manhuang/relays/status.json 中转探活
~/.cache/manhuang/relays/candidates-from-providers.json providers.yaml 扩容名单

probe-named-relays.pystaticrelays.json+ 最多 10 条 dynamicactive、非 reverse、非 github 文档站)。

ChangeDetectionai-team :5000

# ~/.config/manhuang/keys.env不进 git
# CHANGEDTECTION_URL=http://10.211.55.107:5000
# CHANGEDTECTION_API_KEY=...

python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
python3 scripts/manhuang/probe-changedetection.py
说明
密钥 CD datastore settings.application.api_access_token
代理坑 Mac Python 不认 NO_PROXY CIDR;脚本对 10.x 强制直连
稳定性 NUMBER_OF_WORKERS=2 + healthcheck
watches 价/货架 + 鬼市浅水 + shops + GitHub rawprices/providers/litellm/mnfst/cheahjs

自建栈说明:manhuang-selfhost-catalog.md · 不要在 Mac/scout 再起一份 CD。

Quote API launchd

cp configs/launchd/com.feibisi.manhuang-quote-api.plist ~/Library/LaunchAgents/
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.feibisi.manhuang-quote-api.plist
curl -s http://127.0.0.1:8877/v1/summary | jq .demand_coverage

Labelcom.feibisi.manhuang-quote-api · 仅 127.0.0.1:8877 · KeepAlive

价旗标

条件 UI
possible_bundle 灰市 ≥ MSRP×1.5 「可能捆绑」
suspiciously_cheap 灰市 ≤ MSRP×0.15 且 MSRP≥10 「过低·慎」

定时

com.feibisi.manhuang-quotesrun-quote-probe.sh 大致顺序:

  1. 智能 quotesdemand-first / rotate / skip
  2. named-relays含 providers 动态)
  3. community-prices + merge
  4. changedetection / ensure-cd
  5. scout 鬼市ssh
  6. tab-caches
  7. notify-chain / brand
  8. pipeline-last.json

KPI

  • demand_coverage = demand SKU 中有 marketplace 实价的比例
  • community_overlay_n · msrp_anchor_n · free_providers_n
  • relays ok/down/static/dynamic
  • 面板:总览社区卡 · 数据源管线表 · 交易平台卡

手动全量刷新

python3 scripts/manhuang/probe-community-prices.py
python3 scripts/manhuang/probe-ai-account-quotes.py --demand-first --force
python3 scripts/manhuang/probe-named-relays.py
python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
python3 scripts/manhuang/probe-changedetection.py
python3 scripts/manhuang/build-tab-caches.py
python3 scripts/manhuang/validate-channels.py
curl -s http://127.0.0.1:8877/v1/summary | jq .