时地方
This commit is contained in:
+55
-1
@@ -225,4 +225,58 @@ GEO是针对**生成式AI引擎**(如ChatGPT、Google AI Overviews、Perplexit
|
||||
|
||||
GEO的核心是**“让AI成为你的流量入口”**,需同步做好**技术基建、内容质量、合规安全、数据监测**四大板块,形成闭环。建议先从基础配置(LLMs.txt、Schema)和核心内容重构入手,快速验证效果,再逐步深化差异化与本地化优化。
|
||||
|
||||
需要我把以上要点整理成一份可直接复制的**30天GEO落地执行清单**(含每日任务、Schema模板、llms.txt示例)吗?
|
||||
需要我把以上要点整理成一份可直接复制的**30天GEO落地执行清单**(含每日任务、Schema模板、llms.txt示例)吗?
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
**网站 GEO 优化主要指 Generative Engine Optimization(生成式引擎优化),即针对 ChatGPT、Perplexity、Gemini、Google AI Overviews、DeepSeek 等 AI 生成式搜索引擎的内容优化策略。** 其核心目标是让网站内容更容易被 AI 理解、信任并直接引用,从而提升品牌在 AI 答案中的曝光率和可见度(而非传统搜索排名)。
|
||||
|
||||
与传统 SEO(侧重关键词排名和链接)不同,GEO 更注重内容被 AI “阅读”和“引用”的能力。以下是从多个关键方面进行优化的实用指南:
|
||||
|
||||
### 1. **内容质量与权威性(E-E-A-T)**
|
||||
- 强调 **Experience(经验)、Expertise(专业性)、Authoritativeness(权威性)、Trustworthiness(可信度)**。
|
||||
- 提供原创、深入、数据支持的内容,包含真实案例、统计数据、专家引用和可靠来源链接。
|
||||
- 明确标注作者信息、更新日期(保持内容新鲜度),并展示公司/作者资质。
|
||||
- **技巧**:用事实、数据和引用增强可信度,让 AI 更愿意采纳。
|
||||
|
||||
### 2. **内容结构与可读性(AI-Friendly Structure)**
|
||||
- **清晰的层级结构**:使用 H2/H3 作为问题式标题(匹配用户自然提问),添加摘要/Quick Answer(顶部 40-80 字直接回答核心问题)。
|
||||
- **列表、表格、步骤**:便于 AI 提取和总结。
|
||||
- **对话式写作**:采用自然、直接、问答式的语言,像在回答真实用户问题。
|
||||
- **实体明确**:明确指出人名、品牌、概念,避免模糊表达,并通过内部/外部链接关联相关实体。
|
||||
|
||||
### 3. **技术与结构化数据优化**
|
||||
- **Schema Markup**:添加 LocalBusiness、FAQ、Article 等结构化数据,帮助 AI 更好解析实体和关系。
|
||||
- **页面元数据**:优化 title 和 description,让 AI 快速理解页面主题。
|
||||
- **移动友好 + 加载速度**:AI 和用户都偏好体验好的页面。
|
||||
- **llms.txt**(如果适用):为 AI 提供文档结构索引。
|
||||
- 确保内容易抓取,避免重复或低质量页面。
|
||||
|
||||
### 4. **用户意图与查询匹配**
|
||||
- 从 **Prompts(提示词)** 而非单纯关键词出发,研究 AI 常见提问方式(How to、What is、Comparison 等)。
|
||||
- 创建 FAQ、对比表、清单、案例研究等高意图内容。
|
||||
- 覆盖长尾、具体问题,增加信息密度(提供全面上下文和例子)。
|
||||
|
||||
### 5. **权威信号与外部强化**
|
||||
- **PR 与外部提及**:增加品牌在权威媒体、Wikipedia 等地方的曝光,提升整体可信度。
|
||||
- **一致性**:NAP(名称、地址、电话)等实体信息在全网保持一致(尤其本地业务)。
|
||||
- **社交与多渠道**:通过社交证明权威性,制造热点让 AI 更容易捕捉。
|
||||
|
||||
### 6. **监测、迭代与程序化策略**
|
||||
- 跟踪 AI 引用情况(手动测试 ChatGPT/Perplexity 等,或用专用工具)。
|
||||
- 定期更新高价值页面,保持内容时效性。
|
||||
- 考虑程序化 GEO:批量生成针对性强的优化页面(但需确保质量,避免垃圾内容)。
|
||||
- 结合传统 SEO:GEO 是 SEO 的延伸,两者协同效果更好。
|
||||
|
||||
### 实施优先级建议
|
||||
1. 先从核心页面入手(首页、产品/服务页、博客高流量文章)。
|
||||
2. 优化现有内容 → 创建新针对性内容。
|
||||
3. 测试:在不同 AI 工具中搜索相关查询,观察自己的内容是否被引用。
|
||||
4. 持续性:AI 模型会不断更新,优化是长期过程。
|
||||
|
||||
**注意**:GEO 还在快速发展中,核心仍是“写给人类 + 方便 AI 提取”的高质量内容。过度优化或生成低质内容可能适得其反。
|
||||
|
||||
如果你的“GEO”指的是 **地理位置优化(Local SEO / Geotargeting)**,请补充说明,我可以提供另一套针对本地搜索、Google 我的商家、NAP 一致性等的优化策略。需要具体案例或某个方面的深入细节吗?
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
# 背景描述
|
||||
|
||||
深圳市飞点健康管理有限公司的尿常规14项的尿检App产品名称是**尿大夫**,这个产品涵盖android 版本和 ios版本。
|
||||
这个app属于二类医疗器械独立软件。
|
||||
|
||||
# 你的工作目标
|
||||
帮我编写《工作环境控制程序》,涵盖的内容包括:研发/测试/生产设备的软件和硬件环境控制程序。
|
||||
|
||||
**请严格依照我国国家标准,行业标准对二类医疗器械独立软件的研发/测试/生产过程的要求,帮我编写软件和硬件环境控制程序。**
|
||||
## app开发环境
|
||||
android版本的app的开发环境:android studio开发工具,基于windows操作系统开发,使用PC机。
|
||||
ios版本的app开发环境是:XCode开发工具,基于MAC OS操作系统。
|
||||
|
||||
|
||||
## 测试环境
|
||||
|
||||
尿大夫android app 基于 国产android手机测试;
|
||||
尿大夫ios app基于 iphone手机测试;
|
||||
测试会使用专用的android和iphone手机。
|
||||
|
||||
## 生产环境
|
||||
尿大夫app属于二类医疗器械,是独立软件。其生产环境不牵涉到任何物料的生产。软件开发和测试完成后(验证和确认),通过专用的一台生产电脑,上传到各个app的应用市场。
|
||||
ios版本的尿大夫app会上传并发布到apple store。
|
||||
android版本的尿大夫app会上传并发布到应用宝,小米,vivo,oppo等应用市场。
|
||||
|
||||
## 云服务器
|
||||
基于腾讯云的ubuntu云服务器。尿检用户信息会存储在云服务器上。
|
||||
app用户登录使用手机号码和短信验证码或者密码登录云服务器。
|
||||
所有的网络传输采用https方式。
|
||||
云服务器及运行于云服务器上的程序,不属于我公司医疗器械软件的组成部分。
|
||||
|
||||
|
||||
# 其他
|
||||
|
||||
你仔细分析我的需求,如果有问题,请问我。你的文档,要求真实符合实际法规要求,不能瞎编。
|
||||
|
||||
+2080
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
测试运行结果
|
||||
|
||||
✅ test/ 目录 — 全部通过
|
||||
|
||||
Tests: 377 | Failures: 0 | Errors: 0 | Skipped: 0
|
||||
BUILD SUCCESSFUL in 52s
|
||||
|
||||
运行命令:
|
||||
export JAVA_HOME="C:/Program Files/Java/jdk-17"
|
||||
./gradlew :app:testAliDebugUnitTest
|
||||
|
||||
📊 HTML 报告位置:
|
||||
D:\svn\android\urologist\app\build\reports\tests\testAliDebugUnitTest\index.html
|
||||
|
||||
用浏览器打开该 index.html 即可看到每个测试类的详细结果、耗时、通过/失败状态。
|
||||
|
||||
---
|
||||
⚠️ androidTest/ 目录 — 未运行(无设备)
|
||||
|
||||
当前 没有已连接的 Android 设备或模拟器(adb devices 返回空)。
|
||||
|
||||
androidTest 必须在真机或模拟器上运行。当你准备好设备后,执行:
|
||||
📊 HTML 报告位置:
|
||||
D:\svn\android\urologist\app\build\reports\tests\testAliDebugUnitTest\index.html
|
||||
|
||||
用浏览器打开该 index.html 即可看到每个测试类的详细结果、耗时、通过/失败状态。
|
||||
|
||||
---
|
||||
⚠️ androidTest/ 目录 — 未运行(无设备)
|
||||
|
||||
当前 没有已连接的 Android 设备或模拟器(adb devices 返回空)。
|
||||
|
||||
androidTest 必须在真机或模拟器上运行。当你准备好设备后,执行:
|
||||
|
||||
export JAVA_HOME="C:/Program Files/Java/jdk-17"
|
||||
./gradlew :app:connectedAliDebugAndroidTest
|
||||
|
||||
报告位置:
|
||||
D:\svn\android\urologist\app\build\reports\androidTests\connected\ali\debug\index.html
|
||||
|
||||
---
|
||||
汇总
|
||||
|
||||
┌──────────────┬────────┬─────────────┬───────────────────────────────────────────────────────────────┐
|
||||
│ 套件 │ 用例数 │ 结果 │ 报告路径 │
|
||||
├──────────────┼────────┼─────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ test/ │ 377 │ ✅ 全部通过 │ app/build/reports/tests/testAliDebugUnitTest/index.html │
|
||||
├──────────────┼────────┼─────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ androidTest/ │ 25 │ ⏸️ 待设备 │ app/build/reports/androidTests/connected/ali/debug/index.html │
|
||||
├──────────────┼────────┼─────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ 合计 │ 402 │ │ │
|
||||
└──────────────┴────────┴─────────────┴───────────────────────────────────────────────────────────────┘
|
||||
|
||||
▎ 注意: androidTest 目录里的 25 个用例已编译验证通过,只是需要 Android 设备/模拟器才能执行。在 loginnew 接口返回 token 且 2144934.txt
|
||||
▎ 数据有效的前提下,预计也能全部通过。
|
||||
@@ -0,0 +1,52 @@
|
||||
|
||||
|
||||
方案文档已写好,保存在 /home/ubuntu/nanocode/personal-blog/docs/urinecheck-plan.md。
|
||||
我的理解总结
|
||||
我已经完整阅读了所有C++核心代码:
|
||||
核心算法(7步流水线):
|
||||
预处理 → BGR/HSV/Gray + 高斯滤波
|
||||
定位块检测 → HSV颜色分割(红/绿/蓝)→ 形态学→找轮廓;备选Canny
|
||||
候选筛选+配对 → 面积/宽高比/矩形度多级过滤 → Y坐标聚类 → 逐对验证(颜色一致 + RGB距离<180 + 面积比±20%)
|
||||
清晰度 → Laplacian方差
|
||||
杂物检测 → 试纸高度≥30px + 候选≤15
|
||||
规格匹配 → distRatio + areaRatio → 6种规格
|
||||
色块位置 → 边缘中心 + 50切片插值 → 14个中心点
|
||||
Python重写范围:
|
||||
跳过鸿蒙NAPI层(YUV转换、RGBA格式等)
|
||||
完整保留:PaperRecognizer + ColorReader + PaperConfig + GlobalParams
|
||||
用Python dataclasses 替代C++ structs,logging 替代鸿蒙日志
|
||||
|
||||
待你确认的6个问题(文档第四章节),最关键的是:
|
||||
只做14联,还是保留6种规格的架构?
|
||||
answer: 全部支持,所有格式
|
||||
|
||||
14项色块是否需要标注检测项目名称?
|
||||
answer: 是的
|
||||
|
||||
是否需要标注图展示?
|
||||
answer:可以不需要
|
||||
|
||||
是否需要数据库存储历史?
|
||||
answer: 先不实现
|
||||
|
||||
请蔡叔叔看下方案,哪里需要调整直接说。
|
||||
|
||||
|
||||
---
|
||||
|
||||
只做14联,还是保留6种规格的架构?
|
||||
answer: 全部支持,所有格式
|
||||
|
||||
14项色块是否需要标注检测项目名称?
|
||||
answer: 是的
|
||||
|
||||
是否需要标注图展示?
|
||||
answer:可以不需要
|
||||
|
||||
是否需要数据库存储历史?
|
||||
answer: 先不实现
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -203,3 +203,120 @@ AI 不擅长鸿蒙UI界面性工作。
|
||||
|
||||
|
||||
---
|
||||
上周的工作:
|
||||
1、我的主要时间,用于开发 尿大夫官网+CMS内容发布系统,进度50%+。目前的风格是沿用现有官网为主。通过cms实现网站内容全动态。
|
||||
|
||||
2、少部分时间用于查阅研发体系资料,5月份会花一段时间,完善性能测试相关的体系资料(这一部分目前是缺失的,包括资料和工具本身。 目前的想法是,通过AI 做 性能测试工具)。
|
||||
|
||||
我下周的主要工作:
|
||||
做完 尿大夫官网+CMS内容发布系统!5.1之后上线,替换现有官网。
|
||||
|
||||
小温:上周部署了测试用的AI 客服,我也打了一个android测试包配合他的ai agent测试。能做基本的客服。
|
||||
下周,让唐莉他们也来用这个ai 客服,探讨一下功能
|
||||
|
||||
---
|
||||
|
||||
蔡贤明上周的工作:
|
||||
1. 基本做完 尿大夫官网+CMS内容发布系统的基础版本
|
||||
|
||||
蔡贤明下周的主要工作:
|
||||
1. 发布尿大夫官网,替换现有官网。准备部署在一台 不是尿大夫的管理平台的服务器上,后续在上面在放一个ai agent,方便后续的维护和开发。
|
||||
2. 继续优化官网的内容:geo ,seo优化。
|
||||
3. 完善性能测试相关的体系资料(这一部分目前是缺失的,包括资料和工具本身。 目前的想法是,通过AI 做 性能测试工具)
|
||||
---
|
||||
温景涛本周完成工作:
|
||||
1.DeepSeek结果解读切换对接到腾讯云新的TokenHub接口
|
||||
2.查阅扣子平台文档,继续深入了解平台提供的服务能力与实践方式
|
||||
3.开发AI智能客服
|
||||
|
||||
温景涛下周工作计划:
|
||||
开发AI智能客服工作后端业务板块
|
||||
|
||||
---
|
||||
|
||||
|
||||
蔡贤明上周的工作:
|
||||
1. 基本做完 尿大夫官网+CMS内容发布系统的基础版本
|
||||
2. 发布尿大夫官网。部署在niaodaifu.com。
|
||||
3. 继续优化官网的内容:geo ,seo优化。【基本没有做这个事情,下周做】
|
||||
4. 完善了几个产品web html页
|
||||
企业荣誉墙
|
||||
https://niaodaifu.com/static/honor/index.html
|
||||
招商加盟
|
||||
https://niaodaifu.com/static/zsjm/index.html
|
||||
尿大夫.尿检云
|
||||
https://niaodaifu.com/static/ndf/index.html
|
||||
基层医疗.吴试纸
|
||||
https://niaodaifu.com/static/wupaper/index.html
|
||||
通焦仪
|
||||
https://niaodaifu.com/static/tjy/index.html
|
||||
宠物尿检.嘘嘘邦
|
||||
https://niaodaifu.com/static/xuxucheck/index.html
|
||||
5. 完善性能测试相关的体系资料,自己编写工具【基本没有做这个事情,下周做】
|
||||
|
||||
蔡贤明下周的主要工作:
|
||||
1. 基于尿大夫官网+CMS,继续优化运营工具
|
||||
2. 继续优化官网的内容:geo ,seo优化
|
||||
3. 完善性能测试相关的体系资料,自己编写工具
|
||||
|
||||
---
|
||||
温景涛上周完成工作:
|
||||
1.调整前端云服务器部署PHP运行环境,并在生产环境进行代码测试与bug修复
|
||||
2.调整APP视频教程,压缩视频大小节省云点【压缩原有的教程视频,一个月能省一些钱】
|
||||
3.开发AI智能客服,查阅扣子平台文档,继续深入了解平台提供的服务能力与实践方式 【上周基本停滞】
|
||||
|
||||
温景涛下周工作总结:
|
||||
1 整理痛风问卷调查与评估需求与功能开发
|
||||
2.新服务器申请,部署计划等
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
蔡贤明上周的工作:
|
||||
1. niaodaifu.com官网本身内容的geo和seo优化,遵从AI的建议
|
||||
2. 完成尿大夫云平台算法代码的改造(其一,32位到64位升级,其二,将云平台之前的PHP和opencv之前的紧耦合调用方式改成HTTP REST API方式,这也是我一直想做的事情)
|
||||
【因为尿大夫腾讯云服务器到期,服务器需要升级,opencv算法的部分做完了,后续温景涛需要升级 PHP相关代码和架构,适应新服务器架构和算法调用api的对接】。
|
||||
3. 完善性能测试相关的体系资料,自己编写工具【基本没有做这个事情,下周做】
|
||||
|
||||
蔡贤明下周的主要工作:
|
||||
1. 基于尿大夫官网+CMS,继续优化运营工具【下周开始做】
|
||||
2. 完善性能测试相关的体系资料,自己编写工具【下周正式开始做】
|
||||
|
||||
|
||||
---
|
||||
温景涛上周完成工作:
|
||||
1 痛风问卷调查与评估需求与功能开发
|
||||
2 升级了一台腾讯云服务器,后续的升级开发基于此服务器
|
||||
3 启动ACR 及 蛋白之类的单联或2联试纸的识别(新申请一个小程序进行开发和部署)
|
||||
|
||||
温景涛下周工作总结:
|
||||
1 开始ACR 2联试纸的识别,试纸就位后替换成真正的试纸进行食品
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
蔡贤明上周的工作:
|
||||
1. 基于尿大夫官网+CMS,继续优化运营工具:编写了3个采集工具,可以采集或者批量几乎任何网站的内容。
|
||||
尝试通过微信批量采集工具,采集了数百篇围绕 尿检等相关的 公众号文章,下周还会继续做这个。
|
||||
这些文章,我的想法是:通过后续编写的通过AI实现的文章改写工具,定期改写这些文章,然后自动发布。
|
||||
2. 完善性能测试相关的体系资料,自己编写工具:初步实现了一个性能测试工具,基本可以使用。
|
||||
下周还需要优化,关于出测试报告这一块的功能;
|
||||
已经可以测试线上的服务器,但是担心干扰了线上服务器,所以我要把局域网之前没有完全搞好的本地尿大夫的**本地云平台**搞好。有一些小小的问题。
|
||||
|
||||
蔡贤明下周的主要工作:
|
||||
|
||||
1. 基于尿大夫官网+CMS,继续优化运营工具【采集数据,及 编写 AI 文章改写工具,看看能不能从改写数据库文章,到自动发公众号,在无人干预的情况下】
|
||||
2. 完善性能测试相关的体系资料,自己编写工具【完善性能工具】
|
||||
3. 让本地**云服务器**跑起来,能够基于本地服务器,进行性能测试(方便任何人的检查)。
|
||||
|
||||
---
|
||||
温景涛上周完成工作:
|
||||
1 ACR 2联试纸的识别,试纸就位后替换成真正的试纸
|
||||
2 申请新小程序
|
||||
3 支持第三方公众号sdk对接
|
||||
|
||||
温景涛下周工作总结:
|
||||
1 继续完成ACR 2联试纸的识别的小程序
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
|
||||
|
||||
website-new官网项目的后台管理的内容列表中的文章,对应处于草稿状态的文章,我希望有这样的需求:
|
||||
1、读取草稿文章的内容,通过大模型改写文章;
|
||||
2、将改写好的文章,覆盖数据库中的原文章,并将文章的状态从“草稿”改成“发布”;
|
||||
3、如果你能识别图片内容的话,丢弃无效的图片(比如:包含二维码的图片,包含原作者图像的图片,包含一般性人物头像的图片等),对于有效图片,可以通过我们的AI生图Seedream模型,重新生成类似的图片;
|
||||
4、将改写好的文章发布公众号文章;
|
||||
|
||||
|
||||
对于以上功能和需求,用户可能发起的方式有:
|
||||
1、通过技能触发,也就是直接在nanobot里面,告诉你,在网站后台找到某个草稿文章,改写和覆盖,然后发布公众号文章;
|
||||
2、用户在管理后台的草稿文章列表中,点击某个按钮“改写和发布”,然后通过固定的代码流程实现上述功能;
|
||||
|
||||
关于以上我的论述,你理解一下,给出你的想法和建议! 我们先讨论方案,再决定具体实现。
|
||||
|
||||
---
|
||||
|
||||
Nanobot给LLM的提示词!改写提示词在 `website-new/rewrite/pipeline.py` 里,核心是这个 `SYSTEM_PROMPT`:
|
||||
|
||||
```
|
||||
你是一个专业的医疗健康内容编辑。请将下面的文章改写为适合微信公众号发布的版本。
|
||||
|
||||
改写要求:
|
||||
1. 保持医疗准确性: 不得改变任何医学事实、数据、诊断标准、用药建议
|
||||
2. 风格口语化: 用亲近自然的语气,像医生朋友在聊天。适当使用emoji(每段不超过1个)
|
||||
3. 保留结构: 保留原文的章节标题和信息层次,但标题可以重新提炼得更吸引人
|
||||
4. 精简优化: 去除重复表述,合并相近内容,让文章更紧凑
|
||||
5. 适合手机阅读: 段落短小(2-3句一段),善用小标题和列表
|
||||
6. 只输出改写后的 markdown,不要加任何解释说明
|
||||
|
||||
输出格式: 纯 markdown 文本,可以包含:
|
||||
- **粗体** 强调关键信息
|
||||
- 无序列表 -
|
||||
- ## 二级标题(如果需要)
|
||||
- 段间空行分隔
|
||||
```
|
||||
|
||||
**调用参数**:模型 `deepseek-v4-flash`,temperature 0.7,max_tokens 4096。
|
||||
|
||||
顺便提一下,pipeline 里也有「志玲模式」——传 `--content-file` 参数可以跳过 LLM 改写,直接用你预改写好的 markdown 去发布。
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 你的需求我这样理解
|
||||
|
||||
核心流程是一条流水线:
|
||||
|
||||
```
|
||||
草稿文章 → LLM改写 → 图片清洗/重生成 → 覆盖DB+改状态 → 发布公众号
|
||||
```
|
||||
|
||||
两个触发入口:① 跟我聊天触发(Nanobot skill);② 管理后台按钮触发(前后端自动化)。
|
||||
|
||||
---
|
||||
|
||||
## 我的分析和建议
|
||||
|
||||
### 1. 方案①(Nanobot skill)—— 现在就能做,几乎零成本
|
||||
|
||||
我本身就是一个 LLM,你告诉我找某篇草稿,我就可以:
|
||||
|
||||
- 通过 API/数据库读取文章内容
|
||||
- 改写正文
|
||||
- 更新数据库(状态改为"发布")
|
||||
- 调用 `baoyu-post-to-wechat` 发公众号
|
||||
|
||||
**图片处理**是唯一需要额外工具的环节。需要分两层:
|
||||
|
||||
| 检测类型 | 技术方案 | 难度 |
|
||||
|---------|---------|------|
|
||||
| 二维码 | `pyzbar` 库,准确率很高 | 低 |
|
||||
| 人物头像/人像 | OpenCV 人脸检测 或 调用视觉模型 | 中 |
|
||||
| "原作者图像"等语义判断 | 必须用视觉 LLM(如 GPT-4V),纯代码做不到 | 高 |
|
||||
|
||||
建议**图片处理分阶段**:先上二维码过滤(简单可靠),人像检测视需求再加。
|
||||
|
||||
### 2. 方案②(管理后台按钮)——需要后端支持
|
||||
|
||||
这个链路长,涉及:
|
||||
|
||||
- **前端**:文章列表加"改写和发布"按钮,点击后调 API,展示进度
|
||||
- **后端**:新增 API 端点,编排整个流水线(读文章→调 LLM→处理图片→更新 DB→发公众号)
|
||||
- **异步化**:整条链路耗时可能 30s~2min(LLM + 图片生成),不适合同步 HTTP,建议用后台任务 + 轮询状态
|
||||
|
||||
### 3. 能不能复用现有东西?
|
||||
|
||||
已有的可以直接用:
|
||||
|
||||
- **公众号发布**:`baoyu_optimized.py` 的发布逻辑 + 博客同步
|
||||
- **Seedream 生图**:API Key 和模型已配好
|
||||
- **文章 DB 操作**:后端 FastAPI 已有文章 CRUD,直接调 ORM 或 API
|
||||
|
||||
跟 `wewrite` skill 的关系:wewrite 流程是「改编→排版→发布」,你这个新需求本质上是同一套流程,只是**起点不同**(CMS 草稿 vs 外部来源)。可以考虑把核心流水线抽象出来共用。
|
||||
|
||||
### 4. 我建议的实施顺序
|
||||
|
||||
1. **先跑通方案①**(Nanobot 手动触发)——验证整条链路可行,摸清耗时和坑
|
||||
2. **再补方案②**(后台按钮)——基于方案①的成熟逻辑,封装成后端 API + 前端按钮
|
||||
3. **图片 AI 判断最后做**——前期先人工判断哪些图要丢,稳定后再接入视觉模型
|
||||
|
||||
---
|
||||
|
||||
## 想先确认几个问题
|
||||
|
||||
- 改写风格有偏好吗?比如保持原文结构还是自由发挥?面向什么受众?
|
||||
- 图片重生成:是希望 Seedream「根据原图描述生成类似的」,还是「根据文章上下文全新配图」?
|
||||
- 方案①要不要我现在就试一篇文章跑通看看效果?
|
||||
-
|
||||
|
||||
---
|
||||
|
||||
|
||||
好,我仔细看了现有代码,现在给你分析。
|
||||
|
||||
---
|
||||
|
||||
## 现有两个技能的职责
|
||||
|
||||
| | wewrite | baoyu-post-to-wechat |
|
||||
|---|---|---|
|
||||
| **输入** | 外部来源内容 | Markdown/HTML 文件 |
|
||||
| **职责** | 改编→排版→发布 | 文件→公众号草稿 + 博客同步 |
|
||||
| **博客同步** | 无 | **有**(blog_sync.py,同步到 129.211.173.87 那个博客) |
|
||||
|
||||
两者都不适合直接套用。新流程的独特性在于:
|
||||
|
||||
- **输入是 CMS 数据库里的草稿文章**(不是文件,不是外部来源)
|
||||
- **需要回写 CMS 数据库**(改状态)
|
||||
- **不需要博客同步**(那个是另一个项目)
|
||||
|
||||
---
|
||||
|
||||
## 我的建议:新建一个独立 skill
|
||||
|
||||
推荐方案:**新建 `cms-rewrite-publish`**,不修改现有两个 skill。
|
||||
|
||||
理由很简单:
|
||||
|
||||
**复用而不修改**——`baoyu-post-to-wechat` 里的 `WeChatPublisher` 类是干净的公众号 API 封装(获取 token、上传图片、创建草稿),新 skill 直接 `import` 它来用,但**不调用** `publish_markdown_with_images()`(因为它绑定了博客同步)。
|
||||
|
||||
新 skill 的流程:
|
||||
|
||||
```
|
||||
CMS草稿 → 我(LLM)改写 → WeChatPublisher.create_draft() → SQLite改状态
|
||||
```
|
||||
|
||||
具体来说:
|
||||
|
||||
```
|
||||
1. 通过 API 或 SQLite 找到草稿文章(按标题 / 按栏目最新)
|
||||
2. 我读取内容,直接改写(我就是 LLM,不需要调外部 API)
|
||||
3. 调用 WeChatPublisher.create_draft(title, html, author, digest, cover)
|
||||
4. SQLite UPDATE articles SET status='published' WHERE id=?
|
||||
5. (图片处理后期再加)
|
||||
```
|
||||
|
||||
关键点:
|
||||
- **博客同步被自然绕过**——因为我们直接调 `create_draft()`,不走 `publish_markdown_with_images()` 那条带 blog_sync 的路径
|
||||
- **`baoyu-post-to-wechat` 完全不动**——它继续服务原有的「文件→发布」场景
|
||||
- **新 skill 轻量**——主要是编排逻辑 + CMS 操作,公众号能力都复用
|
||||
|
||||
---
|
||||
|
||||
## 跟你的触发方式的对应
|
||||
|
||||
两种触发方式都能覆盖:
|
||||
|
||||
| 触发方式 | 实现 |
|
||||
|---------|------|
|
||||
| 跟我聊天说「改写 xxx 标题的草稿」 | 新 skill 的 SKILL.md 写清楚触发词,我按流程执行 |
|
||||
| 后台按钮(方案②后续) | 后端新增 API,内部调用同样的 Python 逻辑 |
|
||||
|
||||
---
|
||||
|
||||
## 如果同意,下一步我做什么?
|
||||
|
||||
1. 检查一下 `baoyu_optimized.py` 里 `create_draft()` 的签名,确认直接调用没问题
|
||||
2. 创建新 skill 目录和 SKILL.md
|
||||
3. 写一个轻量的 Python 脚本做 CMS 侧操作(查文章、更新状态)
|
||||
4. 先拿一篇真实草稿跑通全流程验证
|
||||
|
||||
你觉得这个方向可以吗?
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
基于你写的完整设计文档已写入 `/home/ubuntu/website-new/docs/CMS_REWRITE_PUBLISH.md`
|
||||
你逐步执行你说的4点:
|
||||
1. 检查一下 `baoyu_optimized.py` 里 `create_draft()` 的签名,确认直接调用没问题
|
||||
2. 创建新 skill 目录和 SKILL.md
|
||||
3. 写一个轻量的 Python 脚本做 CMS 侧操作(查文章、更新状态)
|
||||
4. 先拿一篇真实草稿跑通全流程验证
|
||||
|
||||
另外:关于第3点, Python 脚本的一些事情。这个技能是跟网站项目紧耦合的,我建议相关的Python代码,放到网站项目/mnt/datadisk0/www/new-media-platform/website-new的某个目录下比较好。
|
||||
|
||||
|
||||
---
|
||||
|
||||
## pinkbear提取sogou.weixin的逻辑!!! 非常好
|
||||
|
||||
你现在的提取真实 URL 逻辑,是不是跟/home/ubuntu/new-media-platform/website-new/backend/app/routers 一样?
|
||||
|
||||
|
||||
已修复完成,总结一下改动:
|
||||
|
||||
**问题原因**:搜狗 `link?url=` 页面返回的是反爬页面(仅 822 字节),包含一段 JS 用 `url += '...'` 拼接出真实的 `mp.weixin.qq.com/s?` 链接。之前直接把这个反爬页面当文章内容解析,导致所有文章内容为空(标题全是"搜狗搜索")。
|
||||
|
||||
**修复内容**(`api/lib/wechat-crawler.ts`):
|
||||
|
||||
1. **新增 `extractSogouRedirectUrl()`** — 从反爬页 JS 中提取拼接的真实微信文章 URL
|
||||
2. **新增 `isSogouAntiSpiderPage()`** — 检测是否为搜狗反爬页面(特征:长度 < 2000 + `setTimeout` + `url +=` + `mp.weixin.qq.c`)
|
||||
3. **修改 `fetchWechatArticle()`** — 检测到反爬页面后:
|
||||
- 提取真实 URL → 延迟 1.5s → 带微信 UA 直接请求 `mp.weixin.qq.com`
|
||||
- 将获取到的正文 HTML 传给 `extractWechatContent` 正常解析
|
||||
|
||||
**清理**:
|
||||
- 已从数据库删除 94 条空内容微信文章
|
||||
- 服务已重建并重启运行中
|
||||
|
||||
|
||||
**不一样。两者策略完全不同:**
|
||||
|
||||
**pink-app(`wechat-crawler.ts`)** — 纯 HTTP 方案(axios)
|
||||
- 请求搜狗链接 → 拿到反爬 HTML → 用正则从 `setTimeout` 内的 JS 代码中提取出 `url += '...'` 拼接后的真实 `mp.weixin.qq.com/s?` URL → 用那个 URL 重新请求文章内容
|
||||
- 不依赖浏览器,纯文本解析
|
||||
|
||||
**new-media-platform(`wechat_crawl.py`)** — Playwright 浏览器方案
|
||||
- 直接启动 Playwright + Stealth 浏览器 → 先访问搜狗搜索页建立会话 → 然后 `page.goto(url)` 加载页面
|
||||
- JS 由浏览器自动执行,不需要手动提取 URL
|
||||
- 反爬页面的 `setTimeout` + `window.location.replace(url)` 在浏览器中会自动跳转到真实微信 URL
|
||||
|
||||
**简而言之**:pink-app 是"文本提取型"——从代码里抠出真实 URL 再请求;新平台是"浏览器渲染型"——让 Playwright 自己处理 JS 跳转。
|
||||
|
||||
如果新平台也想像 pink-app 这样纯 HTTP 请求绕过反爬,可以复用 pink-app 的 `extractSogouRedirectUrl` 逻辑,改成 Python 版本。不过 Playwright 方案稳定性更好,代价是资源消耗大。
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
蔡叔叔,查过了:
|
||||
|
||||
---
|
||||
|
||||
**微信公众号 API 只有两步流程:**
|
||||
|
||||
1. `draft/add` → 创建草稿(我们现在做的)
|
||||
2. `freepublish/submit` → 将草稿提交发布
|
||||
|
||||
**没有一步直达的接口**,必须经过草稿。
|
||||
|
||||
---
|
||||
|
||||
所以目前保留在草稿箱是合理的。如果要全自动,加上第二步 `freepublish/submit` 就行,一行代码的事。但我建议**不自动发布**,原因跟你说的完全一致:
|
||||
|
||||
- 改写质量不可 100% 保证,人工过一眼更稳
|
||||
- 封面图、摘要这些 AI 生成的东西有时需要微调
|
||||
- 万一 DeepSeek 抽风输出敏感内容,还能拦住
|
||||
|
||||
现在每天早 8 点、晚 8 点自动生成 2 篇进草稿箱,操作人员上班看一眼点发布就行,效率和安全感都有。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user