Skip to content

Commit 18143b5

Browse files
fix: Use provider instance in closure for proper method binding
Co-Authored-By: Alex Reibman <meta.alex.r@gmail.com>
1 parent 970c318 commit 18143b5

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

agentops/llms/providers/gemini.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class GeminiProvider(BaseProvider):
1616
is called and the google.generativeai package is imported. No manual
1717
initialization is required."""
1818

19-
original_generate = None
19+
_original_generate = None
2020

2121
def __init__(self, client=None):
2222
"""Initialize the Gemini provider.
@@ -127,17 +127,20 @@ def override(self):
127127
import google.generativeai as genai
128128

129129
# Store original method if not already stored
130-
if self.original_generate is None:
131-
self.original_generate = genai.GenerativeModel.generate_content
130+
if GeminiProvider._original_generate is None:
131+
GeminiProvider._original_generate = genai.GenerativeModel.generate_content
132+
133+
# Store provider instance for the closure
134+
provider = self
132135

133136
def patched_function(self, *args, **kwargs):
134137
init_timestamp = get_ISO_time()
135138
session = kwargs.pop("session", None) # Always try to pop session, returns None if not present
136139

137140
# Call original method and track event
138-
if self.original_generate:
139-
result = self.original_generate(self, *args, **kwargs)
140-
return self.handle_response(result, kwargs, init_timestamp, session=session)
141+
if GeminiProvider._original_generate:
142+
result = GeminiProvider._original_generate(self, *args, **kwargs)
143+
return provider.handle_response(result, kwargs, init_timestamp, session=session)
141144
else:
142145
logger.error("Original generate_content method not found. Cannot proceed with override.")
143146
return None
@@ -151,6 +154,6 @@ def undo_override(self):
151154
Note:
152155
This method is called automatically by AgentOps during cleanup.
153156
Users should not call this method directly."""
154-
if self.original_generate is not None:
157+
if GeminiProvider._original_generate is not None:
155158
import google.generativeai as genai
156-
genai.GenerativeModel.generate_content = self.original_generate
159+
genai.GenerativeModel.generate_content = GeminiProvider._original_generate

0 commit comments

Comments
 (0)