-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add missing llm_type based on model in hyperparameters #1675
Conversation
WalkthroughThe changes introduce a new static method Changes
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
kairon/shared/data/data_validation.py (2)
12-25
: LGTM! Consider adding docstring documentation.The implementation of the caching mechanism and mapping creation is correct. The method efficiently loads the YAML file only when needed and creates a proper mapping between models and LLM types.
Consider adding a docstring to document the method's purpose, return type, and caching behavior:
@staticmethod def get_model_llm_type_map() -> dict[str, str]: + """ + Returns a mapping of model names to their corresponding LLM types. + The mapping is cached in class variable model_llm_type_map for subsequent calls. + + Returns: + dict[str, str]: A dictionary mapping model names to LLM types + """ if DataValidation.model_llm_type_map:
93-100
: LGTM! Consider improving error message clarity.The validation logic for hyperparameters and automatic llm_type detection is well implemented.
Consider making the error message more descriptive:
- data_error.append("model is required in hyperparameters!") + data_error.append("The 'model' field is required in hyperparameters when llm_type is not provided!")
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
kairon/shared/data/data_validation.py
(2 hunks)tests/unit_test/data_processor/action_serializer_test.py
(3 hunks)
🔇 Additional comments (2)
tests/unit_test/data_processor/action_serializer_test.py (2)
722-799
: LGTM! Test coverage is comprehensive.
The test implementations thoroughly cover:
- Validation of missing model field
- Model to LLM type mapping functionality
- Caching behavior with proper mocking
- Automatic llm_type detection
Line range hint 18-18
: Verify the existence and location of the LLM metadata file.
Ensure that the LLM metadata file exists at the expected location.
✅ Verification successful
Let me search for YAML files in the repository to locate the LLM metadata file.
Let me check the contents of these YAML files to verify the LLM metadata configuration.
LLM metadata file exists and is properly configured
The LLM metadata file exists at metadata/llm_metadata.yml
and contains comprehensive configuration for OpenAI, Anthropic, Gemini, and Perplexity models with all required parameters and their constraints. The file in the test directory (tests/testing_data/llm_metadata.yml
) also exists as a test fixture.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify the existence of the LLM metadata file
# Check if the file exists and show its contents
if [ -f "$SYSTEM_FILE" ]; then
echo "System file exists at: $SYSTEM_FILE"
cat "$SYSTEM_FILE" | grep -A 10 "openai:\|anthropic:\|gemini:\|perplexity:"
else
echo "System file not found at: $SYSTEM_FILE"
fi
Length of output: 78
Script:
#!/bin/bash
# Search for YAML files that might contain LLM configurations
fd -e yml -e yaml | xargs grep -l "openai:\|anthropic:\|gemini:\|perplexity:" 2>/dev/null || echo "No matching YAML files found"
# Also show the content of any config directories that might contain the file
fd -t d "config"
Length of output: 262
Script:
#!/bin/bash
# Show contents of the found YAML files
echo "=== metadata/llm_metadata.yml ==="
cat metadata/llm_metadata.yml
echo -e "\n=== tests/testing_data/llm_metadata.yml ==="
cat tests/testing_data/llm_metadata.yml
Length of output: 12954
Summary by CodeRabbit
New Features
Bug Fixes
Tests