llama-stack icon indicating copy to clipboard operation
llama-stack copied to clipboard

feat: add input validation for search mode of rag query config

Open Bobbins228 opened this issue 5 months ago • 0 comments

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

Bobbins228 avatar May 27 '25 09:05 Bobbins228