返回 Skill 列表
extension
分类: 其它需要 API Key

讯灵

讯灵GEO推广系统:发布管理、官网改版、发文管理。触发词:讯灵、发布间隔、官网、xunling、改版、发文。

person作者: user_4f79f923hubcommunity

讯灵助手 —— 使用说明

用户画像

用户用大白话说出需求,AI 直接执行。


API 基础配置

Base URL: http://localhost:8080
所有请求需带 Header: Authorization: Bearer <token>
本地调试无需 SSL

功能零:登录

用户说"登录讯灵"或提供用户名密码时执行。

$body = @{username='<用户名>';password='<密码>'} | ConvertTo-Json
$r = Invoke-WebRequest -Uri 'http://localhost:8080/login' -Method Post -Body $body -ContentType 'application/json' | ConvertFrom-Json
# 从 $r.data.accessToken 取 token,后续所有请求用此 token
# 从 $r.data.user.userId 取 userId

返回 code: 200 即成功。token 无固定过期时间。


功能一:发布间隔管理

API 速查

| 操作 | 方法 | 路径 | 参数 | |------|------|------|------| | 查看列表 | GET | /interval/list | ?mediaType=2 (2=自媒体 3=商业媒体 4=企业官网) | | 设置间隔 | POST | /interval/edit | {platform, intervalDays, dailyCount, mediaType} | | 删除间隔 | POST | /interval/delete | {platform, mediaType} | | 查看账号 | GET | /interval/accounts | — |

PowerShell 示例

# 查看发布间隔
$r = Invoke-WebRequest -Uri 'http://localhost:8080/interval/list?mediaType=2' -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

# 设置知乎每天发3条
$body = '{"platform":"知乎","intervalDays":1,"dailyCount":3,"mediaType":2}'
Invoke-WebRequest -Uri 'http://localhost:8080/interval/edit' -Method Post -Body $body -ContentType 'application/json' -Headers @{Authorization="Bearer $token"}

# 删除平台设置
$body = '{"platform":"知乎","mediaType":2}'
Invoke-WebRequest -Uri 'http://localhost:8080/interval/delete' -Method Post -Body $body -ContentType 'application/json' -Headers @{Authorization="Bearer $token"}

功能二:官网改版(核心)

完整流程(推荐路径 A:直接部署,无需写文件/打包)

1. 登录(获取 token)
2. GET /chat/company/data → 获取企业信息
3. 根据企业信息 + 设计提示词 → 生成完整 HTML5 单文件
4. POST /chat/website/deploy-content → 提交 HTML+CSS,走异步 7 步部署
5. 轮询 GET /chat/website/status/{companyId} → 追踪进度 → 拿到预览地址

部署流水线(7 步状态机)

generating(5%) → uploading(15%) → deploying(30%) → configuring(50%) → ssl(70%) → ssl_nginx(85%) → preview(90%) → published(100%)

步骤 2:获取企业数据

$r = Invoke-WebRequest -Uri 'http://localhost:8080/chat/company/data' -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json
$company = $r.data
# 字段:companyId, companyName, industry, mainProduct, province, scale, region

步骤 3:设计提示词(生成 HTML 时使用)

根据企业数据生成 HTML 之前,严格遵循以下设计提示词:

你是顶级前端设计师,为"{companyName}"生成一个可直接部署的单文件 HTML5 企业官网。

## 企业信息
- 公司名: {companyName}
- 行业: {industry}
- 主营产品: {mainProduct}
- 所在地区: {province}
- 规模: {scale}人

## 设计要求

### 1. 视觉风格
- 现代简约 + 高端质感,参考 Apple、Stripe、Linear 的设计语言
- 大面积留白,卡片式布局,圆角 12-16px
- 渐变色点缀(根据行业特征选择主色调,不超过 2 个主色)
- 柔和阴影: box-shadow 0 4px 24px rgba(0,0,0,0.06)
- 平滑过渡: transition all 0.3s cubic-bezier(0.4,0,0.2,1)

### 2. 排版规范
- 标题字体栈: system-ui, -apple-system, sans-serif
- Hero 标题 48-64px,字重 700-800
- 正文 16-18px,行高 1.7,字色 #4a4a5a
- 主标题与正文间距至少 24px

### 3. 必须包含的板块(按顺序,单文件多区段)

整体结构:单文件 HTML5,顶部 sticky 导航栏含所有板块锚点链接,点击平滑滚动到对应区段。

**导航栏**
- 左侧:企业名称/Logo(文字即可)
- 右侧:首页 | 产品服务 | 新闻资讯 | 案例 | 宣传视频 | PDF资料 | 关于我们 | 联系我们
- pc 端八字排列,移动端汉堡菜单
- sticky + 毛玻璃 backdrop-filter

**① 首页(Hero)**
- 全屏/大屏背景,渐变或网格纹理
- 居中布局,大字标题(企业名称)+ 副标题(一句话概括主营业务)+ 2 个 CTA 按钮
- 主按钮填充色 16px 圆角,次按钮描边
- 下方 3-4 个数据指标数字(规模、覆盖地区、产品系列数、合作客户),CSS 计数动画
- 几何装饰元素或简单粒子背景

**② 产品服务**
- 卡片网格(3-4 列),根据主营产品设计
- 每卡:渐变图片占位区(纯 CSS)+ 名称 + 简介 + "了解更多"链接
- 图片占位用 CSS 渐变,不用外部图片
- hover 上浮 8px,阴影加深

**③ 新闻资讯**
- 左侧大图 + 右侧列表布局(或卡片网格)
- 3-5 条模拟新闻条目:日期标签 + 标题 + 摘要
- 每条可点击展开(纯 CSS details/summary 或 JS 切换)
- 基于行业特征生成合理标题(如"{公司名}荣获XX认证""{行业}技术取得新突破")

**④ 案例**
- 卡片网格或横向滚动展示 3-6 个案例
- 每卡:案例图片占位(CSS 渐变)+ 案例名称 + 客户行业 + 简短成果描述
- 可选:筛选标签(按行业分类)

**⑤ 宣传视频**
- 居中视频占位区域(16:9 比例)
- 视频占位用 CSS 渐变 + ▶ 播放按钮图标(纯 CSS 三角形)
- 下方简短说明文字 1-2 行
- 不引用外部视频源,纯占位展示

**⑥ PDF资料**
- 卡片或列表展示 3-5 个可下载资料
- 每项:PDF 图标(emoji 📄)+ 资料名称 + 文件大小占位 + 下载按钮
- 下载按钮为占位样式(不实际下载),hover 变色

**⑦ 关于我们**
- 左右分栏:左文字(公司简介 2-3 段)右图片占位(emoji 或纯 CSS 图形)
- 下方核心优势 3-4 个卡片:图标(emoji)+ 标题 + 描述
- 发展历程时间线(3-5 个里程碑节点)

**⑧ 联系我们**
- 左右分栏:左信息卡片(地址/电话/邮箱占位),右联系表单(姓名/电话/留言 + 提交按钮)
- 号召性文案"立即咨询"
- 提交按钮仅为 UI 展示,不实际提交

**Footer**
- 版权信息 + 备案占位 + 返回顶部按钮
- 深色背景

### 4. 技术要求
- 单文件 HTML5,所有 CSS/JS 内联,零外部依赖
- 响应式三档:移动端单栏 / 平板两栏 / 桌面多栏
- 滚动动画:元素进入视口淡入上移(Intersection Observer)
- 导航栏 sticky + 毛玻璃 backdrop-filter
- 平滑滚动 scroll-behavior: smooth
- 右下角返回顶部按钮,滚动超过一屏后显示
- 不使用 Google Fonts / CDN / 外部图片

### 5. 输出要求
- 只输出完整 HTML,用 ```html 包裹
- CSS 在 <style> 中,JS 在 <script> 中
- 文字基于企业信息填充,合理延伸但不要捏造具体地址/电话
- 代码干净,适当注释分区

步骤 4:部署(路径 A:直接提交 HTML+CSS,推荐)

# 从步骤2获取 companyId 和默认域名
$companyId = $company.companyId
$domain = $company.websiteDomain  # 如果没有则用 company.domain 或询问用户

$body = @{
    companyId = $companyId
    domain = $domain
    htmlContent = $htmlContent   # 生成的完整 HTML
    cssContent = $null           # CSS 已在 HTML 内联则传 null
    websiteName = "$($company.companyName)官网"
    serverId = $null             # null=自动选择默认服务器
} | ConvertTo-Json

$deployResult = Invoke-WebRequest `
    -Uri 'http://localhost:8080/chat/website/deploy-content' `
    -Method Post -Body $body -ContentType 'application/json' `
    -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

# 返回:{ code: 200, data: { deployId, websiteId, message: "部署已提交" } }

步骤 4(路径 B:zip 上传,兼容旧方式)

# 先写 HTML 到本地目录
$siteDir = "$env:TEMP\site-$(Get-Date -Format 'yyyyMMddHHmmss')"
New-Item -ItemType Directory -Path $siteDir -Force | Out-Null
# ... 写 HTML/CSS 文件到 $siteDir ...

$zipPath = "$env:TEMP\site-deploy.zip"
Compress-Archive -Path "$siteDir\*" -DestinationPath $zipPath -Force

$form = @{
    file = Get-Item $zipPath
    companyId = $companyId
    domain = $domain
    websiteName = "$($company.companyName)官网"
    serverId = $null
}
$deployResult = Invoke-WebRequest `
    -Uri 'http://localhost:8080/chat/website/upload-and-deploy' `
    -Method Post -Form $form -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

步骤 5:轮询部署进度

# 轮询直到部署完成
do {
    Start-Sleep -Seconds 5
    $status = Invoke-WebRequest `
        -Uri "http://localhost:8080/chat/website/status/$companyId" `
        -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json
    # $status.data.status: generating|uploading|deploying|configuring|ssl|ssl_nginx|preview|published|failed
    # $status.data.progress: 0-100
    # $status.data.previewUrl: 预览地址,格式 https://{previewDomain}/{userId}(有 previewDomain 时)或 https://{域名}
    # $status.data.websiteUrl: 正式地址
} while ($status.data.status -notin @('published', 'failed'))

if ($status.data.status -eq 'published') {
    Write-Host "预览地址: $($status.data.previewUrl)"
    Write-Host "正式地址: $($status.data.websiteUrl)"
} else {
    Write-Host "部署失败: $($status.data.error)"
}

联网部署后台 API 速查

| 操作 | 方法 | 路径 | 关键参数 | |------|------|------|----------| | 直接部署 | POST | /chat/website/deploy-content | {companyId, domain, htmlContent, cssContent?, websiteName?, serverId?} | | zip 上传部署 | POST | /chat/website/upload-and-deploy | multipart: file, companyId, domain, websiteName?, serverId? | | 部署状态 | GET | /chat/website/status/{companyId} | 返回 status/progress/previewUrl/websiteUrl/error | | 部署任务追踪 | GET | /chat/website/deploy/status/{deployId} | 单次部署的任务级进度追踪 | | 补装 SSL | POST | /chat/website/ssl | {companyId} | | SSL 重试 | POST | /chat/website/retry-ssl | {deployId} | | 发布上线 | POST | /chat/website/publish | {websiteId, deployId} |

用户对话示例

用户:帮我改版官网
AI:好的,正在获取企业数据并生成网站...
    预览地址:https://b.19880708.com/50066209
    您看看效果,需要调整的地方告诉我。

用户:导航栏颜色深一点
AI:好的,调整后重新部署,预览地址不变。

用户:可以,发布吧
AI:部署成功!正式地址:https://geob.g3pu.com/50066209

预览URL格式:当 deployServer 配置了 preview_domain 时,预览地址 = https://{previewDomain}/{userId} 否则回退到 https://{部署域名}


功能三:AI 备课管理

API 速查

| 操作 | 方法 | 路径 | 关键参数 | |------|------|------|----------| | 任务列表 | GET | /chat/task/list | ?mediaType=1&page=1&rows=20 | | 任务详情 | GET | /chat/task/detail | ?taskId=<id> | | 创建/更新任务 | POST | /chat/task/save | {taskId?, mediaType, taskName, ...} | | 文章列表 | GET | /chat/content/list | ?taskId=<id>&page=1&rows=500 | | 文章详情 | GET | /chat/content/detail | ?id=<文章ID> | | 保存文章 | POST | /chat/content/save | {id, taskName, taskDescription, sensitive} | | 删除文章 | GET | /chat/content/delete | ?id=<文章ID> | | 同步发布 | POST | /chat/content/sync | {ids: [id1, id2]} | | 敏感词检测 | POST | /chat/words/check | {ids: [id1, id2]} | | 词包列表 | GET | /chat/words/package/list | — | | 平台列表 | GET | /chat/platform/list | — |

mediaType: 1=自媒体授课 2=三方媒体授课 3=B2B授课 4=企业官网

PowerShell 示例

# 查看任务列表
Invoke-WebRequest -Uri 'http://localhost:8080/chat/task/list?mediaType=1&page=1&rows=20' -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

# 创建任务
$body = '{"mediaType":1,"taskName":"任务名称"}'
Invoke-WebRequest -Uri 'http://localhost:8080/chat/task/save' -Method Post -Body $body -ContentType 'application/json' -Headers @{Authorization="Bearer $token"}

# 保存文章
$body = '{"id":123,"taskName":"标题","taskDescription":"Markdown正文","sensitive":""}'
Invoke-WebRequest -Uri 'http://localhost:8080/chat/content/save' -Method Post -Body $body -ContentType 'application/json' -Headers @{Authorization="Bearer $token"}

# 获取平台列表(媒体类型和词包ID动态获取)
$platforms = Invoke-WebRequest -Uri 'http://localhost:8080/chat/platform/list' -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

# 获取词包列表
$packages = Invoke-WebRequest -Uri 'http://localhost:8080/chat/words/package/list' -Headers @{Authorization="Bearer $token"} | ConvertFrom-Json

功能四:讯灵发文管理

API 速查

| 操作 | 方法 | 路径 | 关键参数 | |------|------|------|----------| | 创建发文任务 | POST | /chat/website/create-task | {companyId, platformIds[], rulesId, taskName?} | | 提交生成内容 | POST | /chat/website/submit-content | {taskId, contents: [{title, content, mediaType}]} |

流程

1. GET /chat/platform/list    → 获取可用平台列表
2. GET /chat/words/package/list → 获取词包列表
3. POST /chat/website/create-task → 创建发文任务(传入选中的平台ID和词包ID)
4. POST /chat/website/submit-content → 提交生成的文章内容

错误处理

  • code: 401 → Token 过期,让用户重新提供账号密码登录
  • code: 500 → 查看 msg 字段获取错误原因,反馈给用户
  • 网络超时 → 重试一次,仍失败则提示用户稍后再试
  • 部署状态 failed → 查看 error 字段,可能是域名冲突或服务器连接问题