llama-stack-mirror/src/llama_stack/apis
Ashwin Bharambe 44096512b5
feat: add custom_metadata to OpenAIModel to unify /v1/models with /v1/openai/v1/models (#4051)
We need to remove `/v1/openai/v1` paths shortly. There is one trouble --
our current `/v1/openai/v1/models` endpoint provides different data than
`/v1/models`. Unfortunately our tests target the latter (llama-stack
customized) behavior. We need to get to true OpenAI compatibility.

This is step 1: adding `custom_metadata` field to `OpenAIModel` that
includes all the extra stuff we add in the native `/v1/models` response.
This can be extracted on the consumer end by look at
`__pydantic_extra__` or other similar fields.

This PR:
- Adds `custom_metadata` field to `OpenAIModel` class in
`src/llama_stack/apis/models/models.py`
- Modified `openai_list_models()` in
`src/llama_stack/core/routing_tables/models.py` to populate
custom_metadata

Next Steps
1. Update stainless client to use `/v1/openai/v1/models` instead of
`/v1/models`
2. Migrate tests to read from `custom_metadata`
3. Remove `/v1/openai/v1/` prefix entirely and consolidate to single
`/v1/models` endpoint
2025-11-03 15:56:07 -08:00
..
agents fix(mypy): part-03 completely resolve meta reference responses impl typing issues (#3951) 2025-10-29 08:07:15 -07:00
batches chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
benchmarks chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
common chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
conversations chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
datasetio chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
datasets chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
eval chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
files chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
inference chore(telemetry): more cleanup: remove apis.telemetry (#3919) 2025-10-27 22:20:15 -07:00
inspect chore(api)!: /v1/inspect only lists v1 apis by default (#3948) 2025-10-31 11:55:46 -07:00
models feat: add custom_metadata to OpenAIModel to unify /v1/models with /v1/openai/v1/models (#4051) 2025-11-03 15:56:07 -08:00
post_training chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
prompts chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
providers chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
safety chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
scoring chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
scoring_functions chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
shields chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
synthetic_data_generation chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
tools chore!: BREAKING CHANGE: vector_db_id -> vector_store_id (#3923) 2025-10-27 14:26:06 -07:00
vector_io fix!: remove chunk_id property from Chunk class (#3954) 2025-10-29 18:59:59 -07:00
vector_stores chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
__init__.py chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
datatypes.py chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
resource.py chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00
version.py chore(package): migrate to src/ layout (#3920) 2025-10-27 12:02:21 -07:00