add cost tracking

This commit is contained in:
Max Deichmann 2024-01-31 13:41:54 +01:00
parent c80dbcc7ea
commit f0aeedb25d

View file

@ -78,6 +78,7 @@ class LangFuseLogger:
optional_params, optional_params,
input, input,
response_obj, response_obj,
print_verbose
) if self._is_langfuse_v2() else self._log_langfuse_v1( ) if self._is_langfuse_v2() else self._log_langfuse_v1(
user_id, user_id,
metadata, metadata,
@ -88,6 +89,7 @@ class LangFuseLogger:
optional_params, optional_params,
input, input,
response_obj, response_obj,
) )
self.Langfuse.flush() self.Langfuse.flush()
@ -167,11 +169,15 @@ class LangFuseLogger:
optional_params, optional_params,
input, input,
response_obj, response_obj,
print_verbose
): ):
import langfuse import langfuse
tags = [] tags = []
supports_tags = Version(langfuse.version.__version__) >= Version("2.6.3") supports_tags = Version(langfuse.version.__version__) >= Version("2.6.3")
supports_costs = Version(langfuse.version.__version__) >= Version("2.7.0")
print_verbose(f"Langfuse Layer Logging - logging to langfuse v2 ")
trace_params = { trace_params = {
"name": metadata.get("generation_name", "litellm-completion"), "name": metadata.get("generation_name", "litellm-completion"),
@ -188,6 +194,9 @@ class LangFuseLogger:
trace_params.update({"tags": tags}) trace_params.update({"tags": tags})
trace = self.Langfuse.trace(**trace_params) trace = self.Langfuse.trace(**trace_params)
cost = kwargs["response_cost"]
print_verbose(f"trace: {cost}")
trace.generation( trace.generation(
name=metadata.get("generation_name", "litellm-completion"), name=metadata.get("generation_name", "litellm-completion"),
@ -201,6 +210,8 @@ class LangFuseLogger:
usage={ usage={
"prompt_tokens": response_obj["usage"]["prompt_tokens"], "prompt_tokens": response_obj["usage"]["prompt_tokens"],
"completion_tokens": response_obj["usage"]["completion_tokens"], "completion_tokens": response_obj["usage"]["completion_tokens"],
"input_cost": kwargs["response_cost"] if supports_costs else None,
"output_cost": kwargs["response_cost"] if supports_costs else None,
}, },
metadata=metadata, metadata=metadata,
) )