阶段4(下):LangChain 1.x、提示词与注入防护、模型侧(路由/vLLM/LoRA)、AI 编程工具与验证、Dify/Coze 专题

This commit is contained in:
Shikui Wang committed 2026-10-23 16:15:33 +08:00
1 parent caaec830b3
commit 7a32d2c9a6
38 files changed
+3059 -67

No files matched your search

+813 -46
View File
@@ -37,16 +37,18 @@
{
"stack": "ai-coding",
"domain": "ai",
"title": "AI 编程工具与产出验证",
"title": "AI 编程工具与验证",
"index": "topics/ai/ai-coding/index.md",
"lessons": 0,
"scenarios": 0,
"lessons": 2,
"scenarios": 1,
"interview_questions": {
"基础": 0,
"进阶": 0,
"场景题": 0
"基础": 3,
"进阶": 3,
"场景题": 2
},
"examples": []
"examples": [
"topics/ai/ai-coding/examples/ai-workflow"
]
},
{
"stack": "function-calling",
@@ -69,14 +71,16 @@
"domain": "ai",
"title": "LangChain",
"index": "topics/ai/langchain/index.md",
"lessons": 0,
"scenarios": 0,
"lessons": 1,
"scenarios": 1,
"interview_questions": {
"基础": 0,
"进阶": 0,
"场景题": 0
"基础": 3,
"进阶": 2,
"场景题": 2
},
"examples": []
"examples": [
"topics/ai/langchain/examples/lc-basics"
]
},
{
"stack": "langgraph",
@@ -97,30 +101,34 @@
{
"stack": "llm-serving",
"domain": "ai",
"title": "模型接入与部署(了解级)",
"title": "模型侧基础(了解级)",
"index": "topics/ai/llm-serving/index.md",
"lessons": 0,
"scenarios": 0,
"lessons": 1,
"scenarios": 1,
"interview_questions": {
"基础": 0,
"进阶": 0,
"场景题": 0
"基础": 3,
"进阶": 3,
"场景题": 2
},
"examples": []
"examples": [
"topics/ai/llm-serving/examples/model-router"
]
},
{
"stack": "lowcode",
"domain": "ai",
"title": "Dify / Coze 低代码平台",
"title": "低代码 AI 平台(Dify / Coze)",
"index": "topics/ai/lowcode/index.md",
"lessons": 0,
"scenarios": 0,
"lessons": 1,
"scenarios": 1,
"interview_questions": {
"基础": 0,
"进阶": 0,
"场景题": 0
"基础": 3,
"进阶": 2,
"场景题": 2
},
"examples": []
"examples": [
"topics/ai/lowcode/examples/dify-tool-api"
]
},
{
"stack": "mcp",
@@ -143,14 +151,16 @@
"domain": "ai",
"title": "提示词与上下文工程",
"index": "topics/ai/prompt-engineering/index.md",
"lessons": 0,
"scenarios": 0,
"lessons": 2,
"scenarios": 1,
"interview_questions": {
"基础": 0,
"进阶": 0,
"场景题": 0
"基础": 3,
"进阶": 3,
"场景题": 2
},
"examples": []
"examples": [
"topics/ai/prompt-engineering/examples/prompt-kit"
]
},
{
"stack": "rag",
@@ -1057,13 +1067,22 @@
},
{
"id": "ai.ai-coding.index",
"title": "AI 编程工具与产出验证",
"title": "AI 编程工具与验证",
"type": "index",
"domain": "ai",
"stack": [
"ai-coding"
],
"tags": [],
"tags": [
"AI 编程",
"Claude Code",
"Cursor",
"Codex",
"Skills",
"规则文件",
"验证",
"会话记录"
],
"level": null,
"prerequisites": [],
"related": [],
@@ -1076,7 +1095,179 @@
],
"order": null,
"path": "topics/ai/ai-coding/index.md",
"sections": []
"sections": [
"学习路线",
"企业场景",
"面试题",
"示例代码",
"在 16 周计划中",
"官方资料"
]
},
{
"id": "ai.ai-coding.interview",
"title": "AI 编程工具面试题",
"type": "interview",
"domain": "ai",
"stack": [
"ai-coding"
],
"tags": [
"AI 编程",
"Cursor",
"Claude Code",
"验证",
"面试"
],
"level": "basic",
"prerequisites": [],
"related": [
"ai.ai-coding.workflow-rules-skills",
"ai.ai-coding.verify-evidence"
],
"est_hours": null,
"week": [
15,
16
],
"order": null,
"path": "topics/ai/ai-coding/interview.md",
"sections": [
"基础",
"进阶",
"场景题"
],
"questions": {
"基础": 3,
"进阶": 3,
"场景题": 2
}
},
{
"id": "ai.ai-coding.scenario.ai-assisted-feature",
"title": "团队引入 AI 编程:从“各用各的”到可验证、可复用的工作流",
"type": "scenario",
"domain": "ai",
"stack": [
"ai-coding",
"cicd",
"git"
],
"tags": [
"AI 编程规范",
"规则文件",
"Skills",
"代码审查",
"CI",
"数据安全"
],
"level": "intermediate",
"prerequisites": [
"ai.ai-coding.verify-evidence"
],
"related": [
"ai.ai-coding.interview",
"devops.git.index"
],
"est_hours": 2,
"week": [
8,
15
],
"order": null,
"path": "topics/ai/ai-coding/scenarios/ai-assisted-feature.md",
"sections": [
"业务背景与问题",
"约束",
"方案设计",
"关键代码",
"取舍",
"易错点",
"面试怎么讲"
]
},
{
"id": "ai.ai-coding.verify-evidence",
"title": "验证 AI 产出:测试、审查清单、真实环境验证和会话记录作为作品证据",
"type": "lesson",
"domain": "ai",
"stack": [
"ai-coding"
],
"tags": [
"AI 产出验证",
"代码审查",
"测试",
"会话记录",
"作品集",
"脱敏"
],
"level": "intermediate",
"prerequisites": [
"ai.ai-coding.workflow-rules-skills"
],
"related": [
"ai.ai-coding.scenario.ai-assisted-feature",
"devops.cicd.index",
"ai.ai-coding.interview"
],
"est_hours": 2.5,
"week": [
8,
15
],
"order": 2,
"path": "topics/ai/ai-coding/02-verify-evidence.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.ai-coding.workflow-rules-skills",
"title": "AI 编程工具工作流:Claude Code / Cursor / Codex、规则文件、Skills 和 MCP",
"type": "lesson",
"domain": "ai",
"stack": [
"ai-coding"
],
"tags": [
"AI 编程",
"Claude Code",
"Cursor",
"Codex",
"AGENTS.md",
"规则文件",
"Skills",
"MCP",
"Vibe coding"
],
"level": "basic",
"prerequisites": [],
"related": [
"ai.ai-coding.verify-evidence",
"ai.agent-design.context-skills-multiagent",
"ai.mcp.protocol-server",
"ai.ai-coding.interview"
],
"est_hours": 2.5,
"week": [
1,
8,
10
],
"order": 1,
"path": "topics/ai/ai-coding/01-workflow-rules-skills.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.function-calling.index",
@@ -1233,7 +1424,12 @@
"stack": [
"langchain"
],
"tags": [],
"tags": [
"LangChain",
"LCEL",
"结构化输出",
"Agent"
],
"level": null,
"prerequisites": [],
"related": [],
@@ -1244,7 +1440,137 @@
],
"order": null,
"path": "topics/ai/langchain/index.md",
"sections": []
"sections": [
"学习路线",
"企业场景",
"面试题",
"示例代码",
"在 16 周计划中",
"官方资料"
]
},
{
"id": "ai.langchain.interview",
"title": "LangChain 面试题",
"type": "interview",
"domain": "ai",
"stack": [
"langchain"
],
"tags": [
"LangChain",
"LCEL",
"结构化输出",
"面试"
],
"level": "intermediate",
"prerequisites": [],
"related": [
"ai.langchain.lcel-structured-agent"
],
"est_hours": null,
"week": [
6,
11,
16
],
"order": null,
"path": "topics/ai/langchain/interview.md",
"sections": [
"基础",
"进阶",
"场景题"
],
"questions": {
"基础": 3,
"进阶": 2,
"场景题": 2
}
},
{
"id": "ai.langchain.lcel-structured-agent",
"title": "LangChain 1.x:模型和消息、LCEL、结构化输出、create_agent 和中间件",
"type": "lesson",
"domain": "ai",
"stack": [
"langchain"
],
"tags": [
"LangChain",
"LCEL",
"init_chat_model",
"结构化输出",
"create_agent",
"middleware",
"重试",
"备用模型"
],
"level": "intermediate",
"prerequisites": [
"ai.function-calling.tool-loop"
],
"related": [
"ai.langgraph.state-graph",
"ai.langchain.scenario.ticket-triage",
"ai.langchain.interview"
],
"est_hours": 3,
"week": [
6,
11
],
"order": 1,
"path": "topics/ai/langchain/01-lcel-structured-agent.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.langchain.scenario.ticket-triage",
"title": "工单自动分类服务:结构化输出、批处理、重试降级和人工复核",
"type": "scenario",
"domain": "ai",
"stack": [
"langchain",
"fastapi",
"postgresql"
],
"tags": [
"结构化输出",
"批处理",
"重试",
"降级",
"人工复核",
"成本"
],
"level": "intermediate",
"prerequisites": [
"ai.langchain.lcel-structured-agent"
],
"related": [
"ai.langchain.interview",
"ai.llm-serving.index"
],
"est_hours": 2.5,
"week": [
6,
11
],
"order": null,
"path": "topics/ai/langchain/scenarios/ticket-triage.md",
"sections": [
"业务背景与问题",
"约束",
"方案设计",
"关键代码",
"取舍",
"易错点",
"面试怎么讲"
]
},
{
"id": "ai.langgraph.index",
@@ -1442,13 +1768,19 @@
},
{
"id": "ai.llm-serving.index",
"title": "模型接入与部署(了解级)",
"title": "模型侧基础(了解级)",
"type": "index",
"domain": "ai",
"stack": [
"llm-serving"
],
"tags": [],
"tags": [
"多模型路由",
"vLLM",
"LoRA",
"微调",
"模型网关"
],
"level": null,
"prerequisites": [],
"related": [],
@@ -1459,17 +1791,195 @@
],
"order": null,
"path": "topics/ai/llm-serving/index.md",
"sections": []
"sections": [
"学习路线",
"企业场景",
"面试题",
"示例代码",
"在 16 周计划中",
"官方资料"
]
},
{
"id": "ai.llm-serving.interview",
"title": "模型侧面试题(了解级)",
"type": "interview",
"domain": "ai",
"stack": [
"llm-serving"
],
"tags": [
"模型路由",
"vLLM",
"LoRA",
"微调",
"面试"
],
"level": "intermediate",
"prerequisites": [],
"related": [
"ai.llm-serving.routing-vllm-lora"
],
"est_hours": null,
"week": [
13,
16
],
"order": null,
"path": "topics/ai/llm-serving/interview.md",
"sections": [
"基础",
"进阶",
"场景题"
],
"questions": {
"基础": 3,
"进阶": 3,
"场景题": 2
}
},
{
"id": "ai.llm-serving.routing-vllm-lora",
"title": "模型侧基础:多模型接入和路由、vLLM 部署、LoRA / QLoRA 概念",
"type": "lesson",
"domain": "ai",
"stack": [
"llm-serving"
],
"tags": [
"多模型路由",
"OpenAI 兼容接口",
"降级",
"熔断",
"vLLM",
"量化",
"LoRA",
"QLoRA",
"微调"
],
"level": "intermediate",
"prerequisites": [
"python.asyncio.concurrency-control"
],
"related": [
"ai.agent-ops.observability-cost",
"ai.llm-serving.scenario.multi-provider-gateway",
"ai.llm-serving.interview"
],
"est_hours": 3,
"week": [
10,
13
],
"order": 1,
"path": "topics/ai/llm-serving/01-routing-vllm-lora.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.llm-serving.scenario.multi-provider-gateway",
"title": "公司级大模型网关:多厂商路由、配额、敏感数据走内网模型",
"type": "scenario",
"domain": "ai",
"stack": [
"llm-serving",
"fastapi",
"redis"
],
"tags": [
"模型网关",
"多模型路由",
"配额",
"熔断",
"降级",
"敏感数据",
"成本分摊"
],
"level": "advanced",
"prerequisites": [
"ai.llm-serving.routing-vllm-lora"
],
"related": [
"ai.llm-serving.interview",
"python.fastapi.index",
"backend.redis.lock-ratelimit"
],
"est_hours": 3,
"week": [
13,
14
],
"order": null,
"path": "topics/ai/llm-serving/scenarios/multi-provider-gateway.md",
"sections": [
"业务背景与问题",
"约束",
"方案设计",
"关键代码",
"取舍",
"易错点",
"面试怎么讲"
]
},
{
"id": "ai.lowcode.dify-coze",
"title": "Dify / Coze 低代码 AI 平台:工作流、知识库、自定义工具和与代码开发的分工",
"type": "lesson",
"domain": "ai",
"stack": [
"lowcode"
],
"tags": [
"Dify",
"Coze",
"低代码",
"工作流",
"知识库",
"自定义工具",
"OpenAPI"
],
"level": "basic",
"prerequisites": [
"ai.rag.pipeline-chunking"
],
"related": [
"ai.lowcode.scenario.poc-to-production",
"ai.function-calling.tool-loop",
"ai.lowcode.interview"
],
"est_hours": 2.5,
"week": [
13
],
"order": 1,
"path": "topics/ai/lowcode/01-dify-coze.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.lowcode.index",
"title": "Dify / Coze 低代码平台",
"title": "低代码 AI 平台(Dify / Coze)",
"type": "index",
"domain": "ai",
"stack": [
"lowcode"
],
"tags": [],
"tags": [
"Dify",
"Coze",
"低代码",
"工作流"
],
"level": null,
"prerequisites": [],
"related": [],
@@ -1479,7 +1989,93 @@
],
"order": null,
"path": "topics/ai/lowcode/index.md",
"sections": []
"sections": [
"学习路线",
"企业场景",
"面试题",
"示例代码",
"在 16 周计划中",
"官方资料"
]
},
{
"id": "ai.lowcode.interview",
"title": "低代码 AI 平台面试题",
"type": "interview",
"domain": "ai",
"stack": [
"lowcode"
],
"tags": [
"Dify",
"Coze",
"低代码",
"面试"
],
"level": "basic",
"prerequisites": [],
"related": [
"ai.lowcode.dify-coze"
],
"est_hours": null,
"week": [
13,
16
],
"order": null,
"path": "topics/ai/lowcode/interview.md",
"sections": [
"基础",
"进阶",
"场景题"
],
"questions": {
"基础": 3,
"进阶": 2,
"场景题": 2
}
},
{
"id": "ai.lowcode.scenario.poc-to-production",
"title": "从 Dify 原型到生产:哪些留在平台、哪些改成代码",
"type": "scenario",
"domain": "ai",
"stack": [
"lowcode",
"fastapi",
"rag"
],
"tags": [
"PoC",
"低代码",
"私有化部署",
"自定义工具",
"迁移",
"评测"
],
"level": "intermediate",
"prerequisites": [
"ai.lowcode.dify-coze"
],
"related": [
"ai.lowcode.interview",
"ai.agent-ops.scenario.agent-quality-gate"
],
"est_hours": 2,
"week": [
13
],
"order": null,
"path": "topics/ai/lowcode/scenarios/poc-to-production.md",
"sections": [
"业务背景与问题",
"约束",
"方案设计",
"关键代码",
"取舍",
"易错点",
"面试怎么讲"
]
},
{
"id": "ai.mcp.index",
@@ -1633,6 +2229,46 @@
"面试怎么讲"
]
},
{
"id": "ai.prompt-engineering.context-injection",
"title": "提示词注入和防护:直接注入、间接注入、输出校验和权限兜底",
"type": "lesson",
"domain": "ai",
"stack": [
"prompt-engineering"
],
"tags": [
"提示词注入",
"间接注入",
"越狱",
"输出校验",
"数据泄露",
"安全"
],
"level": "advanced",
"prerequisites": [
"ai.prompt-engineering.prompt-structured-output"
],
"related": [
"ai.function-calling.scenario.safe-business-tools",
"ai.agent-design.context-skills-multiagent",
"ai.prompt-engineering.interview"
],
"est_hours": 2.5,
"week": [
11,
13
],
"order": 2,
"path": "topics/ai/prompt-engineering/02-context-injection.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.prompt-engineering.index",
"title": "提示词与上下文工程",
@@ -1641,7 +2277,12 @@
"stack": [
"prompt-engineering"
],
"tags": [],
"tags": [
"提示词",
"结构化输出",
"上下文工程",
"提示词注入"
],
"level": null,
"prerequisites": [],
"related": [],
@@ -1653,7 +2294,133 @@
],
"order": null,
"path": "topics/ai/prompt-engineering/index.md",
"sections": []
"sections": [
"学习路线",
"企业场景",
"面试题",
"示例代码",
"在 16 周计划中",
"官方资料"
]
},
{
"id": "ai.prompt-engineering.interview",
"title": "提示词与上下文工程面试题",
"type": "interview",
"domain": "ai",
"stack": [
"prompt-engineering"
],
"tags": [
"提示词",
"结构化输出",
"提示词注入",
"面试"
],
"level": "intermediate",
"prerequisites": [],
"related": [
"ai.prompt-engineering.prompt-structured-output",
"ai.prompt-engineering.context-injection"
],
"est_hours": null,
"week": [
5,
13,
16
],
"order": null,
"path": "topics/ai/prompt-engineering/interview.md",
"sections": [
"基础",
"进阶",
"场景题"
],
"questions": {
"基础": 3,
"进阶": 3,
"场景题": 2
}
},
{
"id": "ai.prompt-engineering.prompt-structured-output",
"title": "提示词结构、少样本、结构化输出和提示词版本管理",
"type": "lesson",
"domain": "ai",
"stack": [
"prompt-engineering"
],
"tags": [
"提示词结构",
"少样本",
"Few-shot",
"思维链",
"结构化输出",
"JSON Schema",
"提示词版本"
],
"level": "basic",
"prerequisites": [],
"related": [
"ai.prompt-engineering.context-injection",
"ai.langchain.lcel-structured-agent",
"ai.prompt-engineering.interview"
],
"est_hours": 2.5,
"week": [
5
],
"order": 1,
"path": "topics/ai/prompt-engineering/01-prompt-structured-output.md",
"sections": [
"解释说明",
"案例",
"代码示例",
"易错点",
"面试常问"
]
},
{
"id": "ai.prompt-engineering.scenario.injection-defense",
"title": "读邮件的办公助手:间接提示词注入的多层防护",
"type": "scenario",
"domain": "ai",
"stack": [
"prompt-engineering",
"function-calling",
"agent-ops"
],
"tags": [
"间接注入",
"邮件助手",
"权限最小化",
"人工确认",
"输出校验",
"安全评测"
],
"level": "advanced",
"prerequisites": [
"ai.prompt-engineering.context-injection"
],
"related": [
"ai.prompt-engineering.interview",
"ai.function-calling.scenario.safe-business-tools"
],
"est_hours": 2.5,
"week": [
13
],
"order": null,
"path": "topics/ai/prompt-engineering/scenarios/injection-defense.md",
"sections": [
"业务背景与问题",
"约束",
"方案设计",
"关键代码",
"取舍",
"易错点",
"面试怎么讲"
]
},
{
"id": "ai.rag.generation-eval",