{
  "generatedAt": "2026-08-06T14:11:34.943Z",
  "source": "笨办法学AI-校对稿",
  "sectionOrder": [
    "应用篇",
    "模型篇",
    "开发者篇",
    "基础理论篇"
  ],
  "note": "Code fences, bundled sample data, and model training files extracted from the proofread manuscript. Secret-looking values were replaced with placeholders before publishing. Filenames use manuscript file annotations when available; otherwise they use nearby example or short step labels instead of language-only names.",
  "files": [
    {
      "path": "应用篇/1-Chatbot-与-Prompt/第一次对话-01.txt",
      "fileName": "第一次对话-01.txt",
      "bytes": 1683,
      "sha256": "63ce87cfe70b8a5183367d56fd49c5ad25e02cb0ffa2ebb925a0a5dae759e90e",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 1,
      "sourceOrder": 6001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/第一次对话-02.ts",
      "fileName": "第一次对话-02.ts",
      "bytes": 81,
      "sha256": "36532b5b7fc76e186c9997e9be14a9389560d7ea015781288a347bf6c704ead0",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 2,
      "sourceOrder": 6002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/第一次对话-03.ts",
      "fileName": "第一次对话-03.ts",
      "bytes": 83,
      "sha256": "fe699bc6bb3b34e95e4ee5fff96d8b858c37ecdece9710e9481571c371176b8c",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 3,
      "sourceOrder": 6003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/第一次对话-04.ts",
      "fileName": "第一次对话-04.ts",
      "bytes": 135,
      "sha256": "1ae74b9ad57ab002c3654de64d39f3ecb5736b814f832c8f2299d1e79580142e",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 4,
      "sourceOrder": 6004,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/一个更好的问题-05.md",
      "fileName": "一个更好的问题-05.md",
      "bytes": 2179,
      "sha256": "ef05254db8f9811958e31f55a0d30a813298cd67e174030fbfefbae8c9608a1c",
      "kind": "markdown-code-fence",
      "language": "markdown",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 5,
      "sourceOrder": 6005,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/一个更好的问题-06.ts",
      "fileName": "一个更好的问题-06.ts",
      "bytes": 465,
      "sha256": "b03b2d8df1359cc2dddac88730920a5977176678192374fecc6c1a19ae7d15c2",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 6,
      "sourceOrder": 6006,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/一个更好的问题-07.ts",
      "fileName": "一个更好的问题-07.ts",
      "bytes": 462,
      "sha256": "c9f548f9822e351d7bba34f0780cfe320c9e420bc3f77fe99b57ed868497f988",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 7,
      "sourceOrder": 6007,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/Prompt-B-注意力分析-08.ts",
      "fileName": "Prompt-B-注意力分析-08.ts",
      "bytes": 696,
      "sha256": "be79ca9d81aadfdcbf3dc72add48d60f3532816790072530fbc6417cbb404c2d",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 8,
      "sourceOrder": 6008,
      "filenameSource": "book-context-refined"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/多次发送同一个问题-09.txt",
      "fileName": "多次发送同一个问题-09.txt",
      "bytes": 47,
      "sha256": "36a261820e43a34c58d039ff410494535ef336619443ee2b82f93c2fae94053c",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 9,
      "sourceOrder": 6009,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/1-Chatbot-与-Prompt/调整Temperature参数,观察模型输出-10.py",
      "fileName": "调整Temperature参数,观察模型输出-10.py",
      "bytes": 677,
      "sha256": "e54e77fef053138aa42f27dc468a1478ea2c543c3a98fa2efe62d071c2456335",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/1. Chatbot 与 Prompt/1. Chatbot 与 Prompt.md",
      "sourceTitle": "应用篇 / 1. Chatbot 与 Prompt / 1. Chatbot 与 Prompt.md",
      "block": 10,
      "sourceOrder": 6010,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/执行评测-01.txt",
      "fileName": "执行评测-01.txt",
      "bytes": 316,
      "sha256": "389d56ca6fec641c897e7f031bff5ac1709de31c6caa3a11c78cad120c794726",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 1,
      "sourceOrder": 7001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/gpt-4o-mini-02.txt",
      "fileName": "gpt-4o-mini-02.txt",
      "bytes": 132,
      "sha256": "2d06b298727711fd7e718f918df15aaa3b09acb99d7835dca36ed089ac1b5eac",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 2,
      "sourceOrder": 7002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/DeepSeek-V3-非联网版-03.txt",
      "fileName": "DeepSeek-V3-非联网版-03.txt",
      "bytes": 198,
      "sha256": "a764278edbf67c487d158749483354b416ab4a7d606a67a1f8c0741e35e56f24",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 3,
      "sourceOrder": 7003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/以这个AI新闻摘要任务为例,输入数据-04.txt",
      "fileName": "以这个AI新闻摘要任务为例,输入数据-04.txt",
      "bytes": 284,
      "sha256": "1108f993c78e6b0d48a5b03ff13044cf064ad705069e8427b07d55cfcff05efc",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 4,
      "sourceOrder": 7004,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/我们可以人为设计一个预期输出-05.txt",
      "fileName": "我们可以人为设计一个预期输出-05.txt",
      "bytes": 123,
      "sha256": "63d9b5ecc166bd41fff5bb8158010aaeae3d8f33b3ebb09998ffbbf5989be658",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 5,
      "sourceOrder": 7005,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/计算评测指标的代码-06.py",
      "fileName": "计算评测指标的代码-06.py",
      "bytes": 1771,
      "sha256": "63d8b160eed4200b36c84f56c1ea7b38d0b06a63cb9ac16bd105f110d493f51b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 6,
      "sourceOrder": 7006,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/使用AI评测提示词-07.js",
      "fileName": "使用AI评测提示词-07.js",
      "bytes": 658,
      "sha256": "095d51c9d7748c34c622c1dd3169449c52f30c697927c6ff40d073440a6ef3bb",
      "kind": "markdown-code-fence",
      "language": "javascript",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 7,
      "sourceOrder": 7007,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/使用AI评测提示词-08.txt",
      "fileName": "使用AI评测提示词-08.txt",
      "bytes": 622,
      "sha256": "a97c1f8e744280a49cf349d012d176c6d29e3e65a5d7899fb58937e393131eb4",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 8,
      "sourceOrder": 7008,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/2-AI-效果与评测/一句话AI新闻摘要评测-09.txt",
      "fileName": "一句话AI新闻摘要评测-09.txt",
      "bytes": 688,
      "sha256": "df4b469010649aab21f29a8a83e5356692c60842c6d99ad9d80005da86ef84b5",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 9,
      "sourceOrder": 7009,
      "filenameSource": "book-context-refined"
    },
    {
      "path": "应用篇/2-AI-效果与评测/可以用这个脚本下载数据集,存储到本地-10.py",
      "fileName": "可以用这个脚本下载数据集,存储到本地-10.py",
      "bytes": 1217,
      "sha256": "ea4660d2e167d41c96ab38d194d71a8fcc5cd23927035acec6df04f25ce5a768",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/2. AI 效果与评测/2. AI 效果与评测.md",
      "sourceTitle": "应用篇 / 2. AI 效果与评测 / 2. AI 效果与评测.md",
      "block": 10,
      "sourceOrder": 7010,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/3-工作流与-AI-编排/dify+deepseek-01.json",
      "fileName": "dify+deepseek-01.json",
      "bytes": 4784,
      "sha256": "715de354f3240694ff184f243f23849ba1b7204cad0e975a46d1910b9770f179",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "应用篇/3. 工作流与 AI 编排/3. 工作流与 AI 编排.md",
      "sourceTitle": "应用篇 / 3. 工作流与 AI 编排 / 3. 工作流与 AI 编排.md",
      "block": 1,
      "sourceOrder": 8001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/3-工作流与-AI-编排/Coze+豆包Seed-02.json",
      "fileName": "Coze+豆包Seed-02.json",
      "bytes": 6723,
      "sha256": "c26db0192a18b351ecf2fa6654f4e5b08d69a7b318e91bf8a719e8d30d06d380",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "应用篇/3. 工作流与 AI 编排/3. 工作流与 AI 编排.md",
      "sourceTitle": "应用篇 / 3. 工作流与 AI 编排 / 3. 工作流与 AI 编排.md",
      "block": 2,
      "sourceOrder": 8002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/3-工作流与-AI-编排/使用代码实现工作流-03.py",
      "fileName": "使用代码实现工作流-03.py",
      "bytes": 6326,
      "sha256": "51b367af35bc149e57c6414ca40db4acd49aaa974090a6693fd37964ed2bbc48",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/3. 工作流与 AI 编排/3. 工作流与 AI 编排.md",
      "sourceTitle": "应用篇 / 3. 工作流与 AI 编排 / 3. 工作流与 AI 编排.md",
      "block": 3,
      "sourceOrder": 8003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/4-Function-Call与Tool-Call-01.txt",
      "fileName": "4-Function-Call与Tool-Call-01.txt",
      "bytes": 130,
      "sha256": "a5fc9fd195b927abb3146817346c40e9eb60f2d39bf2b42673933f672bed8103",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 1,
      "sourceOrder": 9001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/在工作流中调用工具-02.txt",
      "fileName": "在工作流中调用工具-02.txt",
      "bytes": 34,
      "sha256": "1d0c9c45e2e0fa27e98c3097c5b2927e9e2326baaa760548dba450cd79d6f8e0",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 2,
      "sourceOrder": 9002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/2-使用代码运行节点,配置类似-03.py",
      "fileName": "2-使用代码运行节点,配置类似-03.py",
      "bytes": 129,
      "sha256": "787229071c47ba4438f98940673f9cb432c3f311b1a6eb1e0510bd1697205b80",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 3,
      "sourceOrder": 9003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/添加两个输入变量-04.json",
      "fileName": "添加两个输入变量-04.json",
      "bytes": 310,
      "sha256": "813041a4d0f3816e7c8d7c2b6eeb004d95eb64a26c6a81fb02ebbb1694df8191",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 4,
      "sourceOrder": 9004,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/调整LLM节点的Prompt-05.txt",
      "fileName": "调整LLM节点的Prompt-05.txt",
      "bytes": 82,
      "sha256": "c5b6d9d679eaba3aefd7ffa8f706899244772c2accbf0f5f95d272a3f810fcf2",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 5,
      "sourceOrder": 9005,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/创建一个工具-06.json",
      "fileName": "创建一个工具-06.json",
      "bytes": 563,
      "sha256": "d9f3aec7afac2c867c8d27a1f834c937460c9a5a0b8ca5437ae489f8d70f08a4",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 6,
      "sourceOrder": 9006,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/创建一个工具-07.txt",
      "fileName": "创建一个工具-07.txt",
      "bytes": 417,
      "sha256": "b88600f700abd8c78fc31cfe60af7019fdcdaef988be746f7db3d42bba15b977",
      "kind": "markdown-code-fence",
      "language": "",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 7,
      "sourceOrder": 9007,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/4-Function-Call与Tool-Call/使用OpenAI-API实现Function-Call-08.py",
      "fileName": "使用OpenAI-API实现Function-Call-08.py",
      "bytes": 8212,
      "sha256": "a13a8ec94d78954f502619f833f4f9bccd4baa36cb0ae4cabbf7bcfb8ee9ea97",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/4. Function Call与Tool Call/4. Function Call与Tool Call.md",
      "sourceTitle": "应用篇 / 4. Function Call与Tool Call / 4. Function Call与Tool Call.md",
      "block": 8,
      "sourceOrder": 9008,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/使用高德地图MCP-Server-01.py",
      "fileName": "使用高德地图MCP-Server-01.py",
      "bytes": 63,
      "sha256": "881bc03792275d17d03f1b20556d885f5a4fe2bbd0865790d2c4c5d1bb18d9b2",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 1,
      "sourceOrder": 10001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/回忆一下上一章的场景-02.txt",
      "fileName": "回忆一下上一章的场景-02.txt",
      "bytes": 129,
      "sha256": "00c944096ff4985f37ffbfc2448846446b08e5c0977953e48803c545f2f47adc",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 2,
      "sourceOrder": 10002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/实现股票分析工具集-03.py",
      "fileName": "实现股票分析工具集-03.py",
      "bytes": 955,
      "sha256": "93dcec2ee73f57a989a9e495fecc424d10f458e2d819e96eecc9c061f4656d09",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 3,
      "sourceOrder": 10003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/实现股票分析工具集-04.py",
      "fileName": "实现股票分析工具集-04.py",
      "bytes": 5124,
      "sha256": "2addd666226c757141c94b67e716161c4f9880baf2f5dd6117ea9e1380acb1b5",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 4,
      "sourceOrder": 10004,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/启动服务器-05.sh",
      "fileName": "启动服务器-05.sh",
      "bytes": 29,
      "sha256": "fc64280208e0fe9e6ca9eaea3b8352b6d701395c65295c0174b0c0659a426021",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 5,
      "sourceOrder": 10005,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/输出结果-07.py",
      "fileName": "输出结果-07.py",
      "bytes": 150,
      "sha256": "9c3c499c2e1b83913c8528cd543db15eb77ac97d7c13a0a70a5d1571273c7cf3",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 7,
      "sourceOrder": 10007,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/使用manus编写科技金融资讯-08.txt",
      "fileName": "使用manus编写科技金融资讯-08.txt",
      "bytes": 208,
      "sha256": "f68d48b3bde3baee16256e3aeb185e3f6012fbe653d5f6be8d78f054504baee0",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 8,
      "sourceOrder": 10008,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/1-列出计划,规划待执行的任务-09.txt",
      "fileName": "1-列出计划,规划待执行的任务-09.txt",
      "bytes": 266,
      "sha256": "3b69170449ec2b279c996ad7eb4d16c54be5bd35ce13c675ce2955dbab5989c5",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 9,
      "sourceOrder": 10009,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/使用manus编写科技金融资讯-10.txt",
      "fileName": "使用manus编写科技金融资讯-10.txt",
      "bytes": 377,
      "sha256": "f4bd2ae5e04a56551c9e8d9ddf236843a471d08d7c4f4472fee50903a1e8d8ea",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 10,
      "sourceOrder": 10010,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/使用manus编写科技金融资讯-11.txt",
      "fileName": "使用manus编写科技金融资讯-11.txt",
      "bytes": 616,
      "sha256": "05ad247151d523de3bb7d0a1f68fdff9c0000a2495c6c998110403f75fb3b397",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 11,
      "sourceOrder": 10011,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/5-撰写新闻资讯文章-12.txt",
      "fileName": "5-撰写新闻资讯文章-12.txt",
      "bytes": 117,
      "sha256": "1b5fcfb0bbb57966249ed3a19d3aba6cb7686fce6e6ad2f3175f5f293ca13954",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 12,
      "sourceOrder": 10012,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/1-补充内容指令,例如-13.txt",
      "fileName": "1-补充内容指令,例如-13.txt",
      "bytes": 34,
      "sha256": "6033c8d3010aa46e751075d85395daba51eaecc9a1531639e9c1fb6daaeada17",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 13,
      "sourceOrder": 10013,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/Manus的做法是重新执行了下述步骤-14.txt",
      "fileName": "Manus的做法是重新执行了下述步骤-14.txt",
      "bytes": 133,
      "sha256": "6913e60a36660a694d8d22b0083c73f553948a10ba2b0f6e289fd3fe990c56b0",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 14,
      "sourceOrder": 10014,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/RIPER阶段划分如下-15.txt",
      "fileName": "RIPER阶段划分如下-15.txt",
      "bytes": 668,
      "sha256": "1fd92193fe1b33965217eaa38c2f69309b36868bdcf83c85b562b50b68291614",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 15,
      "sourceOrder": 10015,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/完整的RIPER-5-Rule-16.txt",
      "fileName": "完整的RIPER-5-Rule-16.txt",
      "bytes": 3809,
      "sha256": "52c663ed82709db3f8b4e0622586507443803ab1d406c2c6ccdd8a132fa1bfc7",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 16,
      "sourceOrder": 10016,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/5-MCP协议与Agent智能体/stocktoolsserver.py",
      "fileName": "stocktoolsserver.py",
      "bytes": 920,
      "sha256": "479f8d021a3a793d450e3394264328e6e6dc134b8fd78c19228638d8533e7add",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/5. MCP协议与Agent智能体/5. MCP协议与Agent智能体.md",
      "sourceTitle": "应用篇 / 5. MCP协议与Agent智能体 / 5. MCP协议与Agent智能体.md",
      "block": 6,
      "sourceOrder": 10006,
      "filenameSource": "book-filename"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/在豆包或Chat-GPT中上传图片-01.txt",
      "fileName": "在豆包或Chat-GPT中上传图片-01.txt",
      "bytes": 258,
      "sha256": "81f2fbc2c0bbb8e5830eedf1f911f72b1ce48267f4681660434331bb8ef70fa2",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 1,
      "sourceOrder": 13001,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/在豆包或Chat-GPT中上传图片-02.md",
      "fileName": "在豆包或Chat-GPT中上传图片-02.md",
      "bytes": 6791,
      "sha256": "ca058a7f238d7110208c646c481774c0adbcc24039a17a97a62bdc4f1bead12d",
      "kind": "markdown-code-fence",
      "language": "markdown",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 2,
      "sourceOrder": 13002,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/使用ChatGPT进行文生图-03.py",
      "fileName": "使用ChatGPT进行文生图-03.py",
      "bytes": 126,
      "sha256": "62241c73b5bb6c4236367e2271cb93e85b34b710eee984e5bd13b12c6f87a05e",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 3,
      "sourceOrder": 13003,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/使用即梦进行文生图-04.py",
      "fileName": "使用即梦进行文生图-04.py",
      "bytes": 77,
      "sha256": "c772a27a901d0846db92b3effebd52da6a58a8100c5a265e395d1d48f0de5b73",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 4,
      "sourceOrder": 13004,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/图生图-05.txt",
      "fileName": "图生图-05.txt",
      "bytes": 83,
      "sha256": "fa0e359d07b5f836020bd40c2a3f6d404ac759b79da4db317c556486c09b02ba",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 5,
      "sourceOrder": 13005,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/传统的模型翻译方法-06.txt",
      "fileName": "传统的模型翻译方法-06.txt",
      "bytes": 263,
      "sha256": "586b5306fec41f6d55c3dc5c42a9eee87ce21418616c3dfed9792aff9d62c4b5",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 6,
      "sourceOrder": 13006,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/GPT-Realtime-07.txt",
      "fileName": "GPT-Realtime-07.txt",
      "bytes": 261,
      "sha256": "09766a2ac673aeec545c7d9d8d6bd86423a63e0ed688782afb72bbf08208a2ae",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 7,
      "sourceOrder": 13007,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/例如这个Prompt-08.txt",
      "fileName": "例如这个Prompt-08.txt",
      "bytes": 215,
      "sha256": "ca9539b0456b2938249d3d5b5f340b25a7740b0939e3e7bf5db59a86fab8918f",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 8,
      "sourceOrder": 13008,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/视频提示词-09.txt",
      "fileName": "视频提示词-09.txt",
      "bytes": 1299,
      "sha256": "76bd6782affa6842efaf5b59b39914a52e45db0ee7ba6efda9180a540a0afc99",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 9,
      "sourceOrder": 13009,
      "filenameSource": "book-context"
    },
    {
      "path": "应用篇/6-多模态模型与AIGC/音频提示词-10.txt",
      "fileName": "音频提示词-10.txt",
      "bytes": 476,
      "sha256": "6fb3e5689e20a8017e79540bed1f8be233395335702aedf3aeb4d4afbbd30990",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "应用篇/6. 多模态模型与AIGC/6. 多模态模型与AIGC.md",
      "sourceTitle": "应用篇 / 6. 多模态模型与AIGC / 6. 多模态模型与AIGC.md",
      "block": 10,
      "sourceOrder": 13010,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/在云服务上使用vLLM部署模型-01.sh",
      "fileName": "在云服务上使用vLLM部署模型-01.sh",
      "bytes": 587,
      "sha256": "1e70c71737a9870f62f2ba0cd9a808094506a32d38f7f77c29881e1e369f4d04",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 1,
      "sourceOrder": 22001,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/如果使用国内的云厂商,可能连接比较慢,可以指定pip镜像提供地址,例如腾讯云的地址-02.sh",
      "fileName": "如果使用国内的云厂商,可能连接比较慢,可以指定pip镜像提供地址,例如腾讯云的地址-02.sh",
      "bytes": 218,
      "sha256": "4364dd04d6bcd7586cc53491b95be5535468ec94be8c67af24b1f77a14df3424",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 2,
      "sourceOrder": 22002,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/下载模型-03.sh",
      "fileName": "下载模型-03.sh",
      "bytes": 80,
      "sha256": "ef61326821df94348cb033baec855a41504a60d5fa3bbfcd174cd6ba80978f97",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 3,
      "sourceOrder": 22003,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/下载模型-04.sh",
      "fileName": "下载模型-04.sh",
      "bytes": 42,
      "sha256": "5eab3ca1087a776506cc54928aca31c01e753e55410c320c2b36ad9344cc5cf7",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 4,
      "sourceOrder": 22004,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/运行模型-05.txt",
      "fileName": "运行模型-05.txt",
      "bytes": 87,
      "sha256": "f003b9db96cab7187ba7b11aeb9df352ff98f55a42c18bcbb721e7c2232d8c37",
      "kind": "markdown-code-fence",
      "language": "",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 5,
      "sourceOrder": 22005,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/使用serve命令启动vLLM服务推荐-06.txt",
      "fileName": "使用serve命令启动vLLM服务推荐-06.txt",
      "bytes": 353,
      "sha256": "c44215bd23b52a0512178949271260d1b024d2ab58f91a563a1c249aafea58a6",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 6,
      "sourceOrder": 22006,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/可以使用命令重写拉起模型-07.sh",
      "fileName": "可以使用命令重写拉起模型-07.sh",
      "bytes": 90,
      "sha256": "c2a9167a70c9d4e110ab5c225e51793929cbfc6a4918702203421d9961f269e6",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 7,
      "sourceOrder": 22007,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/或者使用多张卡-08.sh",
      "fileName": "或者使用多张卡-08.sh",
      "bytes": 64,
      "sha256": "849ffc22874510c04e2de2d43a51c1f4c7ea1cb1708c18f5a821f759140526df",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 8,
      "sourceOrder": 22008,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/启动后,可以另起一个窗口来访问模型-09.sh",
      "fileName": "启动后,可以另起一个窗口来访问模型-09.sh",
      "bytes": 281,
      "sha256": "43527231a343889f744d2699fe6c195545f0c53c3d65b1432751b278af840a44",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 9,
      "sourceOrder": 22009,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/测试Ollama部署模型的基础响应时间-10.sh",
      "fileName": "测试Ollama部署模型的基础响应时间-10.sh",
      "bytes": 243,
      "sha256": "21be3666885d48057da7bb5ba3d47712a13abd330901a799ec9ddd50396fee98",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 10,
      "sourceOrder": 22010,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/使用Python脚本对Ollama部署的模型进行详细测试-11.py",
      "fileName": "使用Python脚本对Ollama部署的模型进行详细测试-11.py",
      "bytes": 2241,
      "sha256": "467c4ed5bad0c3f7ce692d7f83f8b15ba76c501e253a319a8f308cf706730ac5",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 11,
      "sourceOrder": 22011,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/需要暂停掉之前正在运行的模型-12.sh",
      "fileName": "需要暂停掉之前正在运行的模型-12.sh",
      "bytes": 197,
      "sha256": "35685c6052c93829661b68f1383212c05631fb3f2316e9935b17a2308849b75e",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 12,
      "sourceOrder": 22012,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/2-模型部署-Ollama-vs-vLLM/运行benchmark测试-13.py",
      "fileName": "运行benchmark测试-13.py",
      "bytes": 2607,
      "sha256": "7a9ce2386626ecbbfb3402bbfae85c55c59f92c66edf3ea259654f916b57eaa5",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/2. 模型部署：Ollama vs. vLLM/2. 模型部署：Ollama vs. vLLM.md",
      "sourceTitle": "模型篇 / 2. 模型部署：Ollama vs. vLLM / 2. 模型部署：Ollama vs. vLLM.md",
      "block": 13,
      "sourceOrder": 22013,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/测试基座模型-01.py",
      "fileName": "测试基座模型-01.py",
      "bytes": 1271,
      "sha256": "19ef011475df360aab188d4bd4fbe95157fcaaa46bebf3e82c3aab5ae9719e8b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 1,
      "sourceOrder": 23001,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/启动微调任务-02.py",
      "fileName": "启动微调任务-02.py",
      "bytes": 1661,
      "sha256": "fa350d8761ad103aedd9e0ea8fa90dea9deddc0ee3aee20c7dca6fa1eba970a7",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 2,
      "sourceOrder": 23002,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/保存评测数据-03.py",
      "fileName": "保存评测数据-03.py",
      "bytes": 242,
      "sha256": "d75426951a4080b9b0b6557e3a5b6eb2beaf91a9097f196b835de27f0128dbc5",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 3,
      "sourceOrder": 23003,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/方案二-调整后的配置方案-04.py",
      "fileName": "方案二-调整后的配置方案-04.py",
      "bytes": 332,
      "sha256": "e31d24a37b02e18eef602d735784b309aa002345fe8b4f035a17d21c06ddd785",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 4,
      "sourceOrder": 23004,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/1-环境准备-05.py",
      "fileName": "1-环境准备-05.py",
      "bytes": 586,
      "sha256": "5b618b69c25c89ba76b66de809152ade4c91b220cf09ec97630dcc30ef5e78b0",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 5,
      "sourceOrder": 23005,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/下载模型-06.json",
      "fileName": "下载模型-06.json",
      "bytes": 84,
      "sha256": "19b1d21eb552419870b10474512c47511eb56c01f66fa1831260fc64ddf89ce8",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 6,
      "sourceOrder": 23006,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/下载模型-07.py",
      "fileName": "下载模型-07.py",
      "bytes": 1231,
      "sha256": "56499e5fda5ec136b6143e2affa6a92a406a4dc817d65400cb8829acb3089111",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 7,
      "sourceOrder": 23007,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/执行命令-09.sh",
      "fileName": "执行命令-09.sh",
      "bytes": 44,
      "sha256": "2cf095b990715052b4f35c2873d31de68415741833dc989c87c2501b8fcc6bff",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 9,
      "sourceOrder": 23009,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/运行命令-11.sh",
      "fileName": "运行命令-11.sh",
      "bytes": 47,
      "sha256": "a5b7c5443bdf2866927b4a35a1b200c5796841f77b8fddbc9ad4ce09ee5adec6",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 11,
      "sourceOrder": 23011,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/validation_sft-运行命令-13.sh",
      "fileName": "validation_sft-运行命令-13.sh",
      "bytes": 122,
      "sha256": "a0f6c11a72ba72643c9d144780f94f4f437ea684edffd0cb6f33c03e08bc5469",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 13,
      "sourceOrder": 23013,
      "filenameSource": "book-context-refined"
    },
    {
      "path": "模型篇/3-SFT微调实战/全参微调资源开销较大,需要调整配置-15.yaml",
      "fileName": "全参微调资源开销较大,需要调整配置-15.yaml",
      "bytes": 1659,
      "sha256": "700a19a63c633fc12dcceee6d4ad377c7484294312925d8fbdefa45f265c9f4e",
      "kind": "markdown-code-fence",
      "language": "yaml",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 15,
      "sourceOrder": 23015,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/运行训练-16.sh",
      "fileName": "运行训练-16.sh",
      "bytes": 47,
      "sha256": "c3ee869b8c48618cbcb451eedfb6ca6d12d0089cfaf2906f527ec21c0822ac06",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 16,
      "sourceOrder": 23016,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/使用LLaMA-Factory-框架进行全参数微调Full-FT-18.py",
      "fileName": "使用LLaMA-Factory-框架进行全参数微调Full-FT-18.py",
      "bytes": 2043,
      "sha256": "74b874582ba90ca0fe1d0b9589040507e8a3a3cd965b4678aea22ba3afcd3d4f",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 18,
      "sourceOrder": 23018,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/模型导出和优化-19.py",
      "fileName": "模型导出和优化-19.py",
      "bytes": 1084,
      "sha256": "57f413e63f6f34e7d7f2148f6c8751a9b2a9513397dc72b76a7f80a860ea2106",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 19,
      "sourceOrder": 23019,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/执行导出-20.py",
      "fileName": "执行导出-20.py",
      "bytes": 812,
      "sha256": "d0dbb8c98112030b661f96e05f29ef5c08b0c0f11957401bbc68ee6aed58a43a",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 20,
      "sourceOrder": 23020,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/保存量化模型-21.py",
      "fileName": "保存量化模型-21.py",
      "bytes": 2899,
      "sha256": "145bef14f8fdf9529e1ad53044939908e82a12b2a2187e4d550e20f6bd5ae17b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 21,
      "sourceOrder": 23021,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/在命令行中拉起服务-22.py",
      "fileName": "在命令行中拉起服务-22.py",
      "bytes": 62,
      "sha256": "c23cd2195f4e607345e187f49051f1de23ac24186f5baded36473d5c61011571",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 22,
      "sourceOrder": 23022,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/在另一个窗口调用服务-23.py",
      "fileName": "在另一个窗口调用服务-23.py",
      "bytes": 127,
      "sha256": "88c69e11c024a12c7e91cbcceb174f7eab3296184e36ef4d718b30fbedfd4149",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 23,
      "sourceOrder": 23023,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/3-SFT微调实战/confquicktest.yaml",
      "fileName": "confquicktest.yaml",
      "bytes": 1373,
      "sha256": "65a203934fe36094cec614987dce04f22656e7fee340cb296d21a4b80787167a",
      "kind": "markdown-code-fence",
      "language": "yaml",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 10,
      "sourceOrder": 23010,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/3-SFT微调实战/confsftqwenfull.yaml",
      "fileName": "confsftqwenfull.yaml",
      "bytes": 570,
      "sha256": "26d3396545069ca388a7cd440603c8fd07184bb536affb6091866d68b72c227c",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 17,
      "sourceOrder": 23017,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/3-SFT微调实战/confsftqwenlora.yaml",
      "fileName": "confsftqwenlora.yaml",
      "bytes": 1732,
      "sha256": "526718ab7bf433e5ae5fc7ddbe58e13cbae91c494567c34d1034298362cb9c3b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 12,
      "sourceOrder": 23012,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/3-SFT微调实战/eval.json",
      "fileName": "eval.json",
      "bytes": 3562,
      "sha256": "eddff2982eaee39f76583be0a4b3e1ae9d626b38ec24ed0dd1627be503148b17",
      "kind": "markdown-code-fence",
      "language": "yaml",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 8,
      "sourceOrder": 23008,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/3-SFT微调实战/validationsft.py",
      "fileName": "validationsft.py",
      "bytes": 161,
      "sha256": "851bbdf4a7a25a5e2d5ecf3d43871fbfff830bf3bd1081cab6a6a8ed555e1af9",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/3. SFT(微调)实战/3. SFT(微调)实战.md",
      "sourceTitle": "模型篇 / 3. SFT(微调)实战 / 3. SFT(微调)实战.md",
      "block": 14,
      "sourceOrder": 23014,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/dataset_info.json",
      "fileName": "dataset_info.json",
      "bytes": 810,
      "sha256": "31a68ab5cdec64b39c2824fe63e193f3dcb669d7702f2de33fa27c06b5c9d213",
      "kind": "training-file",
      "language": "json",
      "sourcePath": "模型篇/3-SFT微调实战/files/dataset_info.json",
      "sourceTitle": "模型篇/3-SFT微调实战/files/dataset_info.json",
      "sourceOrder": 7600,
      "filenameSource": "book-files",
      "block": null
    },
    {
      "path": "模型篇/3-SFT微调实战/files/eval.json",
      "fileName": "eval.json",
      "bytes": 259724,
      "sha256": "0e80538d7d771e6336c4bdd62b6425706152f6a5d6509b8547c4f704350c98dc",
      "kind": "training-file",
      "language": "json",
      "sourcePath": "模型篇/3-SFT微调实战/files/eval.json",
      "sourceTitle": "模型篇/3-SFT微调实战/files/eval.json",
      "sourceOrder": 7600,
      "filenameSource": "book-files",
      "block": null
    },
    {
      "path": "模型篇/3-SFT微调实战/files/qwen_base_evaluation_results.csv",
      "fileName": "qwen_base_evaluation_results.csv",
      "bytes": 20190,
      "sha256": "585256bf2fd76d959cfcc063ef322f2c2d87b5d74c798e3071b03def6435595f",
      "kind": "training-file",
      "language": "csv",
      "sourcePath": "模型篇/3-SFT微调实战/files/qwen_base_evaluation_results.csv",
      "sourceTitle": "模型篇/3-SFT微调实战/files/qwen_base_evaluation_results.csv",
      "block": null,
      "sourceOrder": 7600,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910165054-fsn68_job-20250910154559_global_step_3.xlsx",
      "fileName": "sst2_small_evaluation_results_ep-20250910165054-fsn68_job-20250910154559_global_step_3.xlsx",
      "bytes": 24787,
      "sha256": "e5d89603f3b97e195036a7f83bacd5be1348b7f31f1605db7ad4ff230fa78f49",
      "kind": "training-file",
      "language": "xlsx",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910165054-fsn68_job-20250910154559_global_step_3.xlsx",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910165054-fsn68_job-20250910154559_global_step_3.xlsx",
      "block": null,
      "sourceOrder": 7602,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910212745-r7mz8_job-20250910203325_global_step_2.xlsx",
      "fileName": "sst2_small_evaluation_results_ep-20250910212745-r7mz8_job-20250910203325_global_step_2.xlsx",
      "bytes": 24720,
      "sha256": "e789b6b727e8844d569fac940d6d4db5b003875bdc743462e4f401f66243a7d7",
      "kind": "training-file",
      "language": "xlsx",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910212745-r7mz8_job-20250910203325_global_step_2.xlsx",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_small_evaluation_results_ep-20250910212745-r7mz8_job-20250910203325_global_step_2.xlsx",
      "block": null,
      "sourceOrder": 7603,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_small_evaluation.xlsx",
      "fileName": "sst2_small_evaluation.xlsx",
      "bytes": 17943,
      "sha256": "26adbb265419417758caaa9efb22b9ab93651d1afc6c8900fbd82c62382924f7",
      "kind": "training-file",
      "language": "xlsx",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_small_evaluation.xlsx",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_small_evaluation.xlsx",
      "block": null,
      "sourceOrder": 7601,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_small_train_volcano.jsonl",
      "fileName": "sst2_small_train_volcano.jsonl",
      "bytes": 246300,
      "sha256": "b252105bea8859f61f28c688648c9eba69988ea13bd18f28c3a8dcbddcf03db0",
      "kind": "training-file",
      "language": "jsonl",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_small_train_volcano.jsonl",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_small_train_volcano.jsonl",
      "block": null,
      "sourceOrder": 7604,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_test_volcano.xlsx",
      "fileName": "sst2_test_volcano.xlsx",
      "bytes": 74438,
      "sha256": "ab0beaedaa09fd79c4a2da56815c246fb2dd1ab68341c4217e7c9b15902b0fd8",
      "kind": "training-file",
      "language": "xlsx",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_test_volcano.xlsx",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_test_volcano.xlsx",
      "block": null,
      "sourceOrder": 7606,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_test.csv",
      "fileName": "sst2_test.csv",
      "bytes": 196801,
      "sha256": "8b3448b283347bf76f27263b546d8fa623b4a2e7ad08b18a61a6cc5954d96332",
      "kind": "training-file",
      "language": "csv",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_test.csv",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_test.csv",
      "block": null,
      "sourceOrder": 7605,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_train.csv",
      "fileName": "sst2_train.csv",
      "bytes": 3842283,
      "sha256": "93756f95bcecacec1606d0387c19f348a82d2ff619a84af29c03925328f8db83",
      "kind": "training-file",
      "language": "csv",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_train.csv",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_train.csv",
      "block": null,
      "sourceOrder": 7607,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_validation.csv",
      "fileName": "sst2_validation.csv",
      "bytes": 95889,
      "sha256": "c6d0010e3e70024fa3ea611fd3fbda119efcfbb806a8d71f1fb1057994fb1bf2",
      "kind": "training-file",
      "language": "csv",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_validation.csv",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_validation.csv",
      "block": null,
      "sourceOrder": 7608,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/sst2_volcano_converted_results.xlsx",
      "fileName": "sst2_volcano_converted_results.xlsx",
      "bytes": 100801,
      "sha256": "23f73496307822152397ff5436731af957f7e722384842eb4f76bf07613a5a36",
      "kind": "training-file",
      "language": "xlsx",
      "sourcePath": "模型篇/3-SFT微调实战/files/sst2_volcano_converted_results.xlsx",
      "sourceTitle": "模型篇/3-SFT微调实战/files/sst2_volcano_converted_results.xlsx",
      "block": null,
      "sourceOrder": 7609,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/3-SFT微调实战/files/train_small.json",
      "fileName": "train_small.json",
      "bytes": 245443,
      "sha256": "9ccb6e9652eb1c5391f83eb86673bd579bd742934a9b9a5dd8f3feb4ae30d918",
      "kind": "training-file",
      "language": "json",
      "sourcePath": "模型篇/3-SFT微调实战/files/train_small.json",
      "sourceTitle": "模型篇/3-SFT微调实战/files/train_small.json",
      "sourceOrder": 7610,
      "filenameSource": "book-files",
      "block": null
    },
    {
      "path": "模型篇/3-SFT微调实战/files/train.json",
      "fileName": "train.json",
      "bytes": 16535027,
      "sha256": "7784ee259711d3294bcec02fcfb47647fa37131d0c938040c3e0c97c8a3c9acf",
      "kind": "training-file",
      "language": "json",
      "sourcePath": "模型篇/3-SFT微调实战/files/train.json",
      "sourceTitle": "模型篇/3-SFT微调实战/files/train.json",
      "sourceOrder": 7610,
      "filenameSource": "book-files",
      "block": null
    },
    {
      "path": "模型篇/4-从零开始训练模型/收集和处理预训练数据-01.py",
      "fileName": "收集和处理预训练数据-01.py",
      "bytes": 8476,
      "sha256": "634985de4a185e44fa7cf07d50eb3cf276d124b282df5ebdfa851d09f787fa83",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 1,
      "sourceOrder": 24001,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/输出目录结构-02.md",
      "fileName": "输出目录结构-02.md",
      "bytes": 107,
      "sha256": "6565e597b3571d91cfebcf78ea20f0aad9e8bf262a6c3d4f7c0d7a2eed6650ae",
      "kind": "markdown-code-fence",
      "language": "markdown",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 2,
      "sourceOrder": 24002,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/torchdatasetloader-02.py",
      "fileName": "torchdatasetloader-02.py",
      "bytes": 193,
      "sha256": "a7fe6063304bed6d69539d6081e92f62715c04e73bd04625fd7df5461f79cd3d",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 15,
      "sourceOrder": 24015,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/词汇表关键指标-03.sh",
      "fileName": "词汇表关键指标-03.sh",
      "bytes": 74,
      "sha256": "547c5bc863f8a95c2ccafcecb4971b850e0004bcf9f11055d8979fe281a16bed",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 3,
      "sourceOrder": 24003,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/torchdatasetloader-03.py",
      "fileName": "torchdatasetloader-03.py",
      "bytes": 5954,
      "sha256": "3a827429566a33167efcc80eb15566850731dc2fdf765592e753749e8c8b541a",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 16,
      "sourceOrder": 24016,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/训练集、验证集和测试集-04.json",
      "fileName": "训练集、验证集和测试集-04.json",
      "bytes": 487,
      "sha256": "cd629b0f9e94e4c7a388fd3bb8c3a8192350dc9c6d8830603bc290b35edaf15a",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 4,
      "sourceOrder": 24004,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行脚本-06.sh",
      "fileName": "运行脚本-06.sh",
      "bytes": 181,
      "sha256": "6cdbd4c863503531cbf5bfc4f41d256bb049f62572974654acf4483ade5863e9",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 6,
      "sourceOrder": 24006,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/这里是一个计算语料长度分布的脚本-07.py",
      "fileName": "这里是一个计算语料长度分布的脚本-07.py",
      "bytes": 5428,
      "sha256": "df3c64c673774f7958fd0599f6cca59894ecef427ffe51dc6d5f3d5b6afd231d",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 7,
      "sourceOrder": 24007,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/Padding-estimate-over-candidates-08.sh",
      "fileName": "Padding-estimate-over-candidates-08.sh",
      "bytes": 274,
      "sha256": "df2a61613ee7291a0387b41b0ead40e5503ef877b8c206c993bacc5b8138124a",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 8,
      "sourceOrder": 24008,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/Padding-estimate-over-candidates-09.py",
      "fileName": "Padding-estimate-over-candidates-09.py",
      "bytes": 9278,
      "sha256": "9dbcfac8901f379faa3645987443835d811e2e25c82f7e540cac383a003e69cf",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 9,
      "sourceOrder": 24009,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行脚本-10.sh",
      "fileName": "运行脚本-10.sh",
      "bytes": 258,
      "sha256": "4e455e3ec81b22a34c8269377481bbdd3f544ae0a580239768fa17c8306189b7",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 10,
      "sourceOrder": 24010,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行命令-12.sh",
      "fileName": "运行命令-12.sh",
      "bytes": 218,
      "sha256": "2b00a9b57c3bbf37bde193d3ab8b913f0b718e522993da76add979c7ada247ad",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 12,
      "sourceOrder": 24012,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/执行脚本-14.sh",
      "fileName": "执行脚本-14.sh",
      "bytes": 187,
      "sha256": "ebb1ba1a62ffd9b64470a5d16a0b77b33766a431de8ca0d92d5dbdf97ba6edd9",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 14,
      "sourceOrder": 24014,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行脚本-17.sh",
      "fileName": "运行脚本-17.sh",
      "bytes": 327,
      "sha256": "cd947d0529a029a6b2589920cddeb61f375de168608c3209da4be1a6438c35b4",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 17,
      "sourceOrder": 24017,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/训练脚本-19.py",
      "fileName": "训练脚本-19.py",
      "bytes": 6563,
      "sha256": "43d444b94ed53406173595fde5ce306a0a12a6757bf8d4966c36f0032904c3f7",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 19,
      "sourceOrder": 24019,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/使用单卡训练-20.sh",
      "fileName": "使用单卡训练-20.sh",
      "bytes": 342,
      "sha256": "f1d3f468608769322ffb7da9ba5860eced454e6a350633bb8832c6675b667a60",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 20,
      "sourceOrder": 24020,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/效果评估脚本-22.py",
      "fileName": "效果评估脚本-22.py",
      "bytes": 38657,
      "sha256": "36d7e8cb4802b100d1fe892292f585b146ff6cc20733e992dc8e4395893c1980",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 22,
      "sourceOrder": 24022,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行评估-23.sh",
      "fileName": "运行评估-23.sh",
      "bytes": 383,
      "sha256": "49bfa20e7870bd53c57c7723d738fa1ca4dd428ef4426478c11135c96c9d9284",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 23,
      "sourceOrder": 24023,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/运行评估-25.py",
      "fileName": "运行评估-25.py",
      "bytes": 21263,
      "sha256": "c17cd74dfa895c0eff7c5344bdfd7ac946692bb3e54dd674fc148b7b728af72b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 25,
      "sourceOrder": 24025,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/eval_bert_sentiment-运行命令-26.sh",
      "fileName": "eval_bert_sentiment-运行命令-26.sh",
      "bytes": 278,
      "sha256": "fda3a527e659e5dcd1da01b2d0a20c275f94ac7b33dc870141aec19408ac950b",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 26,
      "sourceOrder": 24026,
      "filenameSource": "book-context-refined"
    },
    {
      "path": "模型篇/4-从零开始训练模型/保存报告-27.py",
      "fileName": "保存报告-27.py",
      "bytes": 341,
      "sha256": "58c852ded1cfc4a0a0eeb68092bf2598564d231d5fbb260c241a9874f59f67e2",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 27,
      "sourceOrder": 24027,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/保存报告-28.py",
      "fileName": "保存报告-28.py",
      "bytes": 748,
      "sha256": "3ef785bf24cd88787e6efcca4a9cabfb378785a48b9cab085f88b9f96f3d9cff",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 28,
      "sourceOrder": 24028,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/保存报告-29.py",
      "fileName": "保存报告-29.py",
      "bytes": 808,
      "sha256": "fa8fc947a83c7138bd0b66b12dcbac1a52524ac19c3ba87b7a41d34b084b97fa",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 29,
      "sourceOrder": 24029,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/保存报告-30.sql",
      "fileName": "保存报告-30.sql",
      "bytes": 613,
      "sha256": "3da8a427a839599e29fbd90ccb088b45d56d71979c5bdd1303ea973a319f0bb4",
      "kind": "markdown-code-fence",
      "language": "sql",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 30,
      "sourceOrder": 24030,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/5-开始训练循环-31.py",
      "fileName": "5-开始训练循环-31.py",
      "bytes": 1062,
      "sha256": "3e0b14ee9f3f30c03e352860f17422a200839fc387133b95ac3a668990e079ee",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 31,
      "sourceOrder": 24031,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/6-清理-在分布式模式下销毁进程组-32.py",
      "fileName": "6-清理-在分布式模式下销毁进程组-32.py",
      "bytes": 58,
      "sha256": "60cb0fa179698f6a812cf6787e745c66d457b959865902ee9017a852704f32d2",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 32,
      "sourceOrder": 24032,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/调整训练参数-33.sh",
      "fileName": "调整训练参数-33.sh",
      "bytes": 488,
      "sha256": "dfd0f42ad589f7edd8bd2e6ebb81c3f7f1ed310f74914984a5fe454c2b507370",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 33,
      "sourceOrder": 24033,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/导出模型,进行微调-34.py",
      "fileName": "导出模型,进行微调-34.py",
      "bytes": 19902,
      "sha256": "5b00dda0e3afc1b158ca122d548ea810c663e913e8ba768b0a8ae1bd470f865c",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 34,
      "sourceOrder": 24034,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/清理分布式训练-35.sh",
      "fileName": "清理分布式训练-35.sh",
      "bytes": 411,
      "sha256": "ed92fe8b350774a04b03c2cd7b1f8c2de48e4a1492db00a1742cce72256bcce8",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 35,
      "sourceOrder": 24035,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/清理分布式训练-36.json",
      "fileName": "清理分布式训练-36.json",
      "bytes": 615,
      "sha256": "dc0b9a77ac0c7fb4bed7002cbc400dadc01bee2175281a82290acdaaa80f9e12",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 36,
      "sourceOrder": 24036,
      "filenameSource": "book-context"
    },
    {
      "path": "模型篇/4-从零开始训练模型/evaluatepretrainedbert.py",
      "fileName": "evaluatepretrainedbert.py",
      "bytes": 876,
      "sha256": "585e5d7fac6a38027df1768b3f9f3915fbed36de22cb1d1b5f364efd2e3f58ba",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 24,
      "sourceOrder": 24024,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/packjsonltoshards.py",
      "fileName": "packjsonltoshards.py",
      "bytes": 5452,
      "sha256": "d31809535c767269de47f8378884a33cbc60e9b064288605a912183d1ddc95fa",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 11,
      "sourceOrder": 24011,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/torchdatasetloader.py",
      "fileName": "torchdatasetloader.py",
      "bytes": 7284,
      "sha256": "3b4fc75810247a2729cca4deb9cace5dcec6419475e726b59c05cb9c5407eaea",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 13,
      "sourceOrder": 24013,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/trainminibert.py",
      "fileName": "trainminibert.py",
      "bytes": 488,
      "sha256": "dfd0f42ad589f7edd8bd2e6ebb81c3f7f1ed310f74914984a5fe454c2b507370",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 21,
      "sourceOrder": 24021,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/trainwordpiecetokenizer.py",
      "fileName": "trainwordpiecetokenizer.py",
      "bytes": 7717,
      "sha256": "ec04cfdc501c56527487855f74c822cd1296e30faf91de0acd6b1a13c52b4ea1",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 5,
      "sourceOrder": 24005,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/validation.jsonl",
      "fileName": "validation.jsonl",
      "bytes": 248,
      "sha256": "3433d8cae0ef524ceec5d89edc27b582ca58bc12e6d247a0897fd91dab378902",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "模型篇/4. 从零开始训练模型/4. 从零开始训练模型.md",
      "sourceTitle": "模型篇 / 4. 从零开始训练模型 / 4. 从零开始训练模型.md",
      "block": 18,
      "sourceOrder": 24018,
      "filenameSource": "book-filename"
    },
    {
      "path": "模型篇/4-从零开始训练模型/files/tokenizer.zip",
      "fileName": "tokenizer.zip",
      "bytes": 292643,
      "sha256": "fe8b27afad8d9141a702a02f5c43ba861506dfa92094576e47c1338f4bfbfb30",
      "kind": "training-file",
      "language": "zip",
      "sourcePath": "模型篇/4-从零开始训练模型/files/tokenizer.zip",
      "sourceTitle": "模型篇/4-从零开始训练模型/files/tokenizer.zip",
      "block": null,
      "sourceOrder": 7813,
      "filenameSource": "book-files"
    },
    {
      "path": "模型篇/4-从零开始训练模型/files/validation.jsonl",
      "fileName": "validation.jsonl",
      "bytes": 2965704,
      "sha256": "37640476d5ae838f003e2263ba6b4fac23c9b6391bdf0f728e06ce563de3aae8",
      "kind": "training-file",
      "language": "jsonl",
      "sourcePath": "模型篇/4-从零开始训练模型/files/validation.jsonl",
      "sourceTitle": "模型篇/4-从零开始训练模型/files/validation.jsonl",
      "block": null,
      "sourceOrder": 7814,
      "filenameSource": "book-files"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/使用这个Prompt进行提问-01.txt",
      "fileName": "使用这个Prompt进行提问-01.txt",
      "bytes": 46,
      "sha256": "843606918178f53a7453922208aae25d6ffa2d95d9f5a83a1c3606fd31b3393d",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 1,
      "sourceOrder": 14001,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/方式二-使用问答对Q&A-提升召回效果-02.py",
      "fileName": "方式二-使用问答对Q&A-提升召回效果-02.py",
      "bytes": 436,
      "sha256": "b9047f91f5c888406ac8b67134ccc1af9b02465404737d7440b3a059673baf03",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 2,
      "sourceOrder": 14002,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/方式二-使用问答对Q&A-提升召回效果-03.txt",
      "fileName": "方式二-使用问答对Q&A-提升召回效果-03.txt",
      "bytes": 189,
      "sha256": "c4140bf6a9862d6d5d35d48326026bb430ef2a5ffd80d64846bd807c996e51a3",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 3,
      "sourceOrder": 14003,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/方式二-使用问答对Q&A-提升召回效果-04.txt",
      "fileName": "方式二-使用问答对Q&A-提升召回效果-04.txt",
      "bytes": 140,
      "sha256": "fd1c619b3cf4b34ee8e8e662e7def0ae6800bc31bc1d5034ff08844be05399b9",
      "kind": "markdown-code-fence",
      "language": "",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 4,
      "sourceOrder": 14004,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/实现一个简单的智能客服Agent-06.txt",
      "fileName": "实现一个简单的智能客服Agent-06.txt",
      "bytes": 854,
      "sha256": "7f13fae6cabd137ec6d2d90f92110db92c7f756b5f56dd29e9477c4c96738510",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 6,
      "sourceOrder": 14006,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/1-RAG-与上下文管理/rerankservice.py",
      "fileName": "rerankservice.py",
      "bytes": 6372,
      "sha256": "a4690886fc3d67a4fd5835e5b4c48f22eca53fd9fc40e078d09ae7712e541753",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/1. RAG 与上下文管理/1. RAG 与上下文管理.md",
      "sourceTitle": "开发者篇 / 1. RAG 与上下文管理 / 1. RAG 与上下文管理.md",
      "block": 5,
      "sourceOrder": 14005,
      "filenameSource": "book-filename"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/安装uv环境-01.sh",
      "fileName": "安装uv环境-01.sh",
      "bytes": 91,
      "sha256": "b40178017c6c7cb373b646f79c2840e1021c00580651dd88857cf81d885075dc",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 1,
      "sourceOrder": 16001,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/编写一个最简单的mcp-server-02.py",
      "fileName": "编写一个最简单的mcp-server-02.py",
      "bytes": 259,
      "sha256": "0b48f6c7bb8825056ada0860d5febde80c8e512c3c9f6122d5f1bb74b381d94c",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 2,
      "sourceOrder": 16002,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/使用装饰器,标识某一个方法是tool方法-03.py",
      "fileName": "使用装饰器,标识某一个方法是tool方法-03.py",
      "bytes": 25,
      "sha256": "0aa51ee7919828740341f21b634229c9945ff41bb7ffdfa21b3bcc59aafde42f",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 3,
      "sourceOrder": 16003,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/使用装饰器,标识某一个方法是tool方法-04.json",
      "fileName": "使用装饰器,标识某一个方法是tool方法-04.json",
      "bytes": 492,
      "sha256": "bdd7d8bad0dbff1ce9fffb269aad9689a09464484eb0375d219e304a44525edd",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 4,
      "sourceOrder": 16004,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/调用成功的响应-05.json",
      "fileName": "调用成功的响应-05.json",
      "bytes": 225,
      "sha256": "7e9855bc2085161d7211b0e937ff86a1dda5a0b9e858596e1f5a1d4d851cb020",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 5,
      "sourceOrder": 16005,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/调用失败的响应-06.json",
      "fileName": "调用失败的响应-06.json",
      "bytes": 304,
      "sha256": "18bd6c692950e9113701948ad1d620f69491bb34a163bb9445400840ed16a641",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 6,
      "sourceOrder": 16006,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/客户端发送initialize请求-07.json",
      "fileName": "客户端发送initialize请求-07.json",
      "bytes": 749,
      "sha256": "835e83c8d899ffb2380fdbbbd87102b5fe5e1dc97e9c6f75fc6c4a6daeee39f9",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 7,
      "sourceOrder": 16007,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/服务端Response-08.json",
      "fileName": "服务端Response-08.json",
      "bytes": 845,
      "sha256": "3499080bc05fc3dfc01fa88b97b90abad9470960e0f06c6930592d37fd5140cd",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 8,
      "sourceOrder": 16008,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/使用装饰器,标识某一个方法是tool方法-09.ts",
      "fileName": "使用装饰器,标识某一个方法是tool方法-09.ts",
      "bytes": 64,
      "sha256": "7d442d833666a5464ae56e732bb3ad7c8a5f2a27ab0adf46d003ab7c70ac2921",
      "kind": "markdown-code-fence",
      "language": "typescript",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 9,
      "sourceOrder": 16009,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/客户端发送的Request-10.json",
      "fileName": "客户端发送的Request-10.json",
      "bytes": 117,
      "sha256": "ef9ec9ca9ccab52b7821bec248dd29e9ced5765e7b789da4e859e7acb3a83943",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 10,
      "sourceOrder": 16010,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/Response-11.json",
      "fileName": "Response-11.json",
      "bytes": 1138,
      "sha256": "ea1ae4386c4211eea50decd07d0854d5353302abd54080b736b7cff8d2a5be3e",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 11,
      "sourceOrder": 16011,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/客户端发出Request-12.json",
      "fileName": "客户端发出Request-12.json",
      "bytes": 232,
      "sha256": "11362f2d09d5e9be861dab9531cc35644c15bb4a3f56b855c36a544ac25b0498",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 12,
      "sourceOrder": 16012,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/服务端Response-13.json",
      "fileName": "服务端Response-13.json",
      "bytes": 269,
      "sha256": "7f6b6bc032b94f8010f84f7396096ca7533f6c446a990785acc7c3cb1f188ee5",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 13,
      "sourceOrder": 16013,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/支持网络传输-14.json",
      "fileName": "支持网络传输-14.json",
      "bytes": 224,
      "sha256": "fa95e263d705e3b3e858eb12c9378c9748ffafca2934cdc21c66e42c657a592f",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 14,
      "sourceOrder": 16014,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/使用-Streamable-HTTP-进行传输-15.py",
      "fileName": "使用-Streamable-HTTP-进行传输-15.py",
      "bytes": 689,
      "sha256": "2e94a4311bd887ad560ae7c357b0204ccac78c22745fc6c7d97e599b6fe5e176",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 15,
      "sourceOrder": 16015,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/Start-the-streamable-HTTP-server-16.py",
      "fileName": "Start-the-streamable-HTTP-server-16.py",
      "bytes": 60,
      "sha256": "b60ee2e6d4128f4e93459ff34e0340434a343a42cb038e9fe8b06809d9a1550b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 16,
      "sourceOrder": 16016,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/Start-the-streamable-HTTP-server-17.sh",
      "fileName": "Start-the-streamable-HTTP-server-17.sh",
      "bytes": 515,
      "sha256": "3a54573dfce372e8b7b9dca2242d7d7ec278a9a4d9342a2bb306b4d6d7958bb9",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 17,
      "sourceOrder": 16017,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/MCP-SSE初始化消息-18.proto",
      "fileName": "MCP-SSE初始化消息-18.proto",
      "bytes": 293,
      "sha256": "fe60c3c1dec29a6825c1a1b415de7e3267be59a2ff0617cba58bb12106e84068",
      "kind": "markdown-code-fence",
      "language": "protobuf",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 18,
      "sourceOrder": 16018,
      "filenameSource": "book-context-refined"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/添加MCP方法,连接数据库-19.sh",
      "fileName": "添加MCP方法,连接数据库-19.sh",
      "bytes": 25,
      "sha256": "dfe2ff5f71fabd3efe44348f751d1c54e56cc94e5751e9121021a727a77997b9",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 19,
      "sourceOrder": 16019,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/添加MCP方法,连接数据库-20.sh",
      "fileName": "添加MCP方法,连接数据库-20.sh",
      "bytes": 349,
      "sha256": "353d015fc2554db5de5bcc93e6bbcc79fd3fd991f309c102405ec8937c02833e",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 20,
      "sourceOrder": 16020,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/数据库连接配置-21.py",
      "fileName": "数据库连接配置-21.py",
      "bytes": 1273,
      "sha256": "17387220db10edaa15e69ed7541cf1312dd89bbec6b1ad96cc37e6fa159e0a61",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 21,
      "sourceOrder": 16021,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/数据库连接配置-22.py",
      "fileName": "数据库连接配置-22.py",
      "bytes": 964,
      "sha256": "285973b504609e448fdd070bcea493640e084ba24ebd2ad9ea5af49e624a4127",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 22,
      "sourceOrder": 16022,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/启动服务器-24.sh",
      "fileName": "启动服务器-24.sh",
      "bytes": 167,
      "sha256": "4e2e29c7a7d31129fafe512e063df60c7947b2952cbf9c25bd283a041f1744f2",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 24,
      "sourceOrder": 16024,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/2-MCP+PostgreSQL数据库实战/dbserver.py",
      "fileName": "dbserver.py",
      "bytes": 3458,
      "sha256": "98c475b06559b071a9892212453939af30dd7315482eca448638ab1f4a445343",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/2. MCP+PostgreSQL数据库实战/2. MCP+PostgreSQL数据库实战.md",
      "sourceTitle": "开发者篇 / 2. MCP+PostgreSQL数据库实战 / 2. MCP+PostgreSQL数据库实战.md",
      "block": 23,
      "sourceOrder": 16023,
      "filenameSource": "book-filename"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/使用Label-Studio进行数据标注-01.sh",
      "fileName": "使用Label-Studio进行数据标注-01.sh",
      "bytes": 81,
      "sha256": "50ccf7d5eb32ff687b8a2e3747f051482dff2e624db969e40fa554d30b3fc65a",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 1,
      "sourceOrder": 17001,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/安装Label-Studio-02.xml",
      "fileName": "安装Label-Studio-02.xml",
      "bytes": 205,
      "sha256": "0dc30bc3ac72c1878322a90c72b4f56fd6a3a7fb285613224888537916add511",
      "kind": "markdown-code-fence",
      "language": "xml",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 2,
      "sourceOrder": 17002,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/调整图片标注配置模板,改为-03.xml",
      "fileName": "调整图片标注配置模板,改为-03.xml",
      "bytes": 329,
      "sha256": "90a49253c3ecfa75fb9b7d778ef426f7d303039644f8edd4fbe1df2b5904ac19",
      "kind": "markdown-code-fence",
      "language": "xml",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 3,
      "sourceOrder": 17003,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/使用Langfuse进行结果评测-04.sh",
      "fileName": "使用Langfuse进行结果评测-04.sh",
      "bytes": 163,
      "sha256": "b94639763439a780316a4969fc9fb9457663a505d46db04064f9c5094c231269",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 4,
      "sourceOrder": 17004,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/使用Langfuse进行RFHL的示例-05.py",
      "fileName": "使用Langfuse进行RFHL的示例-05.py",
      "bytes": 1576,
      "sha256": "14bbc78bce3d32bada858353b5d09b853f297c7b7dfe6356973878bef68bfc32",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 5,
      "sourceOrder": 17005,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-数据工程与评测工程/使用Bradley-Terry模型-06.py",
      "fileName": "使用Bradley-Terry模型-06.py",
      "bytes": 503,
      "sha256": "08fdcaa2c46757750572cb144f54f17f4f44f2ac345606848741aad2a5045a56",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/3. 数据工程与评测工程/3. 数据工程与评测工程.md",
      "sourceTitle": "开发者篇 / 3. 数据工程与评测工程 / 3. 数据工程与评测工程.md",
      "block": 6,
      "sourceOrder": 17006,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/搭建FastAPI服务框架-01.sh",
      "fileName": "搭建FastAPI服务框架-01.sh",
      "bytes": 60,
      "sha256": "cc06b4ef5eec9c3379627fb8df7590e9bfee3990a335057c4819514c6f12cba1",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 1,
      "sourceOrder": 18001,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/创建基础服务-02.py",
      "fileName": "创建基础服务-02.py",
      "bytes": 1929,
      "sha256": "d675e0f280bb7fb0795bd10a4f45526e41fef5e55c0161fac56db9c15d21740a",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 2,
      "sourceOrder": 18002,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/模拟文本处理逻辑-03.sh",
      "fileName": "模拟文本处理逻辑-03.sh",
      "bytes": 112,
      "sha256": "caebafb30fd0b421ac4a4d005938ef33c3c68c2b58d36d00a12982b8b178f714",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 3,
      "sourceOrder": 18003,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/或者使用uvicorn命令-04.sh",
      "fileName": "或者使用uvicorn命令-04.sh",
      "bytes": 223,
      "sha256": "1b57d2a0797dee4c7a97c49ec99decc2ab9f05cdd351d3e8a759c1c5cfb8bf19",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 4,
      "sourceOrder": 18004,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/测试文本处理-05.json",
      "fileName": "测试文本处理-05.json",
      "bytes": 95,
      "sha256": "065ad988c6a9a3b3f36eef2d234ff2aed31bba54f858ed1ed37f0e6d0a934b39",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 5,
      "sourceOrder": 18005,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/封装LLM模型-06.sh",
      "fileName": "封装LLM模型-06.sh",
      "bytes": 42,
      "sha256": "129ebc872d097010e4f005b3ace2619fc511ceec19565c24078a193bdfac1515",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 6,
      "sourceOrder": 18006,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/模型服务实现-07.py",
      "fileName": "模型服务实现-07.py",
      "bytes": 6475,
      "sha256": "e252f3ddf3fed6426792b58306d52e4bbfb9493324e9c4705b449a6ea9d564d7",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 7,
      "sourceOrder": 18007,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/1-单文本分析测试-08.sh",
      "fileName": "1-单文本分析测试-08.sh",
      "bytes": 166,
      "sha256": "56034f6635d2ee772710933deefaf8c86dc4ae84b559fa27536d4386359ec0f4",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 8,
      "sourceOrder": 18008,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/模型信息端点-09.json",
      "fileName": "模型信息端点-09.json",
      "bytes": 206,
      "sha256": "949ce24bbb584f6d1be0e576a322607f47900619e15bc0b3b61363c6387c1197",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 9,
      "sourceOrder": 18009,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/批量分析测试-10.sh",
      "fileName": "批量分析测试-10.sh",
      "bytes": 204,
      "sha256": "18efb0dd1ee88d4069b13a7765a8a6fafd19c9a3f326caef02e2571a3950045b",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 10,
      "sourceOrder": 18010,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/模型信息端点-11.json",
      "fileName": "模型信息端点-11.json",
      "bytes": 567,
      "sha256": "4883331bfcaec3ca589e1216eb5909c15e95ddb16242108c1a5ebdaa5ef3704d",
      "kind": "markdown-code-fence",
      "language": "json",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 11,
      "sourceOrder": 18011,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/实现流式响应和完整监控-12.py",
      "fileName": "实现流式响应和完整监控-12.py",
      "bytes": 9883,
      "sha256": "1bcf4a130444fc804f741e224dc845aa050ae293fd641a36cf44f7b7f05860c5",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 12,
      "sourceOrder": 18012,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/1-流式响应测试-13.sh",
      "fileName": "1-流式响应测试-13.sh",
      "bytes": 212,
      "sha256": "3f0af39c6e116d3fc32d8171dda2d585152570ecf7d92e3cb2d142a7a3967453",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 13,
      "sourceOrder": 18013,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/流式响应结果-14.txt",
      "fileName": "流式响应结果-14.txt",
      "bytes": 5729,
      "sha256": "85c500e0d3149bb012d525e5c937c8a29b54a734bcf441cf9ff6b9b28020abad",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 14,
      "sourceOrder": 18014,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/4-FastAPI-封装模型服务/测试流式文本生成-15.txt",
      "fileName": "测试流式文本生成-15.txt",
      "bytes": 337,
      "sha256": "16587835241a0ccfa12c79eb749eadeca1b2c577f2bdd13e78e8912b89693fec",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/4. FastAPI 封装模型服务/4. FastAPI 封装模型服务.md",
      "sourceTitle": "开发者篇 / 4. FastAPI 封装模型服务 / 4. FastAPI 封装模型服务.md",
      "block": 15,
      "sourceOrder": 18015,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/3-创建融合kernel-26.py",
      "fileName": "3-创建融合kernel-26.py",
      "bytes": 1202,
      "sha256": "2bb4ed83f454bdc82541773a3780f3cce66cb488951d143beb0e1a7e8c74c548",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 26,
      "sourceOrder": 19026,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/标准注意力计算示例无缓存-15.sh",
      "fileName": "标准注意力计算示例无缓存-15.sh",
      "bytes": 262,
      "sha256": "b78531c57c8fb7389ecb2983fdf20e39d3a5295912ce996f0f6e6cb38276b73d",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 15,
      "sourceOrder": 19015,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/单机多卡配置一,张量并行-01.sh",
      "fileName": "单机多卡配置一,张量并行-01.sh",
      "bytes": 165,
      "sha256": "8ff4b9aa797492ac8d2bf1c123c5fff9f19bc7340ef16347ccc07579abf74e50",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 1,
      "sourceOrder": 19001,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/动态批处理机制-19.py",
      "fileName": "动态批处理机制-19.py",
      "bytes": 1096,
      "sha256": "067b15cccb63a20e0ac9a34fa39b579cfd79c83afd82004407ec75c2b2d59344",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 19,
      "sourceOrder": 19019,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/多机多卡配置-05.sh",
      "fileName": "多机多卡配置-05.sh",
      "bytes": 142,
      "sha256": "798b0ed2aa1210a1d9c3ad9218facb5d76d2de27aa7757066971c26915276b02",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 5,
      "sourceOrder": 19005,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/工作节点3-192-168-1-103-08.py",
      "fileName": "工作节点3-192-168-1-103-08.py",
      "bytes": 816,
      "sha256": "5321a3780fc3bbecd698e7c7f117206e901d28cc6e45df9ca36b93400e5f58cc",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 8,
      "sourceOrder": 19008,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/工作节点启动命令-07.sh",
      "fileName": "工作节点启动命令-07.sh",
      "bytes": 925,
      "sha256": "f0cc4a137f54d94a304ce7adbbe64727450fc0ffeae5c77bc1e096e905abd988",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 7,
      "sourceOrder": 19007,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/混合并行-4张GPU,2个流水线阶段,每个阶段2张GPU张量并行-04.txt",
      "fileName": "混合并行-4张GPU,2个流水线阶段,每个阶段2张GPU张量并行-04.txt",
      "bytes": 188,
      "sha256": "86fdef33016d5e4252bbaa51e97fce2409a56cecbf169cc095cc9f5de202f95e",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 4,
      "sourceOrder": 19004,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/计算输出-22.sh",
      "fileName": "计算输出-22.sh",
      "bytes": 126,
      "sha256": "c0a387820294c8276b40cecd648ae084dcbf4f5138be6491938285adf39a81e7",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 22,
      "sourceOrder": 19022,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/计算输出-23.py",
      "fileName": "计算输出-23.py",
      "bytes": 1082,
      "sha256": "ac105c94c56dcc01d7f50b865a318c4ab06ff9dba0d638cd8e70f8a6dd8383ef",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 23,
      "sourceOrder": 19023,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/聚合结果-14.py",
      "fileName": "聚合结果-14.py",
      "bytes": 2182,
      "sha256": "fd8b5fd03fc89a5cb39134542f9aae6be8ea75897a8b9d02e0cb1aae51d624b7",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 14,
      "sourceOrder": 19014,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/量化-20.py",
      "fileName": "量化-20.py",
      "bytes": 996,
      "sha256": "a4b49115a568f608e9f2e76fee14d26f5c6927910fb6b6dae23e618586bdaeb8",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 20,
      "sourceOrder": 19020,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/每次都需要重新计算所有位置的K和V-16.py",
      "fileName": "每次都需要重新计算所有位置的K和V-16.py",
      "bytes": 421,
      "sha256": "dd1c9c2615f167ed8103cbdf90617eec314c6b196e76275a536857ee6926d38b",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 16,
      "sourceOrder": 19016,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/如果worker崩溃,Ray会自动重启-11.py",
      "fileName": "如果worker崩溃,Ray会自动重启-11.py",
      "bytes": 2207,
      "sha256": "de42b9d3578f14cfd2bba8a7bdd732884d747e8cc39fca58e9bb32b8caef466c",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 11,
      "sourceOrder": 19011,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/使用2张GPU进行张量并行推理-02.txt",
      "fileName": "使用2张GPU进行张量并行推理-02.txt",
      "bytes": 139,
      "sha256": "927c963733850c2e67ba8f06141d3284006b2908fb04f9bb00d2a9414758048f",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 2,
      "sourceOrder": 19002,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/使用2张GPU进行张量并行推理-03.sh",
      "fileName": "使用2张GPU进行张量并行推理-03.sh",
      "bytes": 285,
      "sha256": "0bb3b5114bb79e4052a9838603ea4cbab0e0994225c4eab1e0c71046f6dfe890",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 3,
      "sourceOrder": 19003,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/使用融合的激活函数kernel-24.py",
      "fileName": "使用融合的激活函数kernel-24.py",
      "bytes": 559,
      "sha256": "70b4bee45627da40a8eeb988f51e0aac6356aaec257eaac87f11eaaffb69a4d3",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 24,
      "sourceOrder": 19024,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/算子优化-21.py",
      "fileName": "算子优化-21.py",
      "bytes": 1548,
      "sha256": "0029d533b9e41568248e3155616dfb08fbcfbddee41fe7b5f60267b53d1f6866",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 21,
      "sourceOrder": 19021,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/所有操作在一个CUDA-kernel中完成-25.py",
      "fileName": "所有操作在一个CUDA-kernel中完成-25.py",
      "bytes": 1725,
      "sha256": "86a240b773a251792b591617dcf15cd638b223ab2503fae3e31bb9d0fbc40acc",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 25,
      "sourceOrder": 19025,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/通信开销优化-12.py",
      "fileName": "通信开销优化-12.py",
      "bytes": 961,
      "sha256": "43657f17bd9e07c0f65141afad611784eec41ae70123f79e730e06d5a4f4fca1",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 12,
      "sourceOrder": 19012,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/在vLLM中管理KV-Cache-17.py",
      "fileName": "在vLLM中管理KV-Cache-17.py",
      "bytes": 981,
      "sha256": "8cb8f58ffff181c9b7d1e993474ad9c41b743753d67d68128836958aac7354d2",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 17,
      "sourceOrder": 19017,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/只传输重要的梯度-13.py",
      "fileName": "只传输重要的梯度-13.py",
      "bytes": 1506,
      "sha256": "d087d3335b14e62c1c9cebe8f0ec4948746ab11529a61db9910c86fd261e23d3",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 13,
      "sourceOrder": 19013,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/主节点启动命令-06.sh",
      "fileName": "主节点启动命令-06.sh",
      "bytes": 386,
      "sha256": "97e825cb204a75019c8a4857105d89d61d6bf2f40465bc73d32abb0819c07655",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 6,
      "sourceOrder": 19006,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/GPU资源的自动管理和容错-09.py",
      "fileName": "GPU资源的自动管理和容错-09.py",
      "bytes": 229,
      "sha256": "86f14b9891b151e4340988411f906eb9fbc1a776dfc0d57f70339b209488f25d",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 9,
      "sourceOrder": 19009,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/vLLM使用分页内存管理KV-Cache-18.sh",
      "fileName": "vLLM使用分页内存管理KV-Cache-18.sh",
      "bytes": 232,
      "sha256": "b3744759dd44c0cc7dd8cd1bbb1a2b6ba6d1a413ae629a1b66dbe01767ffa2c6",
      "kind": "markdown-code-fence",
      "language": "bash",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 18,
      "sourceOrder": 19018,
      "filenameSource": "book-context"
    },
    {
      "path": "开发者篇/worker的容错和恢复机制-10.py",
      "fileName": "worker的容错和恢复机制-10.py",
      "bytes": 263,
      "sha256": "9facf8fe9f8f408d341307edb3431d1e363754c61f0295b583a2bc1b1d406a53",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "开发者篇/5. 深入推理框架与加速.md",
      "sourceTitle": "开发者篇 / 5. 深入推理框架与加速.md",
      "block": 10,
      "sourceOrder": 19010,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/1-线性代数与embedding/1-词嵌入-Embedding-01.txt",
      "fileName": "1-词嵌入-Embedding-01.txt",
      "bytes": 64,
      "sha256": "efd10decf7ac921ca39a21381b7abd75fa45cb0bd36a5eefd2cb6190d14fbadb",
      "kind": "markdown-code-fence",
      "language": "",
      "sourcePath": "基础理论篇/1.线性代数与embedding/1. 线性代数与embedding.md",
      "sourceTitle": "基础理论篇 / 1.线性代数与embedding / 1. 线性代数与embedding.md",
      "block": 1,
      "sourceOrder": 1001,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/2-Transformer与注意力机制/1-FNN-前馈神经网络-01.py",
      "fileName": "1-FNN-前馈神经网络-01.py",
      "bytes": 291,
      "sha256": "7b1e5914cd2dffad943d451d1e83a8b723b51c9222e8d9c5fce0fd6a0e256005",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/2. Transformer与注意力机制/2. Transformer与注意力机制.md",
      "sourceTitle": "基础理论篇 / 2. Transformer与注意力机制 / 2. Transformer与注意力机制.md",
      "block": 1,
      "sourceOrder": 2001,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/2-Transformer与注意力机制/5-Softmax-02.py",
      "fileName": "5-Softmax-02.py",
      "bytes": 158,
      "sha256": "d5edb2f697e570f27665938c4b4190b6e67e5568d6dee73ffefca5468357e814",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/2. Transformer与注意力机制/2. Transformer与注意力机制.md",
      "sourceTitle": "基础理论篇 / 2. Transformer与注意力机制 / 2. Transformer与注意力机制.md",
      "block": 2,
      "sourceOrder": 2002,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/2-Transformer与注意力机制/for-i-in-P-i-0-03.py",
      "fileName": "for-i-in-P-i-0-03.py",
      "bytes": 269,
      "sha256": "99cd652ff459dd845d360565b67d1703a6d948bd5f767e92969c8b8e1f3d9376",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/2. Transformer与注意力机制/2. Transformer与注意力机制.md",
      "sourceTitle": "基础理论篇 / 2. Transformer与注意力机制 / 2. Transformer与注意力机制.md",
      "block": 3,
      "sourceOrder": 2003,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/我们可以把这些信息和概率画成一个图-01.txt",
      "fileName": "我们可以把这些信息和概率画成一个图-01.txt",
      "bytes": 190,
      "sha256": "03cd9aaeac29d84e4a211042081869ead8b3d7fbb88ef68613257d6c1c633143",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 1,
      "sourceOrder": 3001,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/3-扩散模型训练的数学流程-02.txt",
      "fileName": "3-扩散模型训练的数学流程-02.txt",
      "bytes": 146,
      "sha256": "f461ded86ec7dfcbbc51a96cae71e2f4b24946422c2ec4872fc4abae5761ed35",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 2,
      "sourceOrder": 3002,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/3-扩散模型训练的数学流程-03.py",
      "fileName": "3-扩散模型训练的数学流程-03.py",
      "bytes": 272,
      "sha256": "6555bfe2e3a8bc493b7568bc1f0c8c29ed159b3c0e620cb014ec853e6feb7927",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 3,
      "sourceOrder": 3003,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/U-Net的数学公式-04.txt",
      "fileName": "U-Net的数学公式-04.txt",
      "bytes": 109,
      "sha256": "30eef5627628a7bf31ffa7e256e6f1505f18b4a4e716cfaaa36e1bb19223a4c9",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 4,
      "sourceOrder": 3004,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/U-Net架构-05.txt",
      "fileName": "U-Net架构-05.txt",
      "bytes": 206,
      "sha256": "e77fb5ad5ca70fc3b3c3b314a2b702094982825b3be098cebbb59679db42c3a4",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 5,
      "sourceOrder": 3005,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/3-扩散模型训练的数学流程-06.txt",
      "fileName": "3-扩散模型训练的数学流程-06.txt",
      "bytes": 247,
      "sha256": "927cf3d788d4cbf7cf812aacb512b48c5593350e717a2fa0511a69674e53bd59",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 6,
      "sourceOrder": 3006,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/3-扩散模型训练的数学流程-07.txt",
      "fileName": "3-扩散模型训练的数学流程-07.txt",
      "bytes": 52,
      "sha256": "6632dd13c170c4b60988259f43b7f858266377ae903b3fdbac1e38d4572b3b4e",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 7,
      "sourceOrder": 3007,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/3-扩散模型训练的数学流程-08.txt",
      "fileName": "3-扩散模型训练的数学流程-08.txt",
      "bytes": 76,
      "sha256": "236006869fc203cf0025056ce1e2364f70f85b2277ecd97f2b3db4a104809d0d",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 8,
      "sourceOrder": 3008,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/4-扩散模型的推理过程-09.txt",
      "fileName": "4-扩散模型的推理过程-09.txt",
      "bytes": 170,
      "sha256": "41de63b73c7d6e57edb0ad4ffe60c1da1bb5996384ab8ad512717e00e4da8031",
      "kind": "markdown-code-fence",
      "language": "plain text",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 9,
      "sourceOrder": 3009,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/DDPM代码示意-10.py",
      "fileName": "DDPM代码示意-10.py",
      "bytes": 710,
      "sha256": "2b533b651da69025927d834c5d2eb90969063afb14d69599168593fe7cc76802",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 10,
      "sourceOrder": 3010,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/计算方差-11.py",
      "fileName": "计算方差-11.py",
      "bytes": 149,
      "sha256": "d31c4eec284df359b31a65d28a06108ca72c6117b87f2fa93fea7d69de63e942",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 11,
      "sourceOrder": 3011,
      "filenameSource": "book-context"
    },
    {
      "path": "基础理论篇/3-扩散模型/DDIM代码示意-12.py",
      "fileName": "DDIM代码示意-12.py",
      "bytes": 734,
      "sha256": "d4aa995b30e2fe32d43751a135d99e48eae914a50cd4deb8351630e1c1bf2c19",
      "kind": "markdown-code-fence",
      "language": "python",
      "sourcePath": "基础理论篇/3. 扩散模型/3. 扩散模型.md",
      "sourceTitle": "基础理论篇 / 3. 扩散模型 / 3. 扩散模型.md",
      "block": 12,
      "sourceOrder": 3012,
      "filenameSource": "book-context"
    }
  ]
}