community[patch]: propagate cost information to OpenAI callback (#23996)

This is enabled following
https://github.com/langchain-ai/langchain/pull/22716.
This commit is contained in:
ccurme
2024-07-10 10:50:35 -04:00
committed by GitHub
parent 91b37b2d81
commit 9c6efadec3
2 changed files with 60 additions and 80 deletions

View File

@@ -223,19 +223,23 @@ class OpenAICallbackHandler(BaseCallbackHandler):
message = generation.message
if isinstance(message, AIMessage):
usage_metadata = message.usage_metadata
response_metadata = message.response_metadata
else:
usage_metadata = None
response_metadata = None
except AttributeError:
usage_metadata = None
response_metadata = None
else:
usage_metadata = None
response_metadata = None
if usage_metadata:
token_usage = {"total_tokens": usage_metadata["total_tokens"]}
completion_tokens = usage_metadata["output_tokens"]
prompt_tokens = usage_metadata["input_tokens"]
if response.llm_output is None:
# model name (and therefore cost) is unavailable in
# streaming responses
if response_model_name := (response_metadata or {}).get("model_name"):
model_name = standardize_model_name(response_model_name)
elif response.llm_output is None:
model_name = ""
else:
model_name = standardize_model_name(