docs(readme): move reference tables into docs and link from README#415
Conversation
Slim the README to a lean front page and make docs/ the single source of truth for reference material: - Move the supported-providers feature matrix and provider notes into docs/providers/overview.mdx; README keeps a short provider list + link. - Move the API endpoint tables into a new docs/advanced/api-endpoints.mdx (Admin routes link to the existing admin-endpoints page); README links out. - Replace the Gateway Configuration env-var table, Response Caching detail, and Roadmap checklists with concise intros + links to the canonical docs. - admin-endpoints.mdx: drop the duplicated env-var table/YAML, link to configuration.mdx#admin instead. - Mention the Anthropic-compatible API in the README tagline. - Fix Xiaomi MiMo provider icon (invalid "microphone" -> Lucide "mic"). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughREADME is condensed by removing inline provider, endpoint, gateway configuration, and roadmap tables, replacing them with links to dedicated documentation pages. A new ChangesDocumentation Reorganization
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Confidence Score: 5/5This looks safe to merge.
Reviews (2): Last reviewed commit: "docs(api-endpoints): complete endpoint r..." | Re-trigger Greptile |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/advanced/api-endpoints.mdx (1)
1-60:⚠️ Potential issue | 🟠 MajorDocumentation incomplete: missing 8+ implemented endpoints including audio, realtime, and response management operations.
The endpoint tables omit several production endpoints currently implemented in the codebase:
- Response management:
/v1/responses/{id}(GET, DELETE),/v1/responses/{id}/cancel(POST),/v1/responses/{id}/input_items(GET)- Response operations:
/v1/responses/input_tokens(POST),/v1/responses/compact(POST)- Audio endpoints:
/v1/audio/speech(POST),/v1/audio/transcriptions(POST)- Realtime:
/v1/realtime(GET, when enabled)These are active routes registered in
internal/server/http.gobut not reflected in the reference document. Update the OpenAI-Compatible API table to include all response-specific and audio endpoints, and add a new Audio API section.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/advanced/api-endpoints.mdx` around lines 1 - 60, The API Endpoints documentation is missing several production endpoints that are already implemented. Add the missing response management endpoints (GET, DELETE, and cancel operations on `/v1/responses/{id}` routes) and response operations endpoints (POST operations for input_tokens and compact) to the OpenAI-Compatible API table after the existing `/v1/responses` entry. Create a new Audio API section in the document to document the `/v1/audio/speech` and `/v1/audio/transcriptions` POST endpoints. Additionally, add the `/v1/realtime` GET endpoint to either the OpenAI-Compatible API table or a separate Realtime section to ensure all endpoints registered in internal/server/http.go are reflected in this reference documentation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/providers/overview.mdx`:
- Around line 16-40: In the providers table in the overview.mdx file, locate the
Bedrock provider row and find the Embed column. Change the checkmark from ✅ to ❌
because the actual implementation in bedrock.go explicitly returns an error with
the message "bedrock embeddings are not yet supported by gomodel" when the
Embeddings method is called, confirming that embeddings functionality is not
supported despite what the table currently indicates.
In `@README.md`:
- Around line 47-49: The README.md file has inconsistent formatting for the
`.env.template` link references. Standardize the link format throughout the
document by choosing either the `[.env.template](./.env.template)` format with
the `./` prefix or the `[`.env.template`](.env.template)` format without it, and
apply it consistently wherever the `.env.template` file is referenced with a
markdown link. This ensures uniform documentation style and avoids confusion.
---
Outside diff comments:
In `@docs/advanced/api-endpoints.mdx`:
- Around line 1-60: The API Endpoints documentation is missing several
production endpoints that are already implemented. Add the missing response
management endpoints (GET, DELETE, and cancel operations on `/v1/responses/{id}`
routes) and response operations endpoints (POST operations for input_tokens and
compact) to the OpenAI-Compatible API table after the existing `/v1/responses`
entry. Create a new Audio API section in the document to document the
`/v1/audio/speech` and `/v1/audio/transcriptions` POST endpoints. Additionally,
add the `/v1/realtime` GET endpoint to either the OpenAI-Compatible API table or
a separate Realtime section to ensure all endpoints registered in
internal/server/http.go are reflected in this reference documentation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 631519b0-fb87-44ff-b330-82cb5347b702
📒 Files selected for processing (6)
README.mddocs/advanced/admin-endpoints.mdxdocs/advanced/api-endpoints.mdxdocs/docs.jsondocs/providers/overview.mdxdocs/providers/xiaomi.mdx
| Example model identifiers are illustrative and subject to change; consult | ||
| provider catalogs for current models. Feature columns reflect gateway API | ||
| support, not every individual model capability exposed by an upstream provider. | ||
|
|
||
| See the [README provider table](https://github.com/ENTERPILOT/GoModel#supported-llm-providers) | ||
| for per-provider feature support (chat, Responses, embeddings, files, batches, | ||
| passthrough). | ||
| | Provider | Credential | Example Model | Chat | `/responses` | Embed | Files | Batches | Passthru | Guide | | ||
| | -------- | ---------- | ------------- | :--: | :----------: | :---: | :---: | :-----: | :------: | ----- | | ||
| | OpenAI | `OPENAI_API_KEY` | `gpt-5.5` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | | ||
| | Anthropic | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | [Anthropic](/providers/anthropic) | | ||
| | Google Gemini | `GEMINI_API_KEY` | `gemini-2.5-flash` | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | [Google Gemini](/providers/gemini) | | ||
| | Google Vertex AI | `VERTEX_PROJECT` + `VERTEX_LOCATION` + GCP credentials | `google/gemini-2.5-flash` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [Google Vertex AI](/providers/vertex) | | ||
| | DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-v4-pro` | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | [DeepSeek](/providers/deepseek) | | ||
| | Groq | `GROQ_API_KEY` | `llama-3.3-70b-versatile` | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | — | | ||
| | OpenRouter | `OPENROUTER_API_KEY` | `google/gemini-2.5-flash` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | | ||
| | Z.ai | `ZAI_API_KEY` (`ZAI_BASE_URL` optional) | `glm-5.1` | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | — | | ||
| | xAI (Grok) | `XAI_API_KEY` | `grok-4` | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | — | | ||
| | Alibaba Cloud Model Studio (Bailian) | `BAILIAN_API_KEY` (`BAILIAN_BASE_URL` optional) | `qwen3-max` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | [Alibaba Cloud Model Studio](/providers/bailian) | | ||
| | MiniMax | `MINIMAX_API_KEY` (`MINIMAX_BASE_URL` optional) | `MiniMax-M3` | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | — | | ||
| | Xiaomi MiMo | `XIAOMI_API_KEY` (`XIAOMI_BASE_URL` optional) | `mimo-v2.5-pro` | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | [Xiaomi MiMo](/providers/xiaomi) | | ||
| | OpenCode Go | `OPENCODE_GO_API_KEY` (`OPENCODE_GO_BASE_URL` optional) | `glm-5.1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | [OpenCode Go](/providers/opencode-go) | | ||
| | Azure OpenAI | `AZURE_API_KEY` + `AZURE_BASE_URL` (`AZURE_API_VERSION` optional) | `gpt-5` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | [Azure OpenAI](/providers/azure) | | ||
| | Oracle GenAI | `ORACLE_API_KEY` + `ORACLE_BASE_URL` | `openai.gpt-oss-120b` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | [Oracle GenAI](/providers/oracle) | | ||
| | Ollama | `OLLAMA_BASE_URL` | `llama3.2` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [Ollama](/providers/multiple-ollama) | | ||
| | vLLM | `VLLM_BASE_URL` (`VLLM_API_KEY` optional) | `meta-llama/Llama-3.1-8B-Instruct` | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | [vLLM](/providers/vllm) | | ||
| | Amazon Bedrock | `BEDROCK_BASE_URL` (region or endpoint) + AWS credentials | `anthropic.claude-3-5-haiku-20241022-v1:0` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | [Amazon Bedrock](/providers/bedrock) | | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Spot-check capability assignments for a few providers
echo "=== Checking provider capability implementations ==="
rg -n 'Anthropic.*embed|anthropic.*files' --type go | head -10
echo -e "\n"
rg -n 'vLLM.*batch|vllm.*batch' --type go | head -10
echo -e "\n"
rg -n 'OpenRouter.*passthrough|openrouter.*passthrough' --type go | head -10Repository: ENTERPILOT/GoModel
Length of output: 495
🏁 Script executed:
#!/bin/bash
# Check OpenRouter passthrough support
echo "=== OpenRouter passthrough ==="
rg -n 'openrouter.*pass|passthrough.*openrouter' --type go -i | head -5
# Check Google Gemini Files/Batches support
echo -e "\n=== Google Gemini capabilities ==="
find . -name "*gemini*" -type f | grep -E '\.(go|ts)$' | head -5
rg -n 'Files|Batches' internal/providers/gemini --type go -B2 -A2 | head -20
# Check Z.ai implementation
echo -e "\n=== Z.ai provider structure ==="
find . -path "*zai*" -type f | grep -E '\.(go|ts)$'
# Check if Groq implements Files/Batches
echo -e "\n=== Groq Files/Batches support ==="
rg -n 'groq.*Files|groq.*Batches|groq.*Embed' --type go -i | head -10Repository: ENTERPILOT/GoModel
Length of output: 3027
🏁 Script executed:
#!/bin/bash
# Check Groq Batches support
echo "=== Groq Batches support ==="
rg -n 'Batch' internal/providers/groq/groq.go | head -10
# Check Azure OpenAI capabilities
echo -e "\n=== Azure OpenAI provider methods ==="
rg -n 'func.*Provider.*\(Chat|Files|Embed|Batch|Passthru|Responses)' internal/providers/azure --type go | head -15
# Check Oracle GenAI capabilities
echo -e "\n=== Oracle GenAI provider methods ==="
find . -path "*oracle*" -type f -name "*.go" | head -5
rg -n 'func.*Provider.*\(Chat|Files|Embed|Batch|Passthru|Responses)' internal/providers/oracle --type go -i | head -15
# Check Amazon Bedrock capabilities
echo -e "\n=== Amazon Bedrock provider methods ==="
rg -n 'func.*Provider.*\(Chat|Files|Embed|Batch|Passthru|Responses)' internal/providers/bedrock --type go -i | head -15
# Check which providers support embeddings
echo -e "\n=== Embedding support across providers ==="
rg -n 'func.*Provider.*Embed' internal/providers --type go | wc -l
rg -n 'func.*Provider.*Embed' internal/providers --type go | head -20Repository: ENTERPILOT/GoModel
Length of output: 4610
🏁 Script executed:
#!/bin/bash
# Check Azure OpenAI - simpler query
echo "=== Azure OpenAI capability methods ==="
ls -la internal/providers/azure/ 2>/dev/null || echo "No azure provider found"
cat internal/providers/azure/azure.go 2>/dev/null | grep -E "func.*Provider.*\(" | head -20
# Check Bedrock capabilities
echo -e "\n=== Bedrock capability methods ==="
cat internal/providers/bedrock/bedrock.go 2>/dev/null | grep -E "func.*Provider.*\(" | head -20
# Check Oracle capabilities
echo -e "\n=== Oracle capability methods ==="
cat internal/providers/oracle/oracle.go 2>/dev/null | grep -E "func.*Provider.*\(" | head -20
# Check DeepSeek embeddings claim
echo -e "\n=== DeepSeek Embeddings implementation ==="
rg -n 'deepseek' internal/providers/deepseek/deepseek.go -A5 | grep -i embed
# Check Z.ai capabilities
echo -e "\n=== Z.ai capability methods ==="
cat internal/providers/zai/zai.go 2>/dev/null | grep -E "func.*Provider.*\(" | head -20Repository: ENTERPILOT/GoModel
Length of output: 2864
🏁 Script executed:
#!/bin/bash
# Check Z.ai directly
echo "=== Z.ai provider full content (first 100 lines) ==="
head -100 internal/providers/zai/zai.go
# Check if Bedrock Embeddings actually works or returns error
echo -e "\n=== Bedrock Embeddings implementation detail ==="
sed -n '226,235p' internal/providers/bedrock/bedrock.go
# Verify what each capability check does
echo -e "\n=== Table capability columns mapping ==="
echo "Checking if /responses column includes StreamResponses..."
rg -n 'StreamResponses|StreamChat' internal/providers/bedrock --type go | head -5
# Comprehensive check on Z.ai methods
echo -e "\n=== Z.ai full methods list ==="
rg -n 'func \(p \*Provider\)' internal/providers/zai/zai.goRepository: ENTERPILOT/GoModel
Length of output: 3021
🏁 Script executed:
#!/bin/bash
# Final verification: Check Z.ai inheritance chain for embeddings support
echo "=== Z.ai embedding support via OpenAI ChatCompatible ==="
rg -n 'Embeddings' internal/providers/openai/compatible_provider.go -B2 -A8
# Double-check: Does OpenAI compatible provider support embeddings?
echo -e "\n=== OpenAI compatible embeddings ==="
sed -n '337,355p' internal/providers/openai/compatible_provider.go
# Verify Bedrock is truly unsupported (not partial)
echo -e "\n=== All Bedrock method implementations ==="
grep -E "^func \(p \*Provider\)" internal/providers/bedrock/bedrock.goRepository: ENTERPILOT/GoModel
Length of output: 1757
Bedrock Embeddings capability is incorrectly marked as supported (✅) in the matrix.
Code inspection reveals a critical discrepancy: internal/providers/bedrock/bedrock.go implements Embeddings with an explicit error return:
func (p *Provider) Embeddings(_ context.Context, _ *core.EmbeddingRequest) (*core.EmbeddingResponse, error) {
return nil, core.NewInvalidRequestError("bedrock embeddings are not yet supported by gomodel", nil)
}
The table marks Bedrock Embeddings as ✅, but the implementation confirms it is unsupported. Change this to ❌.
Other spot-checks verified:
- Anthropic: ❌ Embed/Files confirmed (code explicitly rejects both)
- Gemini: ✅ Files/Batches confirmed (ListFiles, ListBatches methods present)
- Groq: ✅ Batches/Embed/Files confirmed; ❌ Passthru confirmed (not in defaultEnabledPassthroughProviders list)
- Z.ai: ✅ Embed confirmed (inherits working implementation from openai.ChatCompatible)
- DeepSeek: ❌ Embed confirmed (explicit error: "deepseek does not support embeddings")
- vLLM: ❌ Batches confirmed (test assertion: "vllm provider should not implement native batch provider")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/providers/overview.mdx` around lines 16 - 40, In the providers table in
the overview.mdx file, locate the Bedrock provider row and find the Embed
column. Change the checkmark from ✅ to ❌ because the actual implementation in
bedrock.go explicitly returns an error with the message "bedrock embeddings are
not yet supported by gomodel" when the Embeddings method is called, confirming
that embeddings functionality is not supported despite what the table currently
indicates.
…rding - Remove the Response Caching section from the README; it lives in docs/features/cache.mdx. - "OpenAI- and Anthropic-compatible" -> "OpenAI-compatible and Anthropic-compatible" in README and api-endpoints.mdx. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…links
Address PR review feedback:
- Add the missing Responses lifecycle routes (GET/DELETE /v1/responses/{id},
cancel, input_items, input_tokens, compact), the audio routes
(/v1/audio/speech, /v1/audio/transcriptions), and the gated /v1/realtime
upgrade to the API endpoints reference, verified against
internal/server/http.go. Link out to the detailed Responses/Conversations/
Anthropic/Audio guides.
- Standardize the `.env.template` / config link format in the README
(backticked text, ./ prefix).
Note: the Bedrock embeddings finding was already correct in the table (❌);
no change needed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
140-143:⚠️ Potential issue | 🟡 MinorFix
.env.templatelink format inconsistency.Line 47 uses
[.env.template](./.env.template)with the./prefix, while line 142 uses[.env.template](.env.template)without it. Update line 142 to match the line 47 format for consistency: change[.env.template](.env.template)to[.env.template](./.env.template).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 140 - 143, The markdown link format for `.env.template` in the Gateway Configuration section is inconsistent with other links in the file. Change the link reference from `[`.env.template`](.env.template)` to `[`.env.template`](./.env.template)` by adding the `./` prefix to the relative path, matching the consistent format used elsewhere in the README such as the link for `.env.template` in earlier sections.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@README.md`:
- Around line 140-143: The markdown link format for `.env.template` in the
Gateway Configuration section is inconsistent with other links in the file.
Change the link reference from `[`.env.template`](.env.template)` to
`[`.env.template`](./.env.template)` by adding the `./` prefix to the relative
path, matching the consistent format used elsewhere in the README such as the
link for `.env.template` in earlier sections.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: dc34b80a-8eed-4c6a-98dc-3d880afeb84c
📒 Files selected for processing (2)
README.mddocs/advanced/api-endpoints.mdx
Summary
Slims the README into a lean front page and makes
docs/the single source of truth for reference material. No code or behavior changes — docs only.What changed
/responses, embed, files, batches, passthrough) and the provider configuration notes intodocs/providers/overview.mdx, merged with its existing per-provider Guide links. README keeps a short provider list + link.docs/advanced/api-endpoints.mdx(added to the Advanced nav). Admin routes link to the existingadmin-endpoints.mdxrather than duplicating. README links out.advanced/configuration,features/cache,about/roadmap).configuration.mdx#admininstead."microphone"(not a valid Lucide name, rendered blank) →"mic".User-visible impact
Notes
.mdxpaths so they resolve when browsing on GitHub. Happy to switch them to published docs-site URLs if preferred.mint validatepassed.🤖 Generated with Claude Code
Summary by CodeRabbit