-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Update litellm version to 1.81.1 #2175
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
base: main
Are you sure you want to change the base?
Conversation
Bump version, newer models - YAY!
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||
PR Code Suggestions ✨No code suggestions found for the PR. |
|
@naorpeled Good day, requesting review please boss 👍 |
naorpeled
left a comment
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.
LGTM 🔥
|
I'll do some manual testing and get this merged asap 🙏 |
|
/config |
🛠️ Wiki configuration file settings:[pr_code_suggestions]
demand_code_suggestions_self_review = true
suggestions_depth='exhaustive'
extra_instructions="""
- don't give suggestions about link being broken
"""
[pr_description] # /describe #
enable_pr_diagram=true
[pr_reviewer]
require_todo_scan=true
[github_app]
pr_commands = [
"/describe --pr_description.final_update_message=false",
"/compliance",
"/improve"
]
push_commands = [
"/describe",
"/compliance"
]
🛠️ Local configuration file settings: [pr_reviewer]
enable_review_labels_effort = true
enable_auto_approval = true
[github_app]
pr_commands = [
"/describe --pr_description.publish_description_as_comment=true",
"/improve",
"/agentic_review"
]
handle_push_trigger = true
push_commands = [
"/improve",
"/agentic_review"
]
[review_agent]
enabled = true
publish_output = true
🛠️ Global configuration file settings:🛠️ PR-Agent final configurations:==================== CONFIG ====================
config.model_reasoning = 'vertex_ai/gemini-2.5-pro'
config.model = 'gpt-5.2-2025-12-11'
config.model_turbo = 'anthropic/claude-haiku-4-5-20251001'
config.fallback_models = ['anthropic/claude-sonnet-4-5-20250929', 'bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0']
config.second_model_for_exhaustive_mode = 'o4-mini'
config.git_provider = 'github'
config.publish_output = True
config.publish_output_no_suggestions = True
config.publish_output_progress = True
config.verbosity_level = 0
config.publish_logs = False
config.debug_mode = False
config.use_wiki_settings_file = True
config.use_repo_settings_file = True
config.use_global_settings_file = True
config.use_global_wiki_settings_file = False
config.disable_auto_feedback = False
config.ai_timeout = 150
config.response_language = 'en-US'
config.clone_repo_instead_of_fetch = True
config.always_clone = False
config.add_repo_metadata = True
config.clone_repo_time_limit = 300
config.publish_inline_comments_fallback_batch_size = 5
config.publish_inline_comments_fallback_sleep_time = 2
config.max_model_tokens = 32000
config.custom_model_max_tokens = -1
config.patch_extension_skip_types = ['.md', '.txt']
config.extra_allowed_extensions = []
config.allow_dynamic_context = True
config.allow_forward_dynamic_context = True
config.max_extra_lines_before_dynamic_context = 12
config.patch_extra_lines_before = 5
config.patch_extra_lines_after = 1
config.ai_handler = 'litellm'
config.cli_mode = False
config.trial_git_org_max_invokes_per_month = 75
config.trial_ratio_close_to_limit = 0.8
config.invite_only_mode = False
config.enable_request_access_msg_on_new_pr = False
config.check_also_invites_field = False
config.calculate_context = True
config.disable_checkboxes = False
config.output_relevant_configurations = False
config.large_patch_policy = 'clip'
config.seed = -1
config.temperature = 0.2
config.allow_dynamic_context_ab_testing = False
config.choose_dynamic_context_ab_testing_ratio = 0.5
config.ignore_pr_title = ['^\\[Auto\\]', '^Auto']
config.ignore_pr_target_branches = []
config.ignore_pr_source_branches = []
config.ignore_pr_labels = []
config.ignore_ticket_labels = []
config.allow_only_specific_folders = []
config.ignore_pr_authors = 'REDACTED'
config.ignore_repositories = []
config.ignore_language_framework = []
config.is_auto_command = False
config.is_new_pr = False
config.enable_ai_metadata = True
config.present_reasoning = True
config.max_tickets = 10
config.max_tickets_chars = 8000
config.prevent_any_approval = False
config.enable_comment_approval = False
config.enable_auto_approval = False
config.auto_approve_for_low_review_effort = -1
config.auto_approve_for_no_suggestions = False
config.ensure_ticket_compliance = False
config.new_diff_format = True
config.new_diff_format_add_external_references = True
config.enable_custom_labels = False
==================== PR_REVIEWER ====================
pr_reviewer.require_score_review = False
pr_reviewer.require_tests_review = True
pr_reviewer.require_estimate_effort_to_review = True
pr_reviewer.require_can_be_split_review = False
pr_reviewer.require_security_review = True
pr_reviewer.require_todo_scan = True
pr_reviewer.require_ticket_analysis_review = True
pr_reviewer.require_ticket_labels = False
pr_reviewer.require_no_ticket_labels = False
pr_reviewer.check_pr_additional_content = False
pr_reviewer.persistent_comment = True
pr_reviewer.extra_instructions = ''
pr_reviewer.final_update_message = True
pr_reviewer.enable_review_labels_security = True
pr_reviewer.enable_review_labels_effort = True
pr_reviewer.enable_help_text = False
pr_reviewer.enable_auto_approval = True
==================== PR_COMPLIANCE ====================
pr_compliance.enabled = True
pr_compliance.enable_rules_platform = False
pr_compliance.enable_security_section = True
pr_compliance.enable_ticket_section = True
pr_compliance.enable_codebase_duplication_section = True
pr_compliance.enable_custom_compliance_section = True
pr_compliance.require_ticket_analysis_review = True
pr_compliance.allow_repo_pr_compliance = True
pr_compliance.enable_global_pr_compliance = True
pr_compliance.max_lines_allowed = 2000
pr_compliance.local_wiki_compliance_str = ''
pr_compliance.global_wiki_pr_compliance = ''
pr_compliance.local_repo_compliance_str = 'pr_compliances:\n - title: "Consistent Naming Conventions"\n compliance_label: false\n objective: "All new variables, functions, and classes must follow the project\'s established naming standards"\n success_criteria: "All identifiers follow the established naming patterns (camelCase, snake_case, etc.)"\n failure_criteria: "Inconsistent or non-standard naming that deviates from project conventions"\n\n - title: "No Dead or Commented-Out Code"\n compliance_label: false\n objective: "Keep the codebase clean by ensuring all submitted code is active and necessary"\n success_criteria: "All code in the PR is active and serves a purpose; no commented-out blocks"\n failure_criteria: "Presence of unused, dead, or commented-out code sections"\n\n - title: "Robust Error Handling"\n compliance_label: false\n objective: "Ensure potential errors and edge cases are anticipated and handled gracefully throughout the code"\n success_criteria: "All error scenarios are properly caught and handled with appropriate responses"\n failure_criteria: "Unhandled exceptions, ignored errors, or missing edge case handling"\n\n - title: "Single Responsibility for Functions"\n compliance_label: false\n objective: "Each function should have a single, well-defined responsibility"\n success_criteria: "Functions perform one cohesive task with a single purpose"\n failure_criteria: "Functions that combine multiple unrelated operations or handle several distinct concerns"\n\n - title: "When relevant, utilize early return"\n compliance_label: false\n objective: "In a code snippet containing multiple logic conditions (such as \'if-else\'), prefer an early return on edge cases than deep nesting"\n success_criteria: "When relevant, utilize early return that reduces nesting"\n failure_criteria: "Unjustified deep nesting that can be simplified by early return"\n'
pr_compliance.global_repo_pr_compliance_str = ''
pr_compliance.global_compliance_str = ''
pr_compliance.enable_generic_custom_compliance_checklist = True
pr_compliance.persist_generic_custom_compliance_checklist = False
pr_compliance.display_no_compliance_only = False
pr_compliance.enable_security_compliance = True
pr_compliance.enable_update_pr_compliance_checkbox = True
pr_compliance.enable_todo_scan = False
pr_compliance.enable_ticket_labels = False
pr_compliance.enable_no_ticket_labels = False
pr_compliance.check_pr_additional_content = False
pr_compliance.enable_compliance_labels_security = True
pr_compliance.enable_user_defined_compliance_labels = True
pr_compliance.enable_estimate_effort_to_review = True
pr_compliance.max_rag_components_to_analyze = 5
pr_compliance.min_component_size = 5
pr_compliance.persistent_comment = True
pr_compliance.enable_help_text = False
pr_compliance.extra_instructions = ''
==================== PR_DESCRIPTION ====================
pr_description.publish_labels = False
pr_description.add_original_user_description = True
pr_description.generate_ai_title = False
pr_description.extra_instructions = ''
pr_description.enable_pr_type = True
pr_description.final_update_message = True
pr_description.enable_help_text = False
pr_description.enable_help_comment = False
pr_description.bring_latest_tag = False
pr_description.enable_pr_diagram = True
pr_description.publish_description_as_comment = False
pr_description.publish_description_as_comment_persistent = True
pr_description.enable_semantic_files_types = True
pr_description.collapsible_file_list = 'adaptive'
pr_description.collapsible_file_list_threshold = 8
pr_description.inline_file_summary = False
pr_description.use_description_markers = False
pr_description.include_generated_by_header = True
pr_description.enable_large_pr_handling = True
pr_description.max_ai_calls = 4
pr_description.auto_create_ticket = False
==================== PR_QUESTIONS ====================
pr_questions.enable_help_text = False
==================== PR_CODE_SUGGESTIONS ====================
pr_code_suggestions.suggestions_depth = 'exhaustive'
pr_code_suggestions.commitable_code_suggestions = False
pr_code_suggestions.decouple_hunks = False
pr_code_suggestions.dual_publishing_score_threshold = -1
pr_code_suggestions.focus_only_on_problems = True
pr_code_suggestions.allow_thumbs_up_down = False
pr_code_suggestions.enable_suggestion_type_reuse = False
pr_code_suggestions.enable_more_suggestions_checkbox = True
pr_code_suggestions.high_level_suggestions_enabled = True
pr_code_suggestions.extra_instructions = "- don't give suggestions about link being broken\n"
pr_code_suggestions.enable_help_text = False
pr_code_suggestions.show_extra_context = False
pr_code_suggestions.persistent_comment = True
pr_code_suggestions.max_history_len = 5
pr_code_suggestions.apply_suggestions_checkbox = True
pr_code_suggestions.enable_chat_in_code_suggestions = True
pr_code_suggestions.apply_limit_scope = True
pr_code_suggestions.suggestions_score_threshold = 0
pr_code_suggestions.new_score_mechanism = True
pr_code_suggestions.new_score_mechanism_th_high = 9
pr_code_suggestions.new_score_mechanism_th_medium = 7
pr_code_suggestions.discard_unappliable_suggestions = False
pr_code_suggestions.num_code_suggestions_per_chunk = 3
pr_code_suggestions.num_best_practice_suggestions = 2
pr_code_suggestions.max_number_of_calls = 3
pr_code_suggestions.final_clip_factor = 0.8
pr_code_suggestions.demand_code_suggestions_self_review = True
pr_code_suggestions.code_suggestions_self_review_text = '**Author self-review**: I have reviewed the PR code suggestions, and addressed the relevant ones.'
pr_code_suggestions.approve_pr_on_self_review = False
pr_code_suggestions.fold_suggestions_on_self_review = True
pr_code_suggestions.publish_post_process_suggestion_impact = True
pr_code_suggestions.wiki_page_accepted_suggestions = True
pr_code_suggestions.enable_local_self_reflect_in_large_prs = False
pr_code_suggestions.simplify_response = True
==================== PR_CUSTOM_PROMPT ====================
pr_custom_prompt.prompt = 'The code suggestions should focus only on the following:\n- ...\n- ...\n...\n'
pr_custom_prompt.suggestions_score_threshold = 0
pr_custom_prompt.num_code_suggestions_per_chunk = 4
pr_custom_prompt.self_reflect_on_custom_suggestions = True
pr_custom_prompt.enable_help_text = False
==================== PR_ADD_DOCS ====================
pr_add_docs.extra_instructions = ''
pr_add_docs.docs_style = 'Sphinx'
pr_add_docs.file = ''
pr_add_docs.class_name = ''
==================== PR_UPDATE_CHANGELOG ====================
pr_update_changelog.push_changelog_changes = False
pr_update_changelog.extra_instructions = ''
pr_update_changelog.add_pr_link = True
pr_update_changelog.skip_ci_on_push = True
==================== PR_ANALYZE ====================
pr_analyze.enable_help_text = False
==================== PR_TEST ====================
pr_test.enable = True
pr_test.extra_instructions = ''
pr_test.testing_framework = ''
pr_test.num_tests = 3
pr_test.avoid_mocks = True
pr_test.file = ''
pr_test.class_name = ''
pr_test.enable_help_text = False
==================== PR_IMPROVE_COMPONENT ====================
pr_improve_component.num_code_suggestions = 4
pr_improve_component.extra_instructions = ''
pr_improve_component.file = ''
pr_improve_component.class_name = ''
==================== PR_IMPLEMENT ====================
pr_implement.allow_agent_implementation = False
==================== PR_HELP ====================
pr_help.force_local_db = False
pr_help.num_retrieved_snippets = 5
==================== PR_NEW_ISSUE ====================
pr_new_issue.label_to_prompt_part = {'general': 'general question', 'feature': 'feature request (may already be addressed in the documentation)', 'bug': 'possible bug report (may be a by design behavior)'}
pr_new_issue.supported_repos = ['qodo-ai/pr-agent']
==================== PR_HELP_DOCS ====================
pr_help_docs.repo_url = ''
pr_help_docs.repo_default_branch = 'main'
pr_help_docs.docs_path = 'docs'
pr_help_docs.exclude_root_readme = False
pr_help_docs.supported_doc_exts = ['.md', '.mdx', '.rst']
pr_help_docs.enable_help_text = False
==================== PR_SIMILAR_ISSUE ====================
pr_similar_issue.skip_comments = False
pr_similar_issue.force_update_dataset = False
pr_similar_issue.max_issues_to_scan = 500
pr_similar_issue.vectordb = 'pinecone'
==================== PR_FIND_SIMILAR_COMPONENT ====================
pr_find_similar_component.class_name = ''
pr_find_similar_component.file = ''
pr_find_similar_component.search_from_org = False
pr_find_similar_component.allow_fallback_less_words = True
pr_find_similar_component.number_of_keywords = 5
pr_find_similar_component.number_of_results = 5
==================== BEST_PRACTICES ====================
best_practices.auto_best_practices_str = '<b>Pattern 1: When catching exceptions in try-except blocks, always capture the exception object using \'as e\' syntax (e.g., \'except TypeError as e:\') to enable proper error logging and debugging. This prevents NameError when trying to reference the exception in the except block.\n</b>\n\nExample code before:\n```\ntry:\n risky_operation()\nexcept ValueError:\n logger.error(f"Error occurred: {e}")\n```\n\nExample code after:\n```\ntry:\n risky_operation()\nexcept ValueError as e:\n logger.error(f"Error occurred: {e}")\n```\n\n\n\n\n___\n\n\n<b>Pattern 2: When accessing nested dictionary or object attributes, use safe access patterns like .get() with defaults or getattr() to prevent AttributeError or KeyError when intermediate values are None or missing. Chain multiple safe accesses when traversing deep structures.\n</b>\n\nExample code before:\n```\nuser_name = data[\'user\'][\'profile\'][\'name\']\napi_key = settings.api.key\n```\n\nExample code after:\n```\nuser_name = data.get(\'user\', {}).get(\'profile\', {}).get(\'name\', \'\')\napi_key = getattr(getattr(settings, \'api\', None), \'key\', None)\n```\n\n\n\n\n___\n\n\n<b>Pattern 3: Avoid repeatedly calling configuration or settings retrieval functions inside loops. Fetch configuration values once before the loop and reuse the stored value to improve performance and reduce unnecessary function calls.\n</b>\n\nExample code before:\n```\nfor item in items:\n if get_settings().feature.enabled:\n process(item)\n```\n\nExample code after:\n```\nfeature_enabled = get_settings().feature.enabled\nfor item in items:\n if feature_enabled:\n process(item)\n```\n\n\n\n\n___\n\n\n<b>Pattern 4: When handling file I/O operations or decoding operations (like UTF-8 decoding), wrap them in try-except blocks to gracefully handle encoding errors, missing files, or corrupted data. Use error handling strategies like \'errors="replace"\' for decoding when appropriate.\n</b>\n\nExample code before:\n```\ncontent = file_bytes.decode(\'utf-8\')\n```\n\nExample code after:\n```\ntry:\n content = file_bytes.decode(\'utf-8\')\nexcept UnicodeDecodeError:\n content = file_bytes.decode(\'utf-8\', errors=\'replace\')\n```\n\n\n\n\n___\n\n\n<b>Pattern 5: When validating configuration values that should be from a restricted set of options, explicitly check the value against allowed options and raise a clear error for invalid values. Don\'t silently default to fallback values without validation, as this can mask configuration errors.\n</b>\n\nExample code before:\n```\nauth_type = config.get(\'auth_type\', \'default\')\nif auth_type:\n use_auth(auth_type)\n```\n\nExample code after:\n```\nauth_type = config.get(\'auth_type\', \'default\')\nif auth_type not in [\'oauth\', \'token\', \'basic\']:\n raise ValueError(f"Invalid auth_type: \'{auth_type}\'. Must be one of: oauth, token, basic")\nuse_auth(auth_type)\n```\n\n\n\n\n___\n'
best_practices.wiki_best_practices_str = ''
best_practices.global_wiki_best_practices = ''
best_practices.local_repo_best_practices_str = ''
best_practices.global_repo_best_practices_str = ''
best_practices.global_best_practices_str = ''
best_practices.organization_name = ''
best_practices.max_lines_allowed = 2000
best_practices.enable_global_best_practices = True
best_practices.allow_repo_best_practices = True
best_practices.enabled = True
==================== AUTO_BEST_PRACTICES ====================
auto_best_practices.enable_auto_best_practices = True
auto_best_practices.utilize_auto_best_practices = True
auto_best_practices.extra_instructions = ''
auto_best_practices.min_suggestions_to_auto_best_practices = 10
auto_best_practices.number_of_days_to_update = 30
auto_best_practices.max_patterns = 5
auto_best_practices.minimal_date_to_update = '2025-01-26'
auto_best_practices.generate_new_best_practices = False
==================== JIRA ====================
jira.jira_client_id = 'REDACTED'
jira.jira_app_secret = 'REDACTED'
==================== LINEAR ====================
linear.linear_client_id = 'REDACTED'
==================== PR_TO_TICKET ====================
pr_to_ticket.default_base_url = ''
pr_to_ticket.default_project_key = 'REDACTED'
pr_to_ticket.fallback_to_git_provider_issues = True
pr_to_ticket.direct_update_compliance = False
==================== github_app ====================
github_app.bot_user = 'github-actions[bot]'
github_app.override_deployment_type = True
github_app.handle_pr_actions = ['opened', 'reopened', 'ready_for_review']
github_app.pr_commands = ['/describe --pr_description.final_update_message=false', '/compliance', '/improve']
github_app.feedback_on_draft_pr = False
github_app.handle_push_trigger = True
github_app.push_commands = ['/describe', '/compliance']
github_app.ignore_pr_title = []
github_app.ignore_bot_pr = True |
User description
Bump version, newer models - YAY!
PR Type
Enhancement
Description
Update
litellmdependency from 1.77.7 to 1.81.1Enables access to newer AI models and features
Diagram Walkthrough
File Walkthrough
requirements.txt
Upgrade litellm dependency versionrequirements.txt
litellmpackage version from 1.77.7 to 1.81.1