Files
param-auto-manager/README.md
T
hz4th_coder 23991c3552 v2.0.0 大模型驱动版:移除智能体,直接调用大模型接口
- 核心改造:不再使用 openclaw 智能体执行处理步骤,改为直接调用大模型接口
- 新增 services/llm_client.py:OpenAI 兼容接口客户端,支持多模型配置管理
- 步骤4/5 由大模型直接完成(提取产品数据、填充字段)
- 步骤6 改为直接调用 ParamHub API 提交审核
- 新增 llm_configs 数据库表,默认配置 unsloth/Qwen3.6-27B-Q4_K_M (262144上下文)
- 新增 /api/llm 配置管理 API:增删改查、切换激活、测试连接
- 前端首页新增「大模型配置」面板,可随时新增/切换模型
- 处理步骤名称更新为「大模型」版
2026-08-13 17:15:53 +08:00

11 KiB
Raw Blame History

Param Auto Manager - 参数数据自动化管理系统

自动管理参数数据网站的系统,支持从内容库和互联网搜索数据,自动处理产品并提交到后台管理待审核区。

功能特性

  • 📚 内容库管理:存储和管理搜索获取的相关文章内容
  • 🔄 自动处理流程:自动从待处理列表中提取产品并处理
  • 🔍 智能搜索:从内容库和互联网搜索相关数据
  • 🤖 大模型驱动:直接调用大模型接口完成智能体任务(不再使用 openclaw 智能体)
    • 步骤4 提取产品数据 → 大模型筛选相关内容
    • 步骤5 填充字段 → 大模型生成产品数据并检查格式
    • 步骤6 提交审核 → 直接调用 ParamHub API
  • 🧠 多模型管理:前端可新增/编辑/删除/切换大模型配置,随时换模型
    • OpenAI 兼容接口(base_url + api_key + model_name
    • 支持最大上下文窗口配置
    • 一键测试连接
  • 审核提交:自动提交到ParamHub后台管理待审核区
  • 🕐 定时任务:支持定时自动处理产品
  • 🔧 后台任务系统:抓取任务在后台持续运行,不受页面刷新影响
    • 一键抓取触发后,任务在后台独立运行
    • 可随时查看任务进度和状态
    • 支持手动停止正在运行的任务
    • 自动记录成功/失败/保存数量
  • 🛡️ 产品状态检查:处理前自动检查产品是否已存在
    • 检查已发布产品(模型/GPU/CPU
    • 检查待审核产品
    • 已存在则自动跳过,避免重复处理
  • ⚠️ 异常产品管理:自动识别无法处理的产品
    • 内容库和互联网均无搜索结果时存入异常库
    • 支持人工排查和重新处理
    • 提供异常产品列表、详情、解决、删除 API

系统架构

param-auto-manager/
├── app.py                 # 主应用入口
├── config.py              # 配置文件
├── requirements.txt       # Python依赖
├── models/
│   └── database.py        # 数据库模型(含 llm_configs 大模型配置表)
├── routes/
│   ├── articles.py        # 文章内容库API
│   ├── products.py        # 产品处理API
│   ├── system.py          # 系统管理API
│   ├── process_monitor.py # 处理步骤监控API
│   └── llm.py             # 大模型配置管理API
├── services/
│   ├── search_service.py  # 搜索服务
│   ├── process_service.py # 数据处理服务
│   ├── process_monitor.py # 处理流程监控(大模型驱动)
│   ├── llm_client.py      # 大模型调用客户端(多模型管理)
│   └── paramhub_client.py # ParamHub API客户端
├── utils/
│   └── scheduler.py       # 定时任务调度器
├── data/                  # 数据库文件目录
└── logs/                  # 日志文件目录

安装依赖

cd works/param-auto-manager
pip install -r requirements.txt

启动服务

# 方式1: 使用启动脚本
chmod +x start.sh
./start.sh

# 方式2: 直接运行
python3 app.py

服务将在端口 16043 启动。

API 文档

文章内容库 API (/api/articles)

获取文章列表

GET /api/articles?limit=100&offset=0

搜索文章

GET /api/articles/search?q=关键词&category=分类

获取文章详情

GET /api/articles/{article_id}

创建文章

POST /api/articles
Content-Type: application/json

{
  "product_names": ["产品A", "产品B"],
  "category": "AI模型",
  "keywords": ["关键词1", "关键词2"],
  "summary": "文章摘要",
  "content": "文章内容",
  "source": "来源",
  "url": "原文链接"
}

从URL抓取文章

POST /api/articles/fetch
Content-Type: application/json

{
  "url": "https://example.com/article",
  "product_names": ["产品A"],
  "category": "分类"
}

删除文章

DELETE /api/articles/{article_id}

产品处理 API (/api/products)

获取待处理产品列表

GET /api/products/pending?limit=20&order_by=priority

添加待处理产品

POST /api/products/pending
Content-Type: application/json

{
  "product_name": "产品名称",
  "category": "分类",
  "subcategory": "子分类",
  "priority": 10,
  "source": "manual"
}

批量添加待处理产品

POST /api/products/pending
Content-Type: application/json

[
  {"product_name": "产品1", "category": "分类"},
  {"product_name": "产品2", "category": "分类"}
]

移除待处理产品

DELETE /api/products/pending/{product_name}

获取处理中的产品

GET /api/products/processing

获取处理历史

GET /api/products/history?limit=100

获取指定产品的处理历史

GET /api/products/history/{product_name}

处理单个产品

POST /api/products/process
Content-Type: application/json

{
  "product_name": "产品名称",
  "category": "分类",
  "subcategory": "子分类"
}

批量处理产品

POST /api/products/process/batch
Content-Type: application/json

{
  "limit": 5
}

后台任务 API (/api/tasks)

启动后台抓取任务

POST /api/tasks/start
Content-Type: application/json

{
  "results": [{"title": "标题", "url": "https://..."}],
  "auto_save": true,
  "category": "分类",
  "keywords": ["关键词"]
}

获取任务状态

GET /api/tasks/{task_id}/status

停止任务

POST /api/tasks/{task_id}/stop

获取活动任务列表

GET /api/tasks/active

获取最近任务

GET /api/tasks/recent?limit=20

删除任务记录

DELETE /api/tasks/{task_id}

清理已完成任务

POST /api/tasks/clear

系统管理 API (/api/system)

获取系统配置

GET /api/system/config

更新系统配置

PUT /api/system/config
Content-Type: application/json

{
  "auto_process_enabled": "true",
  "process_interval": "300",
  "batch_size": "5"
}

获取系统统计

GET /api/system/stats

健康检查

GET /api/system/health

大模型配置 API (/api/llm)

获取所有大模型配置

GET /api/llm/configs

获取当前激活的大模型配置

GET /api/llm/configs/active

新增大模型配置

POST /api/llm/configs
Content-Type: application/json

{
  "name": "本地Qwen3.6",
  "base_url": "http://192.168.2.7:18003/v1",
  "api_key": "sk-xxxx",
  "model_name": "unsloth/Qwen3.6-27B-Q4_K_M",
  "max_context": 262144
}

更新大模型配置

PUT /api/llm/configs/{config_id}

删除大模型配置(激活中的不能删)

DELETE /api/llm/configs/{config_id}

切换激活的大模型

POST /api/llm/configs/{config_id}/activate

测试大模型连接

POST /api/llm/test
Content-Type: application/json

# 不传 config 则测试当前激活配置;传 config 测试指定配置
{"config": {"base_url": "...", "api_key": "...", "model_name": "..."}}

处理流程

  1. 添加待处理产品:手动添加或系统自动发现新产品
  2. 产品状态检查
    • 检查产品是否已在 ParamHub 系统中
    • 检查已发布产品(模型/GPU/CPU
    • 检查待审核列表
    • 如已存在则跳过后续处理
  3. 自动/手动触发处理(大模型驱动):
    • 从内容库搜索相关文章
    • 从互联网搜索最新数据
    • 步骤4:调用大模型筛选与产品直接相关且对参数提取有用的内容(替代原智能体)
    • 步骤5:调用大模型根据相关内容生成产品数据并检查格式(替代原智能体)
    • 步骤6:直接调用 ParamHub API 提交到待审核区(不再依赖智能体)
  4. 发现新产品:处理过程中自动发现并添加相关产品

大模型配置:系统所有智能体任务均由当前激活的大模型直接完成。 在首页「大模型配置」面板可新增、编辑、切换、删除大模型接口, 切换后立即生效,无需重启服务。

数据库表结构

articles (文章内容库)

  • id, product_names, category, keywords, summary, content, source, url, fetch_date

pending_products (待处理产品列表)

  • id, product_name, category, subcategory, priority, source

processing_products (处理中产品)

  • id, product_name, category, subcategory, status, started_at

process_history (处理历史)

  • id, product_name, category, subcategory, status, review_id, details

llm_configs (大模型配置)

  • id, name, base_url, api_key, model_name, max_context, is_active

process_sessions / process_steps (处理会话与步骤)

  • 记录每次处理会话及每个步骤的状态、耗时、数据、错误信息

abnormal_products (异常产品)

  • 无搜索结果等无法处理的产品记录

配置说明

编辑 config.py 文件:

PORT = 16043                    # 服务端口
PARAMHUB_BASE_URL = 'http://localhost:16041'  # ParamHub API地址
PARAMHUB_PASSWORD = 'admin123'  # ParamHub管理员密码
SEARCH_MAX_RESULTS = 10         # 搜索最大结果数
PROCESS_INTERVAL = 300         # 自动处理间隔(秒)
BATCH_SIZE = 5                 # 批量处理数量

大模型接口在首页「大模型配置」面板中管理(数据库 llm_configs 表),首次启动自动写入默认配置:

  • 接口地址:http://192.168.2.7:18003/v1
  • 模型名称:unsloth/Qwen3.6-27B-Q4_K_M
  • 最大上下文窗口:262144

注意事项

  1. 确保 ParamHub 服务(端口16041)正常运行
  2. 确保大模型接口可用(可在首页测试连接)
  3. 首次运行会自动创建数据库和表结构
  4. 定时任务默认每5分钟执行一次自动处理
  5. 可通过系统配置API调整自动处理参数
  6. 大模型调用超时时间 600 秒,长任务请耐心等待

日志

日志文件位于 logs/app.log,包含:

  • 系统启动信息
  • 处理过程记录(含大模型调用日志)
  • 错误和异常信息

版本历史

  • v2.0.0 (2026-08-13): 大模型驱动版(主分支大版本)

    • 核心改造:不再使用 openclaw 智能体执行步骤流程
    • 新增大模型调用服务 llm_client.py,直接调用 OpenAI 兼容接口
    • 步骤4/5 改由大模型直接完成(提取数据、填充字段)
    • 步骤6 改为直接调用 ParamHub API 提交
    • 新增多模型配置管理(数据库 llm_configs 表)
    • 前端新增「大模型配置」面板:新增/编辑/删除/切换/测试连接
    • 旧版(智能体版)已移至 aliyun-codingplan 分支
  • v1.17.0 (2026-07-17): 异常产品管理

    • 新增异常产品库,自动存储无法处理的产品
    • 内容库和互联网均无搜索结果时存入异常库
    • 新增异常产品 API(查询/详情/解决/删除/重试)
    • 优化错误处理流程
  • v1.16.0 (2026-07-16): 产品状态检查

    • 新增产品状态检查功能
    • 处理前检查产品是否已存在(已发布/待审核)
    • 避免重复处理已有产品
    • 新增 check_product_exists API 方法
  • v1.1.0 (2026-07-14): 后台任务系统

    • 新增后台任务API/api/tasks
    • 抓取任务在后台独立运行,不受页面刷新影响
    • 支持任务状态查询和手动停止
    • 新增后台任务管理界面
    • 数据库新增 background_tasks 表
  • v1.0.0 (2026-07-12): 初始版本

    • 内容库管理
    • 产品处理流程
    • 定时任务调度
    • ParamHub API集成