fix: set appropriate defaults for params (#2434)
Some checks failed
Integration Auth Tests / test-matrix (oauth2_token) (push) Failing after 7s
Integration Tests / test-matrix (http, 3.10, inspect) (push) Failing after 7s
Integration Tests / test-matrix (http, 3.10, agents) (push) Failing after 10s
Integration Tests / test-matrix (http, 3.10, providers) (push) Failing after 8s
Integration Tests / test-matrix (http, 3.11, inference) (push) Failing after 10s
Integration Tests / test-matrix (http, 3.11, tool_runtime) (push) Failing after 8s
Integration Tests / test-matrix (http, 3.11, providers) (push) Failing after 10s
Integration Tests / test-matrix (http, 3.11, agents) (push) Failing after 12s
Integration Tests / test-matrix (http, 3.10, scoring) (push) Failing after 12s
Integration Tests / test-matrix (http, 3.12, inference) (push) Failing after 8s
Integration Tests / test-matrix (http, 3.12, providers) (push) Failing after 6s
Integration Tests / test-matrix (http, 3.10, datasets) (push) Failing after 13s
Integration Tests / test-matrix (http, 3.11, inspect) (push) Failing after 11s
Integration Tests / test-matrix (http, 3.12, agents) (push) Failing after 9s
Integration Tests / test-matrix (http, 3.12, post_training) (push) Failing after 8s
Integration Tests / test-matrix (http, 3.11, scoring) (push) Failing after 13s
Integration Tests / test-matrix (http, 3.11, datasets) (push) Failing after 14s
Integration Tests / test-matrix (http, 3.12, scoring) (push) Failing after 6s
Integration Tests / test-matrix (http, 3.10, post_training) (push) Failing after 15s
Integration Tests / test-matrix (http, 3.10, inference) (push) Failing after 18s
Integration Tests / test-matrix (http, 3.10, tool_runtime) (push) Failing after 16s
Integration Tests / test-matrix (http, 3.12, inspect) (push) Failing after 11s
Integration Tests / test-matrix (http, 3.12, tool_runtime) (push) Failing after 8s
Integration Tests / test-matrix (http, 3.12, datasets) (push) Failing after 14s
Integration Tests / test-matrix (library, 3.10, inference) (push) Failing after 6s
Integration Tests / test-matrix (library, 3.10, providers) (push) Failing after 6s
Integration Tests / test-matrix (http, 3.11, post_training) (push) Failing after 15s
Integration Tests / test-matrix (library, 3.10, scoring) (push) Failing after 9s
Integration Tests / test-matrix (library, 3.10, inspect) (push) Failing after 11s
Integration Tests / test-matrix (library, 3.11, datasets) (push) Failing after 9s
Integration Tests / test-matrix (library, 3.10, datasets) (push) Failing after 17s
Integration Tests / test-matrix (library, 3.11, inspect) (push) Failing after 11s
Integration Tests / test-matrix (library, 3.10, agents) (push) Failing after 12s
Integration Tests / test-matrix (library, 3.10, tool_runtime) (push) Failing after 14s
Integration Tests / test-matrix (library, 3.11, inference) (push) Failing after 7s
Integration Tests / test-matrix (library, 3.10, post_training) (push) Failing after 19s
Integration Tests / test-matrix (library, 3.11, providers) (push) Failing after 12s
Integration Tests / test-matrix (library, 3.11, agents) (push) Failing after 16s
Integration Tests / test-matrix (library, 3.11, post_training) (push) Failing after 13s
Integration Tests / test-matrix (library, 3.12, agents) (push) Failing after 9s
Integration Tests / test-matrix (library, 3.11, tool_runtime) (push) Failing after 17s
Integration Tests / test-matrix (library, 3.11, scoring) (push) Failing after 19s
Integration Tests / test-matrix (library, 3.12, datasets) (push) Failing after 15s
Integration Tests / test-matrix (library, 3.12, inference) (push) Failing after 13s
Integration Tests / test-matrix (library, 3.12, inspect) (push) Failing after 13s
Integration Tests / test-matrix (library, 3.12, post_training) (push) Failing after 14s
Integration Tests / test-matrix (library, 3.12, providers) (push) Failing after 12s
Integration Tests / test-matrix (library, 3.12, tool_runtime) (push) Failing after 13s
Integration Tests / test-matrix (library, 3.12, scoring) (push) Failing after 15s
Test External Providers / test-external-providers (venv) (push) Failing after 20s
Update ReadTheDocs / update-readthedocs (push) Failing after 17s
Unit Tests / unit-tests (3.12) (push) Failing after 20s
Unit Tests / unit-tests (3.11) (push) Failing after 1m39s
Unit Tests / unit-tests (3.13) (push) Failing after 1m37s
Unit Tests / unit-tests (3.10) (push) Failing after 1m41s
Pre-commit / pre-commit (push) Failing after 3h4m8s

Setting defaults to be `| None` else they get marked as required params
in open-api spec.
This commit is contained in:
Hardik Shah 2025-06-11 17:30:34 -07:00 committed by GitHub
parent d55100d9b7
commit de37a04c3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 41 additions and 41 deletions

View file

@ -3318,7 +3318,7 @@
"name": "limit", "name": "limit",
"in": "query", "in": "query",
"description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.",
"required": true, "required": false,
"schema": { "schema": {
"type": "integer" "type": "integer"
} }
@ -3327,7 +3327,7 @@
"name": "order", "name": "order",
"in": "query", "in": "query",
"description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.", "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.",
"required": true, "required": false,
"schema": { "schema": {
"type": "string" "type": "string"
} }
@ -13128,9 +13128,7 @@
}, },
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"query", "query"
"max_num_results",
"rewrite_query"
], ],
"title": "OpenaiSearchVectorStoreRequest" "title": "OpenaiSearchVectorStoreRequest"
}, },

View file

@ -2323,7 +2323,7 @@ paths:
description: >- description: >-
A limit on the number of objects to be returned. Limit can range between A limit on the number of objects to be returned. Limit can range between
1 and 100, and the default is 20. 1 and 100, and the default is 20.
required: true required: false
schema: schema:
type: integer type: integer
- name: order - name: order
@ -2331,7 +2331,7 @@ paths:
description: >- description: >-
Sort order by the `created_at` timestamp of the objects. `asc` for ascending Sort order by the `created_at` timestamp of the objects. `asc` for ascending
order and `desc` for descending order. order and `desc` for descending order.
required: true required: false
schema: schema:
type: string type: string
- name: after - name: after
@ -9189,8 +9189,6 @@ components:
additionalProperties: false additionalProperties: false
required: required:
- query - query
- max_num_results
- rewrite_query
title: OpenaiSearchVectorStoreRequest title: OpenaiSearchVectorStoreRequest
VectorStoreSearchResponse: VectorStoreSearchResponse:
type: object type: object

View file

@ -193,8 +193,8 @@ class VectorIO(Protocol):
@webmethod(route="/openai/v1/vector_stores", method="GET") @webmethod(route="/openai/v1/vector_stores", method="GET")
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
@ -256,9 +256,9 @@ class VectorIO(Protocol):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
"""Search for chunks in a vector store. """Search for chunks in a vector store.

View file

@ -151,8 +151,8 @@ class VectorIORouter(VectorIO):
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
@ -239,9 +239,9 @@ class VectorIORouter(VectorIO):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
logger.debug(f"VectorIORouter.openai_search_vector_store: {vector_store_id}") logger.debug(f"VectorIORouter.openai_search_vector_store: {vector_store_id}")
# Route based on vector store ID # Route based on vector store ID

View file

@ -6,7 +6,7 @@
import asyncio import asyncio
import json import json
import logging import logging
from typing import Any, Literal from typing import Any
from urllib.parse import urlparse from urllib.parse import urlparse
import chromadb import chromadb
@ -203,8 +203,8 @@ class ChromaVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
@ -236,9 +236,8 @@ class ChromaVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
search_mode: Literal["keyword", "vector", "hybrid"] = "vector",
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
raise NotImplementedError("OpenAI Vector Stores API is not supported in Chroma") raise NotImplementedError("OpenAI Vector Stores API is not supported in Chroma")

View file

@ -9,7 +9,7 @@ import hashlib
import logging import logging
import os import os
import uuid import uuid
from typing import Any, Literal from typing import Any
from numpy.typing import NDArray from numpy.typing import NDArray
from pymilvus import MilvusClient from pymilvus import MilvusClient
@ -201,8 +201,8 @@ class MilvusVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
@ -234,10 +234,9 @@ class MilvusVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
search_mode: Literal["keyword", "vector", "hybrid"] = "vector",
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
raise NotImplementedError("OpenAI Vector Stores API is not supported in Qdrant") raise NotImplementedError("OpenAI Vector Stores API is not supported in Qdrant")

View file

@ -6,7 +6,7 @@
import logging import logging
import uuid import uuid
from typing import Any, Literal from typing import Any
from numpy.typing import NDArray from numpy.typing import NDArray
from qdrant_client import AsyncQdrantClient, models from qdrant_client import AsyncQdrantClient, models
@ -203,8 +203,8 @@ class QdrantVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
@ -236,9 +236,8 @@ class QdrantVectorIOAdapter(VectorIO, VectorDBsProtocolPrivate):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
search_mode: Literal["keyword", "vector", "hybrid"] = "vector",
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
raise NotImplementedError("OpenAI Vector Stores API is not supported in Qdrant") raise NotImplementedError("OpenAI Vector Stores API is not supported in Qdrant")

View file

@ -8,7 +8,7 @@ import logging
import time import time
import uuid import uuid
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from typing import Any, Literal from typing import Any
from llama_stack.apis.vector_dbs import VectorDB from llama_stack.apis.vector_dbs import VectorDB
from llama_stack.apis.vector_io import ( from llama_stack.apis.vector_io import (
@ -161,12 +161,15 @@ class OpenAIVectorStoreMixin(ABC):
async def openai_list_vector_stores( async def openai_list_vector_stores(
self, self,
limit: int = 20, limit: int | None = 20,
order: str = "desc", order: str | None = "desc",
after: str | None = None, after: str | None = None,
before: str | None = None, before: str | None = None,
) -> VectorStoreListResponse: ) -> VectorStoreListResponse:
"""Returns a list of vector stores.""" """Returns a list of vector stores."""
limit = limit or 20
order = order or "desc"
# Get all vector stores # Get all vector stores
all_stores = list(self.openai_vector_stores.values()) all_stores = list(self.openai_vector_stores.values())
@ -274,12 +277,16 @@ class OpenAIVectorStoreMixin(ABC):
vector_store_id: str, vector_store_id: str,
query: str | list[str], query: str | list[str],
filters: dict[str, Any] | None = None, filters: dict[str, Any] | None = None,
max_num_results: int = 10, max_num_results: int | None = 10,
ranking_options: dict[str, Any] | None = None, ranking_options: dict[str, Any] | None = None,
rewrite_query: bool = False, rewrite_query: bool | None = False,
search_mode: Literal["keyword", "vector", "hybrid"] = "vector", # search_mode: Literal["keyword", "vector", "hybrid"] = "vector",
) -> VectorStoreSearchResponse: ) -> VectorStoreSearchResponse:
"""Search for chunks in a vector store.""" """Search for chunks in a vector store."""
# TODO: Add support in the API for this
search_mode = "vector"
max_num_results = max_num_results or 10
if vector_store_id not in self.openai_vector_stores: if vector_store_id not in self.openai_vector_stores:
raise ValueError(f"Vector store {vector_store_id} not found") raise ValueError(f"Vector store {vector_store_id} not found")