forked from phoenix/litellm-mirror
LiteLLM Minor Fixes and Improvements (09/10/2024) (#5618)
* fix(cost_calculator.py): move to debug for noisy warning message on cost calculation error Fixes https://github.com/BerriAI/litellm/issues/5610 * fix(databricks/cost_calculator.py): Handles model name issues for databricks models * fix(main.py): fix stream chunk builder for multiple tool calls Fixes https://github.com/BerriAI/litellm/issues/5591 * fix: correctly set user_alias when passed in Fixes https://github.com/BerriAI/litellm/issues/5612 * fix(types/utils.py): allow passing role for message object https://github.com/BerriAI/litellm/issues/5621 * fix(litellm_logging.py): Fix langfuse logging across multiple projects Fixes issue where langfuse logger was re-using the old logging object * feat(proxy/_types.py): support adding key-based tags for tag-based routing Enable tag based routing at key-level * fix(proxy/_types.py): fix inheritance * test(test_key_generate_prisma.py): fix test * test: fix test * fix(litellm_logging.py): return used callback object
This commit is contained in:
parent
a451cfc2d6
commit
0295a22561
15 changed files with 673 additions and 96 deletions
|
@ -924,6 +924,7 @@ class Logging:
|
|||
else:
|
||||
print_verbose("reaches langfuse for streaming logging!")
|
||||
result = kwargs["complete_streaming_response"]
|
||||
temp_langfuse_logger = langFuseLogger
|
||||
if langFuseLogger is None or (
|
||||
(
|
||||
self.langfuse_public_key is not None
|
||||
|
@ -940,12 +941,12 @@ class Logging:
|
|||
and self.langfuse_host != langFuseLogger.langfuse_host
|
||||
)
|
||||
):
|
||||
langFuseLogger = LangFuseLogger(
|
||||
temp_langfuse_logger = LangFuseLogger(
|
||||
langfuse_public_key=self.langfuse_public_key,
|
||||
langfuse_secret=self.langfuse_secret,
|
||||
langfuse_host=self.langfuse_host,
|
||||
)
|
||||
_response = langFuseLogger.log_event(
|
||||
_response = temp_langfuse_logger.log_event(
|
||||
kwargs=kwargs,
|
||||
response_obj=result,
|
||||
start_time=start_time,
|
||||
|
@ -1925,6 +1926,38 @@ class Logging:
|
|||
|
||||
return trace_id
|
||||
|
||||
def _get_callback_object(self, service_name: Literal["langfuse"]) -> Optional[Any]:
|
||||
"""
|
||||
Return dynamic callback object.
|
||||
|
||||
Meant to solve issue when doing key-based/team-based logging
|
||||
"""
|
||||
global langFuseLogger
|
||||
|
||||
if service_name == "langfuse":
|
||||
if langFuseLogger is None or (
|
||||
(
|
||||
self.langfuse_public_key is not None
|
||||
and self.langfuse_public_key != langFuseLogger.public_key
|
||||
)
|
||||
or (
|
||||
self.langfuse_public_key is not None
|
||||
and self.langfuse_public_key != langFuseLogger.public_key
|
||||
)
|
||||
or (
|
||||
self.langfuse_host is not None
|
||||
and self.langfuse_host != langFuseLogger.langfuse_host
|
||||
)
|
||||
):
|
||||
return LangFuseLogger(
|
||||
langfuse_public_key=self.langfuse_public_key,
|
||||
langfuse_secret=self.langfuse_secret,
|
||||
langfuse_host=self.langfuse_host,
|
||||
)
|
||||
return langFuseLogger
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def set_callbacks(callback_list, function_id=None):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue