Fix JSON serialization of LiteLLM tool calls#5277
Closed
STHITAPRAJNAS wants to merge 1 commit intogoogle:mainfrom
Closed
Fix JSON serialization of LiteLLM tool calls#5277STHITAPRAJNAS wants to merge 1 commit intogoogle:mainfrom
STHITAPRAJNAS wants to merge 1 commit intogoogle:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR addresses Issue #158 - a TypeError that occurs when using LiteLlm with third-party loggers or tracers (such as Opik). The issue was caused by LiteLLM tool call objects (ChatCompletionMessageToolCall and Function) not
being natively JSON serializable by standard Python json.dumps().
Changes
standard, serializable types.
Impact
Reproduction
The issue was reproduced using a standalone script that integrated google-adk with litellm and the opik tracer. When an agent triggered a tool call, the OpikLogger attempted to serialize the model response using
json.dumps(), which failed on the ChatCompletionMessageToolCall object.
Reproduction Snippet:
This fails in Opik or any standard JSON logger
Verification & Testing
After applying the fix, the following validation steps were performed:
Manual Verification:
Unit Testing:
Regression Testing:
Linting & Standards: