下载lazyLLM本地运行文档
:::tip
官网提供的 https://docs.lazyllm.ai/因为第三方远程脚本投毒是,extra_javascript 链了一个外部域名的脚本,而那个域名的文件内容被换了,现在没有办法正常访问
api.lazyllm.top 是 LazyLLM 官方自己的域名。这个域名下的脚本现在已经被换成广告跳转了(可能是域名过期被抢注、服务器被黑,或者官方自己挂的广告)。所以官方在线文档站现在访问也会跳广告 ------ 本地跑起来看反而是更安全的做法
:::
解决办法:
编辑 docs/mkdocs.template.yml 和生成的 mkdocs.yml,把 extra_javascript 里的 - assets/js/assistant.js 删掉(保留 lang-redirect.js 和 mathjax)。改完 Ctrl+F5 硬刷新浏览器。注意改模板才能持久,只改 mkdocs.yml 重新生成后会回来。
下载源码
github访问地址:https://github.com/LazyAGI/LazyLLM
bash
git clone git@github.com:LazyAGI/LazyLLM.git
bash
git submodule update --init Tutorial
我本人习惯vscode,无他免费开源,生态好,用vscode打开
docs/ 是 MkDocs + Material 文档站。mkdocs.yml 不在仓库里,是用 docs/gen_mkdocs_yaml.py 根据环境变量 LAZYLLM_LANGUAGE(CHINESE / ENGLISH)拼出来的:中文就指向 docs/zh + nav_zh.yml,英文就 docs/en + nav_en.yml,生成到项目根目录 mkdocs.yml。
bash
set "PYTHONUTF8=1"
配置准备文档环境
建虚拟环境(推荐,避免污染全局)
bash
python -m venv .venv
:::tip
Python 版本以 pyproject.toml 里的 requires-python 为准,先确认下版本对得上。
:::
bash
.venv\Scripts\activate
然后
bash
where pip
输出里带 .venv\Scripts\pip.exe 就对了。
bash
echo .venv/ >> .git\info\exclude
.git\info\exclude 是 git 自带的「只对自己本地生效」的忽略清单,它本身不被 git 跟踪 ------ 既不产生 diff,也不会混进以后可能的 PR,仓库文件一个字没改。
之后退出
bash
deactivate
装依赖(两条都要)
bash
pip install -r requirements.txt
bash
pip install -r docs/requirements.txt
第一条是让 lazyllm 包本身能被 import(mkdocstrings 要靠它抓 API 文档);第二条是文档工具链(mkdocs / material / mkdocstrings 等)。
复制静态资源到语言目录
bash
xcopy /E /I /Y docs\assets docs\zh\assets
bash
xcopy /E /I /Y docs\assets docs\en\assets
因为 docs_dir 是 docs/zh,图片/js/css 必须在这目录下才引用得到。
| 参数 | 含义 |
|---|---|
| /E | 连子目录一起复制(含空目录,assets/env/ 这种才会一起过去) |
| /I | 目标 docs\zh\assets 不存在时,自动当它是目录来创建 |
| /Y | 已存在同名文件时直接覆盖,不弹确认框 |
注入 API docstring(会改源码,慎看备注)
bash
set LAZYLLM_INIT_DOC=True
告诉 lazyllm:"我现在是要生成文档,不是要跑程序" ------ 于是它把 API 文档全部挂上,并且对缺失的可选依赖睁一只眼闭一只眼,好让文档工具能顺利把整个包 import 进去。
:::tip
set 只对当前这个 cmd 窗口有效,关掉窗口就没了。以后重新执行文档生成时,要重新 set 一次。
:::
bash
python docs/add_docstrings.py
资源链接 + 教程转换
bash
python docs/link_assets.py
bash
python docs/ipynb2md.py
生成 mkdocs.yml(中文)
bash
set "LAZYLLM_LANGUAGE=CHINESE"
bash
python docs/gen_mkdocs_yaml.py
bash
mkdocs serve -q -a 127.0.0.1:8000
最后就可以看到

后续操作
LazyLLM 的 lazyllm/tools/rag/init .py 用 _EXPORTS + getattr 动态导出,griffe 是纯静态解析看不见这些名字。因此 API Reference/tools.md 里 8 处引用必须写成真实模块路径:
lazyllm.tools.Document → lazyllm.tools.rag.document.Documentlazyllm.tools.Reranker → lazyllm.tools.rag.rerank.Reranker
lazyllm.tools.Retriever → lazyllm.tools.rag.retriever.Retriever
lazyllm.tools.rag.LazyLLMStoreBase → lazyllm.tools.rag.store.LazyLLMStoreBase
lazyllm.tools.rag.QueryEnhACProcessor → lazyllm.tools.rag.query_enh_ac.QueryEnhACProcessor
lazyllm.tools.rag.IndexBase.update/remove/query → lazyllm.tools.rag.index_base.IndexBase.*
本笔记配套的 lazyLLM-Open 仓库已包含上述改动;若使用官方原仓库,需自行修改,否则 API 参考页构建失败。
我把改动后的代码重新放置到一个开源仓库,后续只需要
bash
git clone git@gitcode.com:youhujun/lazyLLM-Open.git
然后参考上面的操作就可以了
也可以
bash
mkdocs build
或者直接访问我构建好的