10000 Fixes issue #311: Add usage_metadata to llm_response · Syntax404-coder/adk-python@e4aceb8 · GitHub
[go: up one dir, main page]

Skip to content

Commit e4aceb8

Browse files
committed
Fixes issue google#311: Add usage_metadata to llm_response
1 parent d35b99e commit e4aceb8

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/google/adk/models/llm_response.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ class LlmResponse(BaseModel):
8080
NOTE: the entire dict must be JSON serializable.
8181
"""
8282

83+
usage_metadata: Optional[types.GenerateContentResponseUsageMetadata] = None
84+
"""The usage metadata of the LlmResponse"""
85+
8386
@staticmethod
8487
def create(
8588
generate_content_response: types.GenerateContentResponse,
@@ -93,28 +96,32 @@ def create(
9396
Returns:
9497
The LlmResponse.
9598
"""
96-
99+
usage_metadata = generate_content_response.usage_metadata
97100
if generate_content_response.candidates:
98101
candidate = generate_content_response.candidates[0]
99102
if candidate.content and candidate.content.parts:
100103
return LlmResponse(
101104
content=candidate.content,
102105
grounding_metadata=candidate.grounding_metadata,
106+
usage_metadata=usage_metadata,
103107
)
104108
8000 else:
105109
return LlmResponse(
106110
error_code=candidate.finish_reason,
107111
error_message=candidate.finish_message,
112+
usage_metadata=usage_metadata,
108113
)
109114
else:
110115
if generate_content_response.prompt_feedback:
111116
prompt_feedback = generate_content_response.prompt_feedback
112117
return LlmResponse(
113118
error_code=prompt_feedback.block_reason,
114119
error_message=prompt_feedback.block_reason_message,
120+
usage_metadata=usage_metadata,
115121
)
116122
else:
117123
return LlmResponse(
118124
error_code='UNKNOWN_ERROR',
119125
error_message='Unknown error.',
126+
usage_metadata=usage_metadata,
120127
)

0 commit comments

Comments
 (0)
0