在当今AI技术快速发展的背景下,RAG(检索增强生成)和AI Agent已成为处理文档信息的主流方式。然而,我们日常编写的文档(如Markdown、HTML等)本质上都是为人类阅读设计的,这种设计理念与AI处理文档的需求存在根本性差异。
人类阅读文档时,能够自然地理解上下文、处理语言歧义,并适应非结构化的表达方式。但AI系统处理这些文档时,却会面临三大典型问题:
这些问题的根源在于传统文档编写时没有考虑AI处理的需求。GEO(Generative Engine Optimization,生成引擎优化)理念正是为解决这一问题而提出的,它强调文档不仅要"人类可读",更要"AI可理解、可调用"。
DocuFix-CLI作为GEO理念的开源实现,提供了一套完整的解决方案。它通过自动化工具链,帮助开发者将传统文档转换为AI友好的格式,显著提升RAG系统和AI Agent处理文档的效率和准确性。
DocuFix-CLI的解析模块(src/parser/)是整个工具链的基础,它负责将各种格式的原始文档转换为结构化数据。这个模块采用了差异化的处理策略:
对于网页文档,工具使用Playwright进行浏览器渲染模拟,确保获取完整的DOM结构后,再提取核心内容。这个过程会智能过滤广告、导航栏等无关元素,最终输出标准化的Markdown格式。这种处理方式特别适合技术博客、在线文档等场景。
对于本地文档,目前支持三种格式:
解析过程会提取以下关键元素:
输出结果是标准的AST(抽象语法树),其中每个节点都标注了类型、内容和位置信息。例如,一个典型的代码块节点会包含:
json复制{
"type": "code_block",
"language": "python",
"content": "print('Hello World')",
"line_start": 42,
"line_end": 44
}
审计模块(src/audit/)是DocuFix-CLI的核心价值所在,它基于预定义的规则体系对文档进行全方位评估。评分采用百分制,重点关注三个维度:
评估文档的结构合理性,具体包括:
典型问题场景:
评估代码块的质量,检查项包括:
常见问题:
评估文档的机器可读性:
:topic=RAG)问题示例:
审计完成后,工具会生成可视化报告,包括:
生成模块(src/generator/)根据审计结果,自动输出两种AI专用格式:
这种极简格式专为RAG系统设计,特点包括:
示例输出:
markdown复制## 2.3 代码优化技巧
Python 3.8+环境下使用性能优化方法...
```python
# 环境要求:Python ≥3.8, numpy≥1.21
import numpy as np
def vectorized_operation(arr):
"""向量化操作提升性能"""
return np.log1p(arr)
关键词:performance, numpy, vectorization
code复制
#### mcp-server.json配置
基于MCP(Model Context Protocol)协议的配置文件,支持:
- 本地HTTP服务器部署文档
- 定义检索规则和关键词映射
- 流式返回文档片段
- 支持主流AI客户端(Cursor/Claude等)通过API调用
配置示例:
```json
{
"server": {
"port": 5000,
"endpoints": {
"search": "/v1/search",
"stream": "/v1/stream"
}
},
"documents": {
"sections": [
{
"id": "sec_2_3",
"title": "代码优化技巧",
"keywords": ["performance", "numpy"],
"content_path": "llms.txt#L42-L58"
}
]
}
}
DocuFix-CLI支持Python 3.8及以上版本,安装方式灵活:
bash复制# 检查Python版本
python --version # 需≥3.8
# 安装稳定版
pip install docufix-ai
# 安装Playwright组件(用于网页解析)
playwright install chromium
bash复制git clone https://github.com/cliu-debug/DocuFix-CLI.git
cd DocuFix-CLI
# 安装依赖
pip install -r requirements.txt
# 可编辑模式安装
pip install -e .
# 安装Playwright组件
playwright install chromium
注意:在Windows系统上,可能需要额外安装C++编译工具链。推荐使用Visual Studio Build Tools或MinGW。
基础用法:
bash复制# 审计本地文档目录
python -m src.cli scan ./docs
# 审计网页文档
python -m src.cli scan https://example.com/docs
进阶参数:
bash复制# 输出JSON格式报告
python -m src.cli scan ./docs --report json
# 忽略特定规则(如代码import检查)
python -m src.cli scan ./docs --ignore code-import
# 自定义报告输出目录
python -m src.cli scan ./docs --output ./audit-report
基础用法:
bash复制# 生成AI优化文档
python -m src.cli fix ./docs
进阶配置:
bash复制# 适配特定RAG框架
python -m src.cli fix ./docs --rag-framework langchain
# 自定义MCP服务器端口
python -m src.cli fix ./docs --mcp-port 8080
# 排除特定目录
python -m src.cli fix ./docs --exclude ./docs/archive
python复制from langchain.document_loaders import TextLoader
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
# 加载优化后的文档
loader = TextLoader("./llms.txt", encoding="utf-8")
documents = loader.load_and_split()
# 构建向量数据库
vector_db = Chroma.from_documents(
documents,
OpenAIEmbeddings(),
persist_directory="./chroma_db"
)
vector_db.persist()
# 执行查询
query = "如何优化Python代码性能?"
docs = vector_db.similarity_search(query, k=3)
print(docs[0].page_content)
bash复制python -m src.server --config ./mcp-server.json
在Cursor中配置:
在对话中直接引用文档:
code复制根据项目文档,说明如何使用向量化操作提升性能?
通过修改src/audit/rules.py,可以添加业务特定的检查规则:
python复制def check_api_examples(document_ast, config):
"""检查是否包含API调用示例"""
score = 15 # 规则权重
has_examples = False
for node in document_ast:
if node.type == "code_block" and "requests" in node.content:
has_examples = True
break
return score if has_examples else 0
# 注册新规则
SCORE_WEIGHTS = {
# 已有规则...
"api_examples": 15
}
在src/generator/rag_adapters/目录下添加新适配器:
python复制# weaviate_adapter.py
def generate_weaviate_schema(llms_content):
"""生成Weaviate类定义"""
return {
"class": "DocumentSection",
"properties": [
{
"name": "content",
"dataType": ["text"],
"description": "文档内容"
},
{
"name": "keywords",
"dataType": ["text[]"],
"description": "GEO标签"
}
]
}
yaml复制name: DocuFix Automation
on: [push]
jobs:
optimize-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- run: |
pip install docufix-ai
playwright install chromium
- run: python -m src.cli fix ./docs --output ./docs/ai-optimized
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Auto-optimized docs for AI"
bash复制#!/bin/bash
# 遍历所有文档目录
for dir in ./docs/*; do
if [ -d "$dir" ]; then
echo "Processing $dir..."
python -m src.cli fix "$dir" --output "$dir/ai-optimized"
fi
done
# 生成汇总报告
python -m src.cli scan ./docs --report html --output ./reports
大文档处理:
--chunk-size参数控制内存占用--incremental模式缓存利用:
--cache-dir指定缓存位置分布式处理:
--parallel参数解决方案:
bash复制playwright install chromium
bash复制# Ubuntu/Debian
sudo apt install libgtk-3-0 libnotify4 libnss3 libxss1 libasound2
# CentOS/RHEL
sudo yum install alsa-lib-devel libXScrnSaver-devel
可能原因:
解决方法:
--strict-markdown参数诊断步骤:
bash复制lsof -i :5000
json复制// mcp-server.json
{
"server": {
"port": 5000 // 确保与启动参数一致
}
}
bash复制python -m src.server --config ./mcp-server.json --debug
在实际项目中,我们发现最大的挑战往往不是工具本身,而是改变团队的文档编写习惯。建议在项目中逐步引入DocuFix-CLI,先从自动化检查开始,再逐步过渡到全流程优化。对于已有的大型文档库,可以采用分批处理策略,优先优化核心章节。