refactor(seo): clarify APISIX AI Gateway search intent - #2120
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
Unresolved documentation accuracy, tenant-isolation guidance, and feature-card consistency findings should be addressed before approval.
Pull request overview
Refines Apache APISIX AI Gateway documentation, SEO positioning, plugin mappings, and English/Chinese content coverage.
Changes:
- Clarifies capabilities, responsibility boundaries, and supported integrations.
- Separates search intent across hubs and related articles.
- Adds metadata, content, localization, and responsive regression tests.
File summaries
| File | Reviewed changes |
|---|---|
website/static/llms.txt |
Removes unsupported provider-count wording. |
next/tests/e2e/main-pages.spec.mjs |
Adds hub metadata, links, localization, and responsive checks. |
next/tests/e2e/ai-gateway-content.spec.mjs |
Adds article-boundary and plugin-mapping coverage. |
next/src/components/MainPages/AiGatewayPage.astro |
Updates capability mappings and responsibility boundaries. |
next/src/components/HomePage.astro |
Refreshes homepage AI Gateway positioning. |
blog/zh/blog/2026/07/10/manage-apache-apisix-with-ai-agents.md |
Updates Chinese AI agent article boundaries and links. |
blog/zh/blog/2025/03/21/ai-gateway-vs-api-gateway-differences-explained.md |
Separates Chinese comparison search intent. |
blog/zh/blog/2025/03/06/what-is-an-ai-gateway.md |
Clarifies Chinese AI Gateway scope. |
blog/zh/blog/2025/02/24/apisix-ai-gateway-features.md |
Maps Chinese feature content to documented plugins. |
blog/en/blog/2026/07/10/manage-apache-apisix-with-ai-agents.md |
Updates English AI agent article boundaries and links. |
blog/en/blog/2025/03/21/ai-gateway-vs-api-gateway-differences-explained.md |
Separates English comparison search intent. |
blog/en/blog/2025/03/06/what-is-an-ai-gateway.md |
Clarifies English AI Gateway scope. |
blog/en/blog/2025/02/24/apisix-ai-gateway-features.md |
Maps English feature content to documented plugins. |
Review details
Suppressed comments (8)
blog/en/blog/2025/02/24/apisix-ai-gateway-features.md:55
- The semantic-cache path is not limited to Redis Stack: the repository's Redis integration documents the required Redis Search commands and uses Redis Open Source 8.10.1 in its companion lab. Describing Redis Stack as a requirement incorrectly excludes a documented supported deployment; please name the command requirement instead.
The [`ai-cache`](https://apisix.apache.org/docs/apisix/plugins/ai-cache/) plugin works with `ai-proxy` or `ai-proxy-multi` to cache completed LLM responses in Redis. Exact matching is enabled by default. Teams can optionally add semantic matching, which requires Redis Stack with RediSearch and a configured embedding service.
blog/en/blog/2025/02/24/apisix-ai-gateway-features.md:59
- This guidance is unsafe for tenant isolation because
cache_key.include_consumeronly distinguishes authenticated Consumers; it does not isolate unauthenticated traffic, and a client-controlled header is not a trusted tenant boundary. Require authentication or a trusted server-side key before claiming that cached responses cannot be reused across tenants.
Cache entries are scoped by Route by default, not by Consumer. If multiple consumers share a Route, enable `cache_key.include_consumer` or add a trusted tenant-identifying variable through `cache_key.include_vars` to prevent cached responses from being reused across tenants.
blog/zh/blog/2025/02/24/apisix-ai-gateway-features.md:54
- 语义缓存并不只支持 Redis Stack:仓库的 Redis 集成文档说明所需的是 Redis Search 命令,配套实验使用的是 Redis Open Source 8.10.1。将 Redis Stack 描述为必需条件会错误地排除已有文档支持的部署方式,请改为说明命令依赖。
[`ai-cache`](https://apisix.apache.org/zh/docs/apisix/plugins/ai-cache/) 插件与 `ai-proxy` 或 `ai-proxy-multi` 配合,将完整的 LLM 响应缓存到 Redis。精确匹配默认启用。团队也可以选择增加语义匹配,但这要求使用带 RediSearch 的 Redis Stack,并配置 embedding 服务。
blog/zh/blog/2025/02/24/apisix-ai-gateway-features.md:58
- 这段隔离说明对多租户场景并不安全,因为
cache_key.include_consumer只能区分已认证的 Consumer,不能隔离未认证流量,客户端可控的 header 也不是可信的租户边界。请在声称缓存不会跨租户复用前,明确要求身份认证或可信的服务端缓存键。
缓存条目默认按 Route 隔离,而不是按 Consumer 隔离。如果多个 Consumer 共享同一个 Route,应启用 `cache_key.include_consumer`,或通过 `cache_key.include_vars` 加入可信的租户标识变量,避免在不同租户之间复用缓存响应。
next/src/components/MainPages/AiGatewayPage.astro:25
- This wording implies that the gateway can cap the tokens of the request before it reaches the provider.
ai-rate-limitingchecks the existing counter before proxying but records provider-reported usage only after the response, so a large or concurrent response can cross the limit before a later request is rejected. Please make the post-response, non-prepaid behavior explicit.
'Apply token-based limits with local or Redis-backed counters to control usage before requests reach an LLM provider.',
'使用本地或 Redis 计数器实施基于 token 的限制,在请求到达 LLM 提供商之前控制用量。',
next/src/components/MainPages/AiGatewayPage.astro:85
- The current
ai-lakera-guarddocumentation likewise supports eitherai-proxyorai-proxy-multi, while this card mentions onlyAI Proxy; the capability table below already states the broader integration. Please name both plugins in this summary so the feature card does not contradict the documented multi-provider path.
'With AI Proxy, use the Lakera Guard v2 API to inspect supported LLM requests, responses, or both.',
'与 AI Proxy 配合,使用 Lakera Guard v2 API 检查受支持的 LLM 请求、响应或两者。',
next/src/components/MainPages/AiGatewayPage.astro:75
- The current
ai-cachedocumentation supports pairing this plugin with eitherai-proxyorai-proxy-multi, but this card names onlyAI Proxywhile the capability table below correctly lists both. Please use the explicit plugin names here so users who route through the multi-instance plugin do not infer that response caching is unavailable to them.
'With AI Proxy, cache completed LLM responses using Redis-backed exact matching and optional semantic matching.',
'与 AI Proxy 配合,使用 Redis 支持的精确匹配和可选语义匹配缓存完整的 LLM 响应。',
next/src/components/MainPages/AiGatewayPage.astro:77
- This card is labeled "AI response caching" but reuses
token-rate-limiting.svg, so the visible icon represents token limiting rather than caching and makes the feature grid misleading. Please use a cache-specific asset (or add one) for this card.
icon: '/img/ai-gateway/token-rate-limiting.svg',
- Files reviewed: 13/13 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Changes:
Validation:
yarn lint:frontmatteryarn --cwd next syncnpm --prefix next run checkNODE_OPTIONS=--max-old-space-size=3072 npm --prefix next run buildgit diff --checkNotes: