Replies: 1 comment
-
|
The error points to a LiteLLM callback API mismatch, not to the compression logic itself. In the current Headroom callback code, I would isolate it this way inside the exact image you deployed: /app/.venv/bin/python - <<'PY'
from headroom.integrations.litellm_callback import HeadroomCallback
cb = HeadroomCallback()
for name in [
'async_pre_call_hook',
'async_post_call_success_hook',
'async_success_handler',
'async_failure_handler',
]:
print(name, hasattr(cb, name))
PYIf that prints
I would also avoid If that introspection matches, this is probably worth marking answered as a version/API mismatch rather than a compression config issue. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The problem I'm having
I have a LiteLLM proxy running in docker, and I'm trying to add the Headroom integration. It's not working and I'm trying to track down why.
I created an image using this Dockerfile, and pushed it to our local registry. Our apps guy uses that image to spin up an instance on our Swarm server, and we connect to that instance via Open WebUI and other tools. You can see the Dockerfile, config, and compose below.
The problem is that the HeadroomCallback isn't doing anything, other than throwing some errors on the Open WebUI interface calls that say:
The input tokens aren't being compressed, and the
callback_duration_msis always 0.However, I can see via the LiteLLM API that the callback is available. You can see that in the JSON below.
I feel like I'm missing something. Any help or guidance would be greatly appreciated.
The setup I'm using
Dockerfile
config.yaml
docker-compose.yaml
LiteLLM API -
/active/callbacks/endpoint{ "alerting": "None", "litellm.callbacks": [ "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "headroom.integrations.litellm_callback.HeadroomCallback" ], "litellm.input_callback": [ "cache", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "litellm.failure_callback": [ "<bound method Router.deployment_callback_on_failure of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "litellm.success_callback": [ "cache", "<bound method Router.sync_deployment_callback_on_success of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "litellm._async_success_callback": [ "cache", "<bound method Router.deployment_callback_on_success of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960ea35450>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "litellm._async_failure_callback": [ "<bound method Router.async_deployment_callback_on_failure of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "litellm._async_input_callback": [], "all_litellm_callbacks": [ "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "headroom.integrations.litellm_callback.HeadroomCallback", "cache", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "<bound method Router.deployment_callback_on_failure of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "cache", "<bound method Router.sync_deployment_callback_on_success of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "cache", "<bound method Router.deployment_callback_on_success of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960ea35450>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>", "<bound method Router.async_deployment_callback_on_failure of <litellm.router.Router object at 0x7d960ea2e510>>", "<litellm.proxy.hooks.litellm_skills.main.SkillsInjectionHook object at 0x7d961922fcb0>", "<litellm.proxy.hooks.model_max_budget_limiter._PROXY_VirtualKeyModelMaxBudgetLimiter object at 0x7d960e2e4d70>", "<class 'headroom.integrations.litellm_callback.HeadroomCallback'>", "<litellm.proxy.hooks.proxy_track_cost_callback._ProxyDBLogger object at 0x7d960e8b96a0>", "<litellm.proxy.hooks.max_budget_limiter._PROXY_MaxBudgetLimiter object at 0x7d960ea374d0>", "<litellm.proxy.hooks.parallel_request_limiter_v3._PROXY_MaxParallelRequestsHandler_v3 object at 0x7d960e8b9940>", "<litellm.proxy.hooks.cache_control_check._PROXY_CacheControlCheck object at 0x7d960e8a4910>", "<litellm.proxy.hooks.responses_id_security.ResponsesIDSecurity object at 0x7d960e8b9be0>", "<litellm.proxy.hooks.max_iterations_limiter._PROXY_MaxIterationsHandler object at 0x7d960e8b9d30>", "<litellm.proxy.hooks.max_budget_per_session_limiter._PROXY_MaxBudgetPerSessionHandler object at 0x7d960e8b9e80>", "<litellm_enterprise.proxy.hooks.managed_files._PROXY_LiteLLMManagedFiles object at 0x7d960e8b9fd0>", "<litellm_enterprise.proxy.hooks.managed_vector_stores._PROXY_LiteLLMManagedVectorStores object at 0x7d960e8ba120>", "<litellm._service_logger.ServiceLogging object at 0x7d9608dfdcd0>" ], "num_callbacks": 86, "num_alerting": 0, "litellm.request_timeout": 6000 }Beta Was this translation helpful? Give feedback.
All reactions