5分钟AI工具推荐:GitHub仓库转专利交底书实测

2026-06-09阅读 0热度 0
Github

一、缘起

去年团队申报高新技术企业认定,每位研发人员被强制要求提交3份专利交底书。

我做了一个 AI 工具,把 GitHub 仓库 5 分钟转成专利交底书

团队瞬间炸锅——写代码是件快事,写专利文档简直是在渡劫。

深入调研后才发现,这是一个刚需明确、付费意愿强、但市面上缺乏趁手工具的垂直细分市场。

于是我们打造了「案流AI」(CaseFlow-AI)这款SaaS产品。本文不谈推广,重点拆解三个核心工程化决策背后的设计逻辑。

二、技术架构

┌──────────────────────────────────────┐
│前端: React + Vite + TailwindCSS      │
│├─ Auth                                │
│├─ Dashboard                           │
│├─ ProjectSetup                        │
│├─ Pipeline (SSE 实时进度)             │
│└─ Editor (Markdown + 预览 + AI 对话)  │
└──────────────┬───────────────────────┘
               │ JWT + REST + SSE
┌──────────────▼───────────────────────┐
│后端: FastAPI + SQLite                 │
│├─ Scanner (GitHub/docx 解析)          │
│├─ Mining (LLM 创新点挖掘)             │
│├─ PriorArt (国知局+Google Patents)    │
│├─ Builder (模板化生成器)              │
│├─ Renderer (mermaid → PNG)            │
│└─ Export (md → docx)                  │
└──────────────┬───────────────────────┘
               │
        ┌──────┴──────┐
        ▼              ▼
    DeepSeek      Gemini 2.5 Pro

三、3 个工程化决策

决策 1:防 LLM 幻觉的「abstract 锚定」

问题

初版设计直接让 LLM 从 50 条候选公开号中判断哪些与本案相关。结果令人头疼——幻觉频发。

LLM 经常返回类似“CN123456789A 高度相关,技术方案为 XXX YYY ZZZ”的结论。然而到 Google Patents 一查,要么公开号不存在,要么方案描述与真实摘要完全对不上。

解决方案

方案非常直接:强制每条候选公开号必须先获取到真实摘要(abstract),再让 LLM 基于该真实事实做相关性判断。

async def get_real_abstract(pub_number: str) -> str:
    """从 Google Patents 详情页抓取真实摘要"""
    url = f"https://patents.google.com/patent/{pub_number}/zh"
    html = await fetch(url)
    # 优先取 meta description
    meta = re.search(r'

效果立竿见影:相关性判断准确率从 60% 飙升至 95% 以上。

这里的核心洞察:LLM 不擅长事实判断,但极其擅长基于给定事实进行推理。关键在于始终提供可靠的事实锚点。

决策 2:国知局 WAF 的 4 级降级链

问题

国家知识产权局公布公告站 epub.cnipa.gov.cn 堪称专利查新的“圣杯”,但其反爬机制严苛到令人发指。

用 Playwright headless 模式访问时,等了 180 秒甚至 300 秒,检索框 #searchStr 仍不出现。如果直接放弃,用户就拿不到对比文献——而这正是产品的核心功能。

解决方案

最终设计了一套 4 级降级链:

async def search_prior_art(keyword: str) -> List[Patent]:
    # 第1级:优先尝试国知局公布公告 (Playwright)
    try:
        return await cnipa_epub_search(keyword)
    except WAFTimeout:
        pass
    # 第2级:降级到国知局简化接口 (requests)
    try:
        return await cnipa_simple_api(keyword)
    except SSLError:
        pass
    # 第3级:降级到 curl 子进程 (绕过 Python OpenSSL 握手问题)
    try:
        return await fetch_via_curl(keyword)
    except subprocess.CalledProcessError:
        pass
    # 第4级:最终降级到 Google Patents (海外稳定)
    return await google_patents_search(keyword)

每一级降级都会记录到 SSE 流中,让用户清晰看到“系统正在为我尝试所有可能”。

这里的通用经验:垂直 AI 产品的真正壁垒不在模型,而在数据通路。精心设计的降级链往往能把“几乎不可能”转化为“几乎总能成功”。

决策 3:Linux root 跑 Chrome 沙箱的玄学

问题

后端服务以 root 用户部署,调用 mmdc (mermaid-cli) 渲染图片时,触发了经典报错:

[FATAL:zygote_host_impl_linux.cc(127)] Running as root without --no-sandbox is not supported.

解决方案

绝不是简单加 --no-sandbox 参数(那样不安全),而是采取如下措施:

  1. 在 Docker 镜像内创建一个专门的 mermaid 用户:
RUN useradd -m -s /bin/bash mermaid
USER mermaid
  1. 嵌入中文字体(否则渲染出来全是方框):
RUN apt-get install -y fonts-wqy-microhei
RUN fc-cache -fv
  1. 运行时切换用户调用 mmdc:
subprocess.run(["sudo", "-u", "mermaid",
                "mmdc", "-i", input_md, "-o", output_png,
                "--puppeteerConfigFile", puppeteer_config])

这里的通用经验:生产环境中浏览器自动化的陷阱远超预期。铁律:绝不用 root 用户运行浏览器。

四、产品当前状态

  • ✅ 全流程打通:扫描 → 挖掘 → 查新 → 生成 → 渲染 → 导出
  • ✅ 支持 GitHub 仓库 / docx / pptx 输入
  • ✅ mermaid 自动渲染高清 PNG 嵌入 Word
  • ✅ 对话式迭代 + 自动版本管理(时间戳)
  • ✅ 项目隔离(用户数据完全隔离)

五、后续规划

  • 支持 GitLab、Gitee 仓库导入
  • 新增 PDF 全文解析
  • 开源 docx_to_mdcnipa_epub_search 等工具至 GitHub
  • 支持美欧专利局(USPTO / EPO)查新
  • 新增权利要求书自动生成模块(可选)

六、写在最后

垂直领域 AI 产品的护城河并非模型性能,而是工程化深度与领域专精的结合。

唯有亲身钻入真实业务流,才能精准区分哪些是真实痛点、哪些是伪需求、哪些环节适合 AI 替代、哪些必须保留人工审核。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策