@umacloud/knowledge 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,649 @@
1
+ ---
2
+ id: rag-architecture-complete
3
+ title: RAG 架构完整指南
4
+ domain: ai
5
+ category: 01-standards
6
+ difficulty: intermediate
7
+ tags: [ai, architecture, complete, embedding, rag, reranking, 向量数据库, 文档分块策略]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # RAG 架构完整指南
12
+
13
+ ## 概述
14
+
15
+ 检索增强生成 (Retrieval-Augmented Generation, RAG) 是将外部知识库与 LLM 结合的核心架构模式。本指南覆盖文档分块策略、Embedding 模型选择、向量数据库、检索策略、重排序、评估指标及生产级部署实践。
16
+
17
+ ### RAG 系统架构全景
18
+
19
+ ```
20
+ RAG 系统核心组件:
21
+ ├── 数据摄入层 (Ingestion)
22
+ │ ├── 文档解析 (PDF/HTML/Markdown/Office)
23
+ │ ├── 文本清洗与预处理
24
+ │ ├── 分块策略 (Chunking)
25
+ │ └── Embedding 生成
26
+ ├── 索引层 (Indexing)
27
+ │ ├── 向量数据库存储
28
+ │ ├── 元数据索引
29
+ │ ├── 全文搜索索引
30
+ │ └── 增量更新管道
31
+ ├── 检索层 (Retrieval)
32
+ │ ├── 查询理解与改写
33
+ │ ├── 向量检索
34
+ │ ├── 混合检索 (向量+关键词)
35
+ │ ├── 重排序 (Reranking)
36
+ │ └── 结果过滤与去重
37
+ └── 生成层 (Generation)
38
+ ├── 上下文组装
39
+ ├── Prompt 构建
40
+ ├── LLM 调用
41
+ └── 引用追溯与幻觉检测
42
+ ```
43
+
44
+ ---
45
+
46
+ ## 1. 文档分块策略
47
+
48
+ ### 1.1 分块方法对比
49
+
50
+ | 方法 | 适用场景 | 优点 | 缺点 |
51
+ |------|---------|------|------|
52
+ | 固定大小分块 | 通用文本 | 实现简单,长度可控 | 可能切断语义 |
53
+ | 递归字符分割 | 结构化文档 | 保留段落边界 | 需要调参 |
54
+ | 语义分块 | 高质量需求 | 语义完整性最好 | 计算成本高 |
55
+ | 文档结构分块 | Markdown/HTML | 保留标题层级 | 依赖文档格式 |
56
+ | 滑动窗口分块 | 上下文敏感 | 保留跨块上下文 | 存储冗余 |
57
+
58
+ ### 1.2 递归分块实现
59
+
60
+ ```python
61
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
62
+
63
+ def create_splitter(doc_type: str = "general") -> RecursiveCharacterTextSplitter:
64
+ """根据文档类型创建分块器。"""
65
+ configs = {
66
+ "general": {
67
+ "chunk_size": 512,
68
+ "chunk_overlap": 64,
69
+ "separators": ["\n\n", "\n", "。", ".", " "],
70
+ },
71
+ "code": {
72
+ "chunk_size": 1024,
73
+ "chunk_overlap": 128,
74
+ "separators": ["\nclass ", "\ndef ", "\n\n", "\n"],
75
+ },
76
+ "legal": {
77
+ "chunk_size": 768,
78
+ "chunk_overlap": 96,
79
+ "separators": ["\n第.*条", "\n\n", "\n", "。"],
80
+ },
81
+ }
82
+ cfg = configs.get(doc_type, configs["general"])
83
+ return RecursiveCharacterTextSplitter(**cfg)
84
+ ```
85
+
86
+ ### 1.3 语义分块
87
+
88
+ ```python
89
+ import numpy as np
90
+
91
+ def semantic_chunking(text: str, max_chunk_size: int = 512,
92
+ similarity_threshold: float = 0.75) -> list[str]:
93
+ """基于语义相似度的分块,在语义断点处切分。"""
94
+ sentences = split_into_sentences(text)
95
+ embeddings = get_embeddings_batch(sentences)
96
+
97
+ chunks = []
98
+ current_chunk = [sentences[0]]
99
+ current_size = len(sentences[0])
100
+
101
+ for i in range(1, len(sentences)):
102
+ sim = cosine_similarity(embeddings[i - 1], embeddings[i])
103
+ sentence_len = len(sentences[i])
104
+
105
+ # 语义断裂或超出大小限制时切分
106
+ if sim < similarity_threshold or current_size + sentence_len > max_chunk_size:
107
+ chunks.append("".join(current_chunk))
108
+ current_chunk = [sentences[i]]
109
+ current_size = sentence_len
110
+ else:
111
+ current_chunk.append(sentences[i])
112
+ current_size += sentence_len
113
+
114
+ if current_chunk:
115
+ chunks.append("".join(current_chunk))
116
+ return chunks
117
+ ```
118
+
119
+ ### 1.4 分块质量评估
120
+
121
+ ```python
122
+ def evaluate_chunking(chunks: list[str], queries: list[str],
123
+ ground_truth: list[str]) -> dict:
124
+ """评估分块策略的检索质量。"""
125
+ chunk_embeddings = get_embeddings_batch(chunks)
126
+ metrics = {"hit_rate": 0, "avg_rank": 0, "semantic_coherence": 0}
127
+
128
+ for query, expected in zip(queries, ground_truth):
129
+ query_emb = get_embedding(query)
130
+ scores = [cosine_similarity(query_emb, ce) for ce in chunk_embeddings]
131
+ ranked = sorted(enumerate(scores), key=lambda x: x[1], reverse=True)
132
+
133
+ # 检查 top-5 是否包含相关块
134
+ top_5_texts = [chunks[idx] for idx, _ in ranked[:5]]
135
+ if any(expected in t for t in top_5_texts):
136
+ metrics["hit_rate"] += 1
137
+
138
+ metrics["hit_rate"] /= len(queries)
139
+
140
+ # 语义连贯性: 相邻块的平均相似度
141
+ coherence_scores = []
142
+ for i in range(len(chunk_embeddings) - 1):
143
+ coherence_scores.append(
144
+ cosine_similarity(chunk_embeddings[i], chunk_embeddings[i + 1])
145
+ )
146
+ metrics["semantic_coherence"] = float(np.mean(coherence_scores))
147
+
148
+ return metrics
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 2. Embedding 模型选择
154
+
155
+ ### 2.1 主流模型对比
156
+
157
+ | 模型 | 维度 | 中文支持 | MTEB 排名 | 特点 |
158
+ |------|------|---------|-----------|------|
159
+ | text-embedding-3-large | 3072 | 良好 | Top 5 | OpenAI 旗舰,支持维度裁剪 |
160
+ | text-embedding-3-small | 1536 | 良好 | Top 20 | 性价比高 |
161
+ | voyage-3 | 1024 | 良好 | Top 3 | 代码和多语言优秀 |
162
+ | bge-large-zh-v1.5 | 1024 | 优秀 | 中文 Top 3 | 开源,中文专项优化 |
163
+ | jina-embeddings-v3 | 1024 | 优秀 | Top 10 | 开源,多语言,长文本 |
164
+ | GTE-Qwen2-7B | 3584 | 优秀 | 中文 Top 1 | 开源大模型 Embedding |
165
+
166
+ ### 2.2 Embedding 生成管道
167
+
168
+ ```python
169
+ from typing import Protocol
170
+ import hashlib
171
+
172
+ class EmbeddingProvider(Protocol):
173
+ def embed(self, texts: list[str]) -> list[list[float]]: ...
174
+
175
+ class EmbeddingPipeline:
176
+ """生产级 Embedding 生成管道,支持缓存和批量处理。"""
177
+
178
+ def __init__(self, provider: EmbeddingProvider, cache_db=None,
179
+ batch_size: int = 64):
180
+ self.provider = provider
181
+ self.cache = cache_db
182
+ self.batch_size = batch_size
183
+
184
+ def embed_documents(self, documents: list[str]) -> list[list[float]]:
185
+ """批量生成文档 Embedding,支持缓存加速。"""
186
+ results: list[list[float] | None] = [None] * len(documents)
187
+ to_embed: list[tuple[int, str]] = []
188
+
189
+ # 查缓存
190
+ for i, doc in enumerate(documents):
191
+ key = self._cache_key(doc)
192
+ if self.cache:
193
+ cached = self.cache.get(key)
194
+ if cached:
195
+ results[i] = cached
196
+ continue
197
+ to_embed.append((i, doc))
198
+
199
+ # 批量调用
200
+ for batch_start in range(0, len(to_embed), self.batch_size):
201
+ batch = to_embed[batch_start:batch_start + self.batch_size]
202
+ texts = [t for _, t in batch]
203
+ embeddings = self.provider.embed(texts)
204
+
205
+ for (idx, doc), emb in zip(batch, embeddings):
206
+ results[idx] = emb
207
+ if self.cache:
208
+ self.cache.set(self._cache_key(doc), emb, ttl=86400 * 7)
209
+
210
+ return results # type: ignore
211
+
212
+ @staticmethod
213
+ def _cache_key(text: str) -> str:
214
+ return f"emb:{hashlib.sha256(text.encode()).hexdigest()[:16]}"
215
+ ```
216
+
217
+ ---
218
+
219
+ ## 3. 向量数据库
220
+
221
+ ### 3.1 主流方案对比
222
+
223
+ | 数据库 | 类型 | 最大向量数 | 特色功能 | 适用场景 |
224
+ |--------|------|-----------|---------|---------|
225
+ | Pinecone | 全托管 | 数十亿 | 命名空间、稀疏向量 | 生产首选,免运维 |
226
+ | Weaviate | 自托管/云 | 数十亿 | GraphQL API、多模态 | 复杂查询场景 |
227
+ | Qdrant | 自托管/云 | 数十亿 | 过滤性能优秀、Rust 实现 | 高性能需求 |
228
+ | Milvus | 自托管 | 千亿级 | 分布式、GPU 加速 | 超大规模场景 |
229
+ | pgvector | PostgreSQL 扩展 | 千万级 | 与现有 PG 集成 | 中小规模、已有 PG |
230
+ | ChromaDB | 嵌入式 | 百万级 | API 简洁、零配置 | 原型和小项目 |
231
+
232
+ ### 3.2 向量数据库集成
233
+
234
+ ```python
235
+ from qdrant_client import QdrantClient
236
+ from qdrant_client.models import (
237
+ Distance, VectorParams, PointStruct, Filter,
238
+ FieldCondition, MatchValue,
239
+ )
240
+ import uuid
241
+
242
+ class VectorStore:
243
+ """向量数据库封装层,支持多后端切换。"""
244
+
245
+ def __init__(self, url: str = "localhost", port: int = 6333):
246
+ self.client = QdrantClient(host=url, port=port)
247
+
248
+ def create_collection(self, name: str, vector_size: int = 1024):
249
+ self.client.create_collection(
250
+ collection_name=name,
251
+ vectors_config=VectorParams(
252
+ size=vector_size, distance=Distance.COSINE
253
+ ),
254
+ )
255
+
256
+ def upsert(self, collection: str, documents: list[dict]):
257
+ """批量写入文档及其向量。"""
258
+ points = [
259
+ PointStruct(
260
+ id=str(uuid.uuid4()),
261
+ vector=doc["embedding"],
262
+ payload={
263
+ "text": doc["text"],
264
+ "source": doc.get("source", ""),
265
+ "metadata": doc.get("metadata", {}),
266
+ },
267
+ )
268
+ for doc in documents
269
+ ]
270
+ self.client.upsert(collection_name=collection, points=points)
271
+
272
+ def search(self, collection: str, query_vector: list[float],
273
+ top_k: int = 10, filters: dict | None = None) -> list[dict]:
274
+ """向量搜索,支持元数据过滤。"""
275
+ search_filter = None
276
+ if filters:
277
+ conditions = [
278
+ FieldCondition(key=k, match=MatchValue(value=v))
279
+ for k, v in filters.items()
280
+ ]
281
+ search_filter = Filter(must=conditions)
282
+
283
+ results = self.client.search(
284
+ collection_name=collection,
285
+ query_vector=query_vector,
286
+ limit=top_k,
287
+ query_filter=search_filter,
288
+ )
289
+ return [
290
+ {
291
+ "text": r.payload["text"],
292
+ "score": r.score,
293
+ "source": r.payload.get("source"),
294
+ "metadata": r.payload.get("metadata"),
295
+ }
296
+ for r in results
297
+ ]
298
+ ```
299
+
300
+ ---
301
+
302
+ ## 4. 检索策略
303
+
304
+ ### 4.1 混合检索
305
+
306
+ ```python
307
+ class HybridRetriever:
308
+ """混合检索: 向量检索 + 关键词检索 + 加权融合。"""
309
+
310
+ def __init__(self, vector_store: VectorStore, bm25_index,
311
+ vector_weight: float = 0.7):
312
+ self.vector_store = vector_store
313
+ self.bm25 = bm25_index
314
+ self.vector_weight = vector_weight
315
+ self.keyword_weight = 1.0 - vector_weight
316
+
317
+ def search(self, query: str, collection: str,
318
+ top_k: int = 10) -> list[dict]:
319
+ # 向量检索
320
+ query_emb = get_embedding(query)
321
+ vector_results = self.vector_store.search(
322
+ collection, query_emb, top_k=top_k * 2
323
+ )
324
+
325
+ # 关键词检索
326
+ keyword_results = self.bm25.search(query, top_k=top_k * 2)
327
+
328
+ # Reciprocal Rank Fusion (RRF)
329
+ return self._rrf_merge(vector_results, keyword_results, top_k)
330
+
331
+ def _rrf_merge(self, vector_results: list[dict],
332
+ keyword_results: list[dict],
333
+ top_k: int, k: int = 60) -> list[dict]:
334
+ """RRF 融合算法: score = sum(1 / (k + rank))。"""
335
+ scores: dict[str, float] = {}
336
+ doc_map: dict[str, dict] = {}
337
+
338
+ for rank, doc in enumerate(vector_results):
339
+ doc_id = doc["text"][:100] # 用文本前缀做去重 key
340
+ scores[doc_id] = scores.get(doc_id, 0) + (
341
+ self.vector_weight / (k + rank + 1)
342
+ )
343
+ doc_map[doc_id] = doc
344
+
345
+ for rank, doc in enumerate(keyword_results):
346
+ doc_id = doc["text"][:100]
347
+ scores[doc_id] = scores.get(doc_id, 0) + (
348
+ self.keyword_weight / (k + rank + 1)
349
+ )
350
+ if doc_id not in doc_map:
351
+ doc_map[doc_id] = doc
352
+
353
+ ranked = sorted(scores.items(), key=lambda x: x[1], reverse=True)
354
+ return [doc_map[doc_id] for doc_id, _ in ranked[:top_k]]
355
+ ```
356
+
357
+ ### 4.2 查询改写
358
+
359
+ ```python
360
+ QUERY_REWRITE_PROMPT = """
361
+ 你是一个搜索查询优化专家。将用户的自然语言问题改写为更适合检索的查询。
362
+
363
+ 规则:
364
+ 1. 生成 3 个不同角度的改写查询
365
+ 2. 提取关键实体和概念
366
+ 3. 扩展同义词和相关术语
367
+
368
+ 用户问题: {query}
369
+
370
+ 请按 JSON 格式输出:
371
+ ```json
372
+ {
373
+ "original": "原始查询",
374
+ "rewrites": ["改写1", "改写2", "改写3"],
375
+ "key_entities": ["实体1", "实体2"],
376
+ "expanded_terms": ["同义词1", "相关术语"]
377
+ }
378
+ ```
379
+ """
380
+
381
+ def multi_query_retrieve(query: str, retriever: HybridRetriever,
382
+ collection: str, top_k: int = 10) -> list[dict]:
383
+ """多查询检索: 改写查询后并行检索,合并去重。"""
384
+ rewrites = generate_query_rewrites(query)
385
+ all_results = []
386
+
387
+ for q in [query] + rewrites:
388
+ results = retriever.search(q, collection, top_k=top_k)
389
+ all_results.extend(results)
390
+
391
+ # 去重并按分数排序
392
+ seen = set()
393
+ unique = []
394
+ for r in sorted(all_results, key=lambda x: x["score"], reverse=True):
395
+ key = r["text"][:200]
396
+ if key not in seen:
397
+ seen.add(key)
398
+ unique.append(r)
399
+ return unique[:top_k]
400
+ ```
401
+
402
+ ---
403
+
404
+ ## 5. 重排序 (Reranking)
405
+
406
+ ### 5.1 Cross-Encoder 重排序
407
+
408
+ ```python
409
+ from sentence_transformers import CrossEncoder
410
+
411
+ class Reranker:
412
+ """基于 Cross-Encoder 的重排序器。"""
413
+
414
+ def __init__(self, model_name: str = "BAAI/bge-reranker-v2-m3"):
415
+ self.model = CrossEncoder(model_name)
416
+
417
+ def rerank(self, query: str, documents: list[dict],
418
+ top_k: int = 5) -> list[dict]:
419
+ """对检索结果重排序。"""
420
+ pairs = [(query, doc["text"]) for doc in documents]
421
+ scores = self.model.predict(pairs)
422
+
423
+ for doc, score in zip(documents, scores):
424
+ doc["rerank_score"] = float(score)
425
+
426
+ ranked = sorted(documents, key=lambda x: x["rerank_score"],
427
+ reverse=True)
428
+ return ranked[:top_k]
429
+ ```
430
+
431
+ ### 5.2 LLM 重排序 (备选)
432
+
433
+ ```python
434
+ RERANK_PROMPT = """
435
+ 对以下文档按与查询的相关性排序 (最相关在前):
436
+
437
+ 查询: {query}
438
+
439
+ 文档列表:
440
+ {documents}
441
+
442
+ 请输出排序后的文档编号列表 (如: [3, 1, 5, 2, 4])。只输出列表,不要解释。
443
+ """
444
+ ```
445
+
446
+ ---
447
+
448
+ ## 6. 生成与引用追溯
449
+
450
+ ### 6.1 上下文组装
451
+
452
+ ```python
453
+ def build_rag_prompt(query: str, retrieved_docs: list[dict],
454
+ max_context_tokens: int = 4000) -> str:
455
+ """组装 RAG Prompt,控制上下文长度并保留引用信息。"""
456
+ context_parts = []
457
+ total_tokens = 0
458
+
459
+ for i, doc in enumerate(retrieved_docs):
460
+ doc_tokens = estimate_tokens(doc["text"])
461
+ if total_tokens + doc_tokens > max_context_tokens:
462
+ break
463
+ context_parts.append(
464
+ f"[来源{i+1}] ({doc.get('source', '未知')})\n{doc['text']}"
465
+ )
466
+ total_tokens += doc_tokens
467
+
468
+ context = "\n\n---\n\n".join(context_parts)
469
+
470
+ return f"""基于以下参考资料回答用户问题。
471
+
472
+ ## 规则
473
+ 1. 只使用参考资料中的信息回答
474
+ 2. 每个论点必须标注来源编号 (如: [来源1])
475
+ 3. 如果参考资料不足以回答,明确说明"根据现有资料无法完整回答"
476
+ 4. 不要编造参考资料中没有的信息
477
+
478
+ ## 参考资料
479
+ {context}
480
+
481
+ ## 用户问题
482
+ {query}
483
+
484
+ ## 回答
485
+ """
486
+ ```
487
+
488
+ ### 6.2 幻觉检测
489
+
490
+ ```python
491
+ HALLUCINATION_CHECK_PROMPT = """
492
+ 检查以下 AI 回答是否忠实于提供的参考资料。
493
+
494
+ 参考资料:
495
+ {context}
496
+
497
+ AI 回答:
498
+ {answer}
499
+
500
+ 请逐句检查,输出 JSON:
501
+ ```json
502
+ {
503
+ "sentences": [
504
+ {
505
+ "text": "回答中的句子",
506
+ "supported": true/false,
507
+ "source": "来源编号或 null",
508
+ "issue": "问题描述或 null"
509
+ }
510
+ ],
511
+ "faithfulness_score": 0.0-1.0,
512
+ "hallucinated_claims": ["幻觉内容列表"]
513
+ }
514
+ ```
515
+ """
516
+ ```
517
+
518
+ ---
519
+
520
+ ## 7. 评估指标
521
+
522
+ ### 7.1 RAG 评估指标体系
523
+
524
+ | 指标 | 维度 | 计算方法 | 目标值 |
525
+ |------|------|---------|--------|
526
+ | Hit Rate@k | 检索 | top-k 中包含相关文档的查询比例 | >= 0.90 |
527
+ | MRR | 检索 | 第一个相关文档排名的倒数均值 | >= 0.80 |
528
+ | NDCG@k | 检索 | 归一化折损累积增益 | >= 0.75 |
529
+ | Faithfulness | 生成 | 回答可追溯到参考文档的比例 | >= 0.90 |
530
+ | Answer Relevancy | 生成 | 回答与问题的相关性评分 | >= 0.85 |
531
+ | Context Precision | 检索+生成 | 检索文档中与回答相关的比例 | >= 0.70 |
532
+ | Context Recall | 检索+生成 | 标准答案中被检索文档覆盖的比例 | >= 0.80 |
533
+
534
+ ### 7.2 RAGAS 评估实现
535
+
536
+ ```python
537
+ from ragas import evaluate
538
+ from ragas.metrics import (
539
+ faithfulness, answer_relevancy,
540
+ context_precision, context_recall,
541
+ )
542
+ from datasets import Dataset
543
+
544
+ def evaluate_rag_system(test_data: list[dict]) -> dict:
545
+ """使用 RAGAS 框架评估 RAG 系统。"""
546
+ dataset = Dataset.from_dict({
547
+ "question": [d["question"] for d in test_data],
548
+ "answer": [d["generated_answer"] for d in test_data],
549
+ "contexts": [d["retrieved_contexts"] for d in test_data],
550
+ "ground_truth": [d["ground_truth"] for d in test_data],
551
+ })
552
+
553
+ results = evaluate(
554
+ dataset,
555
+ metrics=[
556
+ faithfulness,
557
+ answer_relevancy,
558
+ context_precision,
559
+ context_recall,
560
+ ],
561
+ )
562
+ return results.to_pandas().describe().to_dict()
563
+ ```
564
+
565
+ ### 7.3 端到端评估管道
566
+
567
+ ```python
568
+ class RAGEvaluationPipeline:
569
+ """端到端 RAG 评估管道。"""
570
+
571
+ def __init__(self, rag_system, test_cases: list[dict]):
572
+ self.rag = rag_system
573
+ self.test_cases = test_cases
574
+
575
+ def run(self) -> dict:
576
+ results = {
577
+ "retrieval": {"hit_rate": 0, "mrr": 0},
578
+ "generation": {"faithfulness": 0, "relevancy": 0},
579
+ "latency": {"p50_ms": 0, "p95_ms": 0, "p99_ms": 0},
580
+ }
581
+ latencies = []
582
+
583
+ for case in self.test_cases:
584
+ start = time.monotonic()
585
+ answer, contexts = self.rag.query(case["question"])
586
+ elapsed = (time.monotonic() - start) * 1000
587
+ latencies.append(elapsed)
588
+
589
+ # 检索质量
590
+ relevant = case["relevant_doc_ids"]
591
+ retrieved_ids = [c["id"] for c in contexts]
592
+ if any(r in retrieved_ids[:5] for r in relevant):
593
+ results["retrieval"]["hit_rate"] += 1
594
+ for rank, doc_id in enumerate(retrieved_ids):
595
+ if doc_id in relevant:
596
+ results["retrieval"]["mrr"] += 1 / (rank + 1)
597
+ break
598
+
599
+ n = len(self.test_cases)
600
+ results["retrieval"]["hit_rate"] /= n
601
+ results["retrieval"]["mrr"] /= n
602
+ results["latency"]["p50_ms"] = round(np.percentile(latencies, 50))
603
+ results["latency"]["p95_ms"] = round(np.percentile(latencies, 95))
604
+ results["latency"]["p99_ms"] = round(np.percentile(latencies, 99))
605
+
606
+ return results
607
+ ```
608
+
609
+ ---
610
+
611
+ ## 8. 生产部署检查项
612
+
613
+ ### 8.1 索引管理
614
+
615
+ ```
616
+ 索引管理清单:
617
+ ├── 增量更新 — 新文档自动进入索引管道
618
+ ├── 版本控制 — 索引快照可回滚到上一版本
619
+ ├── 过期清理 — 删除的源文档对应向量也被清理
620
+ ├── 一致性校验 — 定期校验文档数与向量数一致
621
+ └── 监控告警 — 索引延迟、大小、查询延迟有告警
622
+ ```
623
+
624
+ ### 8.2 性能优化
625
+
626
+ | 优化项 | 方法 | 效果 |
627
+ |--------|------|------|
628
+ | 向量量化 | PQ/SQ 量化 | 内存降低 4-8 倍 |
629
+ | 索引分片 | 按租户或时间分片 | 查询延迟降低 |
630
+ | 缓存热查询 | Redis 缓存高频查询结果 | 命中率 30-50% |
631
+ | 预计算 Embedding | 离线批量生成 | 在线延迟降低 |
632
+ | 上下文压缩 | 只保留相关段落 | Token 成本降低 40% |
633
+
634
+ ---
635
+
636
+ ## Agent Checklist
637
+
638
+ - [ ] 文档分块策略经过离线评测,chunk_size 和 overlap 有数据支撑
639
+ - [ ] Embedding 模型在目标语言和领域数据上做过对比评测
640
+ - [ ] 向量数据库支持元数据过滤和增量更新
641
+ - [ ] 检索层采用混合检索 (向量+关键词) 并有 RRF 融合
642
+ - [ ] 重排序模型部署并在检索结果上验证提升效果
643
+ - [ ] 查询改写管道上线并有多查询检索策略
644
+ - [ ] 生成 Prompt 强制要求引用来源编号
645
+ - [ ] 幻觉检测流程集成到质量监控中
646
+ - [ ] RAGAS 或等价评估框架产出基线指标
647
+ - [ ] Hit Rate >= 0.90, MRR >= 0.80, Faithfulness >= 0.90
648
+ - [ ] 索引有版本管理、增量更新和一致性校验
649
+ - [ ] 查询延迟 P95 < 2s,包含检索+重排+生成全链路