feat(api): clarify default LLM model config selection logic

- Update API documentation to explicitly describe default configuration selection logic
- Add fallback behavior in repository to use first config when no default is marked
- Clarify difference between `/default` endpoint and `default_config` field
- Document that `default_config` is never null when configs list is not empty
This commit is contained in:
YueGuobin committed 2026-03-03 22:27:28 +08:00
1 parent b06593cf2a
commit 2e4c42fadc
2 files changed
+18 -1

No files matched your search

+14 -1
View File
@@ -161,9 +161,14 @@ The `model_type` field accepts the following values:
| Field | Type | Description |
|-------|------|-------------|
| `configs` | list[LLMModelConfigWithSource] | Effective configurations |
| `default_config` | LLMModelConfigWithSource (nullable) | Default configuration |
| `default_config` | LLMModelConfigWithSource (nullable) | Default configuration (never null if configs list is not empty) |
| `total` | integer | Total count |
**Default Configuration Selection Logic:**
1. User's config marked with `is_default: true`
2. Group's config marked with `is_default: true` (if user has no default)
3. First config in the list (fallback if no default is marked)
### LLMModelConfigWithSource
| Field | Type | Description |
@@ -368,6 +373,8 @@ curl -X GET http://localhost:3080/v3/access/users/{user_id}/llm-model-configs/de
-H "Authorization: Bearer <token>"
```
**Note:** This endpoint only returns configurations explicitly marked with `is_default: true`. If no configuration is marked as default, it returns 404.
**Response:**
```json
{
@@ -408,6 +415,12 @@ curl -X GET http://localhost:3080/v3/access/groups/{group_id}/llm-model-configs/
The response format is the same as for users.
---
**Important Note:** This dedicated `/default` endpoint is different from the `default_config` field in the list response:
- `/default` endpoint: Requires explicit `is_default: true` flag, returns 404 if not found
- `default_config` field in list: Falls back to first config if no explicit default is marked
### 8. Delete a configuration
```bash