llama-stack
llama-stack copied to clipboard
feat: add input validation for search mode of rag query config
What does this PR do?
Adds input validation for mode in RagQueryConfig
This will prevent users from inputting search modes other than vector and keyword for the time being with hybrid to follow when that functionality is implemented.
Test Plan
[Describe the tests you ran to verify your changes with result summaries. Provide clear instructions so the plan can be easily re-executed.]
# Check out this PR and enter the LS directory
uv sync --extra dev
Run the quickstart example Alter the Agent to include a query_config
agent = Agent(
client,
model=model_id,
instructions="You are a helpful assistant",
tools=[
{
"name": "builtin::rag/knowledge_search",
"args": {
"vector_db_ids": [vector_db_id],
"query_config": {
"mode": "i-am-not-vector", # Test for non valid search mode
"max_chunks": 6
}
},
}
],
)
Ensure you get the following error:
400: {'errors': [{'loc': ['mode'], 'msg': "Value error, mode must be either 'vector' or 'keyword' if supported by the vector_io provider", 'type': 'value_error'}]}
Running unit tests
uv sync --extra dev
uv run pytest tests/unit/rag/test_rag_query.py -v