holmesgpt 0.14.4a0__tar.gz → 0.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of holmesgpt might be problematic. Click here for more details.
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/PKG-INFO +3 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/__init__.py +1 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/clients/robusta_client.py +12 -10
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/common/env_vars.py +14 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/config.py +51 -4
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/conversations.py +3 -2
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/llm.py +198 -72
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/openai_formatting.py +13 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tool_calling_llm.py +129 -95
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools.py +21 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools_utils/token_counting.py +2 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools_utils/tool_context_window_limiter.py +13 -4
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/interactive.py +17 -7
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_general_instructions.jinja2 +1 -2
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/__init__.py +4 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +0 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py +0 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/grafana_api.py +1 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/investigator/core_investigation.py +14 -13
- holmesgpt-0.15.0/holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2 +1616 -0
- holmesgpt-0.15.0/holmes/plugins/toolsets/opensearch/opensearch_query_assist.py +78 -0
- holmesgpt-0.15.0/holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2 +223 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/prometheus/prometheus.py +1 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/service_discovery.py +1 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/servicenow/servicenow.py +0 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/stream.py +30 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/pyproject.toml +3 -1
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/LICENSE.txt +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/README.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/.git_archival.json +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/common/openshift.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/config.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/feedback.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/investigation.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/investigation_structured_output.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/issue.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/models.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/performance_timing.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/prompt.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/resource_instruction.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/runbooks.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/safeguards.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/supabase_dal.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/todo_tasks_formatter.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools_utils/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools_utils/tool_executor.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tools_utils/toolset_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/toolset_manager.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/tracing.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/transformers/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/transformers/base.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/transformers/llm_summarize.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/transformers/registry.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/transformers/transformer.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/core/truncation/dal_truncation_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/main.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/destinations/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/destinations/slack/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/destinations/slack/plugin.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/interfaces.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_ai_safety.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_current_date_time.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_default_log_prompt.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_fetch_logs.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_global_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_permission_errors.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_runbook_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/_toolsets_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_ask.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_ask_conversation.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_investigation.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_post_processing.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/generic_ticket.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/investigation_output_format.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/investigation_procedure.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/kubernetes_workload_ask.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/prompts/kubernetes_workload_chat.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/CLAUDE.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/README.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/catalog.json +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/jira.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/kube-prometheus-stack.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/networking/dns_troubleshooting_instructions.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/runbooks/upgrade/upgrade_troubleshooting_instructions.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/github/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/jira/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/opsgenie/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/pagerduty/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/prometheus/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/prometheus/models.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/sources/prometheus/plugin.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/aks-node-health.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/aks.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/argocd.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/atlas_mongodb/instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/aws.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/apis/alert_monitoring_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/apis/azure_sql_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/apis/connection_failure_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/apis/connection_monitoring_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/apis/storage_analysis_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/azure_base_toolset.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/azure_sql_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/install.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/azure_sql/utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/argocd/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/argocd/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/aws/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/aws/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/azure/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/azure/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/bash_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/bash_toolset.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/common/bash.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/common/bash_command.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/common/config.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/common/stringify.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/common/validators.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/docker/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/docker/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/helm/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/helm/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/constants.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_describe.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_events.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_get.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_logs.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_run.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/kubectl/kubectl_top.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/parse_command.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/base64_util.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/cut.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/grep/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/head.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/jq.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/sed.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/sort.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/tail.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/tr.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/uniq.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/bash/utilities/wc.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/cilium.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/confluence.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/consts.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/coralogix/api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/coralogix/utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_general_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_metrics_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_rds_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/datadog_traces_formatter.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/instructions_datadog_traces.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/toolset_datadog_general.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/docker.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/git.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/base_grafana_toolset.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/common.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/grafana_tempo_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/loki_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/toolset_grafana.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/toolset_grafana_loki.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/grafana/trace_parser.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/helm.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/internet/internet.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/internet/notion.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/investigator/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/investigator/investigator_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/investigator/model.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/kafka.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/kubernetes.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/kubernetes_logs.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/kubernetes_logs.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/logging_utils/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/logging_utils/logging_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/logging_utils/types.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/mcp/toolset_mcp.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/newrelic/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/newrelic/new_relic_api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/newrelic/newrelic.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/newrelic/newrelic.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/opensearch.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/opensearch_logs.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/opensearch_traces.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/opensearch_traces_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/opensearch/opensearch_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/prometheus/utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/rabbitmq/api.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/rabbitmq/rabbitmq_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/robusta/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/robusta/robusta.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/robusta/robusta_instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/runbook/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/runbook/runbook_fetcher.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/servicenow/install.md +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/servicenow/instructions.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/slab.yaml +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/toolsets/utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/plugins/utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/__init__.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/cache.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/cert_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/colors.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/config_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/console/consts.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/console/logging.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/console/result.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/default_toolset_installation_guide.jinja2 +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/definitions.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/env.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/file_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/global_instructions.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/holmes_status.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/holmes_sync_toolsets.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/keygen_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/llms.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/markdown_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/pydantic_utils.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/sentry_helper.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/utils/tags.py +0 -0
- {holmesgpt-0.14.4a0 → holmesgpt-0.15.0}/holmes/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: holmesgpt
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Natan Yellin
|
|
6
6
|
Author-email: natan@robusta.dev
|
|
@@ -8,6 +8,7 @@ Requires-Python: >=3.10,<4.0
|
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Requires-Dist: ag-ui-protocol (>=0.1.9,<0.2.0)
|
|
11
12
|
Requires-Dist: azure-core (>=1.34.0,<2.0.0)
|
|
12
13
|
Requires-Dist: azure-identity (>=1.23.0,<2.0.0)
|
|
13
14
|
Requires-Dist: azure-mgmt-alertsmanagement (>=1.0.0,<2.0.0)
|
|
@@ -23,6 +24,7 @@ Requires-Dist: certifi (>=2024.7.4,<2025.0.0)
|
|
|
23
24
|
Requires-Dist: colorlog (>=6.8.2,<7.0.0)
|
|
24
25
|
Requires-Dist: confluent-kafka (>=2.6.1,<3.0.0)
|
|
25
26
|
Requires-Dist: fastapi (>=0.116,<0.117)
|
|
27
|
+
Requires-Dist: google-cloud-aiplatform (>=1.38)
|
|
26
28
|
Requires-Dist: httpx[socks] (<0.28)
|
|
27
29
|
Requires-Dist: humanize (>=4.9.0,<5.0.0)
|
|
28
30
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import Optional, Dict, Any
|
|
3
3
|
import requests # type: ignore
|
|
4
4
|
from functools import cache
|
|
5
|
-
from pydantic import BaseModel, ConfigDict
|
|
5
|
+
from pydantic import BaseModel, ConfigDict
|
|
6
6
|
from holmes.common.env_vars import ROBUSTA_API_ENDPOINT
|
|
7
7
|
|
|
8
8
|
HOLMES_GET_INFO_URL = f"{ROBUSTA_API_ENDPOINT}/api/holmes/get_info"
|
|
@@ -14,13 +14,15 @@ class HolmesInfo(BaseModel):
|
|
|
14
14
|
latest_version: Optional[str] = None
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class RobustaModel(BaseModel):
|
|
18
18
|
model_config = ConfigDict(extra="ignore")
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
model: str
|
|
20
|
+
holmes_args: Optional[dict[str, Any]] = None
|
|
21
|
+
is_default: bool = False
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class RobustaModelsResponse(BaseModel):
|
|
25
|
+
models: Dict[str, RobustaModel]
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
@cache
|
|
@@ -30,13 +32,13 @@ def fetch_robusta_models(
|
|
|
30
32
|
try:
|
|
31
33
|
session_request = {"session_token": token, "account_id": account_id}
|
|
32
34
|
resp = requests.post(
|
|
33
|
-
f"{ROBUSTA_API_ENDPOINT}/api/llm/models",
|
|
35
|
+
f"{ROBUSTA_API_ENDPOINT}/api/llm/models/v2",
|
|
34
36
|
json=session_request,
|
|
35
37
|
timeout=10,
|
|
36
38
|
)
|
|
37
39
|
resp.raise_for_status()
|
|
38
40
|
response_json = resp.json()
|
|
39
|
-
return RobustaModelsResponse(**response_json)
|
|
41
|
+
return RobustaModelsResponse(**{"models": response_json})
|
|
40
42
|
except Exception:
|
|
41
43
|
logging.exception("Failed to fetch robusta models")
|
|
42
44
|
return None
|
|
@@ -2,6 +2,16 @@ import os
|
|
|
2
2
|
import json
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
|
+
# Recommended models for different providers
|
|
6
|
+
RECOMMENDED_OPENAI_MODEL = "gpt-4.1"
|
|
7
|
+
RECOMMENDED_ANTHROPIC_MODEL = "anthropic/claude-opus-4-1-20250805"
|
|
8
|
+
|
|
9
|
+
# Default model for HolmesGPT
|
|
10
|
+
DEFAULT_MODEL = RECOMMENDED_OPENAI_MODEL
|
|
11
|
+
FALLBACK_CONTEXT_WINDOW_SIZE = (
|
|
12
|
+
200000 # Fallback context window size if it can't be determined from the model
|
|
13
|
+
)
|
|
14
|
+
|
|
5
15
|
|
|
6
16
|
def load_bool(env_var, default: Optional[bool]) -> Optional[bool]:
|
|
7
17
|
env_value = os.environ.get(env_var)
|
|
@@ -38,6 +48,7 @@ DEVELOPMENT_MODE = load_bool("DEVELOPMENT_MODE", False)
|
|
|
38
48
|
SENTRY_DSN = os.environ.get("SENTRY_DSN", "")
|
|
39
49
|
SENTRY_TRACES_SAMPLE_RATE = float(os.environ.get("SENTRY_TRACES_SAMPLE_RATE", "0.0"))
|
|
40
50
|
|
|
51
|
+
EXTRA_HEADERS = os.environ.get("EXTRA_HEADERS", "")
|
|
41
52
|
THINKING = os.environ.get("THINKING", "")
|
|
42
53
|
REASONING_EFFORT = os.environ.get("REASONING_EFFORT", "").strip().lower()
|
|
43
54
|
TEMPERATURE = float(os.environ.get("TEMPERATURE", "0.00000001"))
|
|
@@ -82,6 +93,9 @@ TOOL_MAX_ALLOCATED_CONTEXT_WINDOW_PCT = float(
|
|
|
82
93
|
os.environ.get("TOOL_MAX_ALLOCATED_CONTEXT_WINDOW_PCT", 15)
|
|
83
94
|
)
|
|
84
95
|
|
|
96
|
+
# Absolute max tokens to allocate for a single tool response
|
|
97
|
+
TOOL_MAX_ALLOCATED_CONTEXT_WINDOW_TOKENS = 25000
|
|
98
|
+
|
|
85
99
|
MAX_EVIDENCE_DATA_CHARACTERS_BEFORE_TRUNCATION = int(
|
|
86
100
|
os.environ.get("MAX_EVIDENCE_DATA_CHARACTERS_BEFORE_TRUNCATION", 3000)
|
|
87
101
|
)
|
|
@@ -45,6 +45,9 @@ class SupportedTicketSources(str, Enum):
|
|
|
45
45
|
|
|
46
46
|
class Config(RobustaBaseConfig):
|
|
47
47
|
model: Optional[str] = None
|
|
48
|
+
api_key: Optional[SecretStr] = (
|
|
49
|
+
None # if None, read from OPENAI_API_KEY or AZURE_OPENAI_ENDPOINT env var
|
|
50
|
+
)
|
|
48
51
|
api_base: Optional[str] = None
|
|
49
52
|
api_version: Optional[str] = None
|
|
50
53
|
fast_model: Optional[str] = None
|
|
@@ -95,6 +98,7 @@ class Config(RobustaBaseConfig):
|
|
|
95
98
|
mcp_servers: Optional[dict[str, dict[str, Any]]] = None
|
|
96
99
|
|
|
97
100
|
_server_tool_executor: Optional[ToolExecutor] = None
|
|
101
|
+
_agui_tool_executor: Optional[ToolExecutor] = None
|
|
98
102
|
|
|
99
103
|
# TODO: Separate those fields to facade class, this shouldn't be part of the config.
|
|
100
104
|
_toolset_manager: Optional[ToolsetManager] = PrivateAttr(None)
|
|
@@ -242,6 +246,23 @@ class Config(RobustaBaseConfig):
|
|
|
242
246
|
)
|
|
243
247
|
return ToolExecutor(cli_toolsets)
|
|
244
248
|
|
|
249
|
+
def create_agui_tool_executor(self, dal: Optional["SupabaseDal"]) -> ToolExecutor:
|
|
250
|
+
"""
|
|
251
|
+
Creates ToolExecutor for the AG-UI server endpoints
|
|
252
|
+
"""
|
|
253
|
+
|
|
254
|
+
if self._agui_tool_executor:
|
|
255
|
+
return self._agui_tool_executor
|
|
256
|
+
|
|
257
|
+
# Use same toolset as CLI for AG-UI front-end.
|
|
258
|
+
agui_toolsets = self.toolset_manager.list_console_toolsets(
|
|
259
|
+
dal=dal, refresh_status=True
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
self._agui_tool_executor = ToolExecutor(agui_toolsets)
|
|
263
|
+
|
|
264
|
+
return self._agui_tool_executor
|
|
265
|
+
|
|
245
266
|
def create_tool_executor(self, dal: Optional["SupabaseDal"]) -> ToolExecutor:
|
|
246
267
|
"""
|
|
247
268
|
Creates ToolExecutor for the server endpoints
|
|
@@ -273,6 +294,19 @@ class Config(RobustaBaseConfig):
|
|
|
273
294
|
tool_executor, self.max_steps, self._get_llm(tracer=tracer)
|
|
274
295
|
)
|
|
275
296
|
|
|
297
|
+
def create_agui_toolcalling_llm(
|
|
298
|
+
self,
|
|
299
|
+
dal: Optional["SupabaseDal"] = None,
|
|
300
|
+
model: Optional[str] = None,
|
|
301
|
+
tracer=None,
|
|
302
|
+
) -> "ToolCallingLLM":
|
|
303
|
+
tool_executor = self.create_agui_tool_executor(dal)
|
|
304
|
+
from holmes.core.tool_calling_llm import ToolCallingLLM
|
|
305
|
+
|
|
306
|
+
return ToolCallingLLM(
|
|
307
|
+
tool_executor, self.max_steps, self._get_llm(model, tracer)
|
|
308
|
+
)
|
|
309
|
+
|
|
276
310
|
def create_toolcalling_llm(
|
|
277
311
|
self,
|
|
278
312
|
dal: Optional["SupabaseDal"] = None,
|
|
@@ -441,7 +475,8 @@ class Config(RobustaBaseConfig):
|
|
|
441
475
|
# TODO: move this to the llm model registry
|
|
442
476
|
def _get_llm(self, model_key: Optional[str] = None, tracer=None) -> "DefaultLLM":
|
|
443
477
|
sentry_sdk.set_tag("requested_model", model_key)
|
|
444
|
-
|
|
478
|
+
model_entry = self.llm_model_registry.get_model_params(model_key)
|
|
479
|
+
model_params = model_entry.model_dump(exclude_none=True)
|
|
445
480
|
api_base = self.api_base
|
|
446
481
|
api_version = self.api_version
|
|
447
482
|
|
|
@@ -453,6 +488,8 @@ class Config(RobustaBaseConfig):
|
|
|
453
488
|
api_key = f"{account_id} {token}"
|
|
454
489
|
else:
|
|
455
490
|
api_key = model_params.pop("api_key", None)
|
|
491
|
+
if api_key is not None:
|
|
492
|
+
api_key = api_key.get_secret_value()
|
|
456
493
|
|
|
457
494
|
model = model_params.pop("model")
|
|
458
495
|
# It's ok if the model does not have api base and api version, which are defaults to None.
|
|
@@ -463,10 +500,20 @@ class Config(RobustaBaseConfig):
|
|
|
463
500
|
api_version = model_params.pop("api_version", api_version)
|
|
464
501
|
model_name = model_params.pop("name", None) or model_key or model
|
|
465
502
|
sentry_sdk.set_tag("model_name", model_name)
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
503
|
+
llm = DefaultLLM(
|
|
504
|
+
model=model,
|
|
505
|
+
api_key=api_key,
|
|
506
|
+
api_base=api_base,
|
|
507
|
+
api_version=api_version,
|
|
508
|
+
args=model_params,
|
|
509
|
+
tracer=tracer,
|
|
510
|
+
name=model_name,
|
|
511
|
+
is_robusta_model=is_robusta_model,
|
|
469
512
|
) # type: ignore
|
|
513
|
+
logging.info(
|
|
514
|
+
f"Using model: {model_name} ({llm.get_context_window_size():,} total tokens, {llm.get_maximum_output_token():,} output tokens)"
|
|
515
|
+
)
|
|
516
|
+
return llm
|
|
470
517
|
|
|
471
518
|
def get_models_list(self) -> List[str]:
|
|
472
519
|
if self.llm_model_registry and self.llm_model_registry.models:
|
|
@@ -26,7 +26,8 @@ def calculate_tool_size(
|
|
|
26
26
|
return DEFAULT_TOOL_SIZE
|
|
27
27
|
|
|
28
28
|
context_window = ai.llm.get_context_window_size()
|
|
29
|
-
|
|
29
|
+
tokens = ai.llm.count_tokens(messages_without_tools)
|
|
30
|
+
message_size_without_tools = tokens.total_tokens
|
|
30
31
|
maximum_output_token = ai.llm.get_maximum_output_token()
|
|
31
32
|
|
|
32
33
|
tool_size = min(
|
|
@@ -372,13 +373,13 @@ def build_chat_messages(
|
|
|
372
373
|
)
|
|
373
374
|
|
|
374
375
|
ask = add_global_instructions_to_user_prompt(ask, global_instructions)
|
|
375
|
-
|
|
376
376
|
conversation_history.append( # type: ignore
|
|
377
377
|
{
|
|
378
378
|
"role": "user",
|
|
379
379
|
"content": ask,
|
|
380
380
|
},
|
|
381
381
|
)
|
|
382
|
+
|
|
382
383
|
number_of_tools = len(
|
|
383
384
|
[message for message in conversation_history if message.get("role") == "tool"] # type: ignore
|
|
384
385
|
)
|