14 🤖 利用 AI 来掌握 funboost 的正确方式
说明:
这个章节是在持续更新,模型和ai agent方式在持续变化。
早期章节14.0 和 14.1 说用 funboost_all_docs_and_codes.md 这个大合并文档来给ai用,现在新增几种对本地ai agent 更好的掌握funboost的方式 方式。
14.1 说的是用 funboost_all_docs_and_codes.md 文档来给ai用(这种适合ai大模型官网网页聊天,免费不要钱)
14.2 说的是用 funboost仓库目录下的 ./agents/skills 目录下的文件来给本地ai agent用。
14.3 说的是用 nbrag 向量化funboost的源码和教程,启动nbrag mcp,配置这个mcp来给ai agent用。
(以上说的这些方式,你都可以把funboost源码clone到本地,以备ai agent直接阅读源码和教程,这样写带阿米更准确)
🎯 核心结论(3步):
🌐 打开具备 1000k token 上下文的大模型官网网页
📤 上传
funboost_all_docs_and_codes.md文档💬 提问 funboost 相关问题
⚠️ funboost 不是 Django/FastAPI 这类人尽皆知的框架,AI 的训练数据中 funboost 信息极少。必须投喂完整文档,AI 才能无幻觉地回答。
14.0 ✅ 正确使用 AI 掌握 funboost 的方法
14.0.1 ❌ 常见错误方式(必须避免)
# |
🚫 错误做法 |
💥 为什么错 |
|---|---|---|
1 |
不上传文档,直接问 AI "funboost 怎么用" |
AI 训练数据中几乎没有 funboost 信息,会严重幻觉 🤯 |
2 |
在 Cursor / Trae / Qoder 等 IDE 中 |
IDE 为节省 token 不会全量阅读长文档,而是分步检索,准确率大幅下降 📉 |
3 |
在 Claude-code / Gemini-cli 等命令行 AI 中引用该文档 |
同上,agent 模式下不会一次性全量阅读 📉 |
4 |
使用 gemini.google.com(Gemini 官网)而非 aistudio.google.com |
Gemini 官网即使用 3.0 pro,实测幻觉仍然严重 🤯 |
5 |
使用 gemini-flash 而非 gemini-pro |
flash 模型推理能力不足,长文档理解差 🐢 |
14.0.2 ✅ 唯一正确的路径
必须同时满足以下 5 个条件:
🧠 使用原生支持 1000k token 上下文的大模型
🌐 在模型的官方网页中操作(不是 IDE、不是命令行)
📤 上传
funboost_all_docs_and_codes.md文档📖 模型会全量阅读上传的文档(网页版会全量读取,不像 IDE 只检索片段)
🎯 使用本章推荐的具体模型和网址
14.0.3 🆘 当你遇到问题时,请提供以下信息
如果按正确方式使用 AI 后仍有疑问,请说明:
🌐 你在哪个网页提问的(给出网址)
🤖 使用的什么模型(如 gemini-3.0-pro / deepseek-v3.2 / qwen-3.5)
📄 是否上传了文档(文档文件名是什么)
💬 你的具体提问内容是什么
14.0b 🛠️ nb_ai_context:冷门项目的 AI 上下文生成工具
funboost 的合并文档 funboost_all_docs_and_codes.md 就是使用 nb_ai_context 生成的。
💡 nb_ai_context 适用于任何冷门三方框架以及个人/公司的私有代码项目——将整个项目打包为单一 markdown,投喂给 AI 后效果极佳。对 Python 项目有专门的 AST 解析优化。
📦 安装:pip install nb_ai_context
14.0c ❓ 为什么要专门写第14章?
funboost 不是 Django/Flask/FastAPI 这类训练数据中大量存在的知名框架。任何 AI 在没有阅读完整文档的情况下,几乎 100% 会幻觉 🤯——编造不存在的参数名、类名、方法名。
🎯 本章的目的:教你用最省力的方式,让 AI 无幻觉地掌握 funboost 的全部细节。
14.0d 📊 各 AI 掌握 funboost 能力评分
(大模型进步很快,以下评分仅供参考 📅)
🤖 大模型 |
🌐 网址 |
⭐ 评分 |
📝 简要评价 |
|---|---|---|---|
DeepSeek 🥇 |
95 |
2026年支持1000k上下文,MHC+Engram技术,又快又准 |
|
Gemini 3.0 Pro 🥈 |
90 |
最早支持1000k窗口,幻觉少,跨章节推理强 |
|
Qwen 3.5 🥉 |
85 |
2026年支持1000k上下文,推理速度略慢 |
|
腾讯 ima 知识库 |
腾讯ima+funboost知识库 |
80 |
RAG 检索快,但全局连贯推理不如真1000k模型 |
14.1 📚 funboost_all_docs_and_codes.md 文档说明
14.1.1 ⚠️ 必须上传文档再提问
不上传文档直接提问,所有 AI 对 funboost 的回答几乎 100% 会幻觉(编造不存在的参数/类/函数)🤯。
14.1.2 📂 文档地址
GitHub 仓库 https://github.com/ydf0509/funboost 中有两个合并文档:
📄 文件 |
📝 内容 |
⭐ 推荐度 |
|---|---|---|
|
所有教程 markdown 合并 |
一般 |
|
教程 + 全部框架源码 |
🌟 推荐 |
14.1.3 🔧 文档使用 nb_ai_context 生成
funboost 合并文档的高质量源于 nb_ai_context 的生成方式——不是简单拼接文件,而是包含项目结构、AI 阅读指引、核心文件优先排列等优化。
14.1.4 💻 funboost AI 上下文 markdown 文档的生成代码
from nb_ai_context import AiMdGenerator, NbPath
project_name = "funboost"
project_root = fr"D:\codes\{project_name}"
project_summary = """
- `funboost` 是python 全功能分布式函数调度框架
- `funboost.faas` 是funboost的战略级核武器。使函数调度框架产生架构质变:从 Worker 到 Service
- 以下一定要记住,最最重要的 类和函数如下:
- @boost(BoosterParams(...)) 任意普通函数加上装饰器,变成分布式函数
- BoosterParams 装饰器入参控制大全,一定要学习这个类的所有入参配置;ai绝对不允许胡编乱造源码api和教程中不存在的BoosterParams字段入参。
- BrokerEnum:支持 40+ 种消息队列中间件。
- BoostersManager 管理分布式函数,高阶用法可能需要用到,例如启动一组消费函数,启动所有消费函数等。
- ApsJobAdder 类, 是定时任务的最重要使用方式的类
- ConcurrentModeEnum:funboost支持的并发模式。
"""
boost_spider_summary = """
- `boost_spider` = `funboost` 的爬虫增强工具库
- `boost_spider` 增加了3个爬虫常用类:RequestClient、SpiderResponse、DatasetSink,由 funboost 驱动调度和并发。
"""
ai_md_codes = AiMdGenerator(
r"D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files\funboost_all_codes.md"
).set_project_propery(project_name=project_name, project_root=project_root)
ai_md_docs = AiMdGenerator(
r"D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files\funboost_all_docs.md"
).set_project_propery(project_name="funboost_docs", project_root=r'D:\codes\funboost_docs')
funboost_most_core_source_code_file_list = [
"funboost/__init__.py",
"funboost/core/booster.py",
"funboost/core/func_params_model.py",
"funboost/constant.py",
"funboost/timing_job/timing_push.py",
"funboost/funboost_config_deafult.py",
"funboost/core/current_task.py",
"funboost/core/cli/discovery_boosters.py",
"funboost/core/msg_result_getter.py",
"funboost/publishers/base_publisher.py",
"funboost/consumers/base_consumer.py",
"funboost/core/active_cousumer_info_getter.py",
]
(
ai_md_codes
.clear_text()
.add_ai_reading_guide()
.add_project_summary(
project_summary=project_summary,
most_core_source_code_file_list=funboost_most_core_source_code_file_list)
.add_project_summary(
project_summary=boost_spider_summary,
project_root=r"D:\codes\boost_spider",
most_core_source_code_file_list=[
"boost_spider/__init__.py",
"boost_spider/http/request_client.py",
"boost_spider/sink/dataset_sink.py",
"boost_spider/sink/json_sink.py",
])
.merge_from_dir(
relative_dir_name='examples',
use_gitignore=True,
as_title=f"{project_name} examples",
should_include_suffixes=[".py", ".md", ".html"],
excluded_dir_name_list=[],
)
.merge_from_dir(
relative_dir_name=project_name,
use_gitignore=True,
as_title=f"{project_name} codes",
should_include_suffixes=[".py", ".md", ".html"],
excluded_dir_name_list=[
r"funboost\utils\dependency_packages",
r"funboost\utils\dependency_packages_in_pythonpath",
r"funboost/utils/func_timeout",
r"funboost\funboost_web_manager\static",
r"funboost/concurrent_pool/backup"
],
)
.merge_from_dir(
project_root=r"D:\codes\boost_spider",
relative_dir_name="boost_spider",
use_gitignore=True,
as_title="boost_spider codes",
should_include_suffixes=[".py", ".md", ".html"],
excluded_dir_name_list=[],
)
.get_textfile_info(is_show_info=True)
)
(
ai_md_docs
.clear_text()
.add_ai_reading_guide()
.add_project_summary(
project_summary=project_summary,
project_root=r"D:\codes\funboost",
most_core_source_code_file_list=funboost_most_core_source_code_file_list
)
.add_project_summary(
project_summary=boost_spider_summary,
project_root=r"D:\codes\boost_spider",
most_core_source_code_file_list=[
"boost_spider/__init__.py",
"boost_spider/http/request_client.py",
"boost_spider/sink/dataset_sink.py",
"boost_spider/sink/json_sink.py",
])
.merge_from_dir(
project_root=r"D:\codes\funboost",
relative_dir_name='examples',
use_gitignore=True,
as_title=f"{project_name} examples",
should_include_suffixes=[".py", ".md", ".html"],
excluded_dir_name_list=[],
)
.merge_from_dir(
project_root=r"D:\codes\funboost_docs",
relative_dir_name=r"source\articles",
use_gitignore=True,
as_title="funboost docs",
should_include_suffixes=[".md"],
excluded_dir_name_list=[],
)
.merge_from_files(
relative_file_name_list=["README.md"],
project_root=r"D:\codes\boost_spider",
as_title="boost_spider readme",
)
.get_textfile_info(is_show_info=True)
)
ai_md_docs_and_codes = NbPath(
r'D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files',
'funboost_all_docs_and_codes.md'
).clear_text().merge_text_from_files([ai_md_docs, ai_md_codes])
14.2 🛠️ 使用 .agents/skills 给本地 AI Agent 用
将 funboost 仓库目录下的 ./agents/skills 目录下的文件,复制到你的skills目录下,你写funboost相关代码时候,agent就能自动触发使用这些skill,高效写funboost代码
14.3 使用nbrag mcp
将 funboost 源码和教程向量化,启动 nbrag mcp,配置这个 mcp 来给 ai agent ,ai可以高效准确些代码。 nbrag由本人开发打造,是个rag mcp。