Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions ai_tool/models/ai_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class AiTool(models.Model):
)

def _get_tool_definition(self):
func = getattr(self.env[self.model_id.model], self.function_name)
func = getattr(self.env[self.model_id.sudo().model], self.function_name)
return {
"name": self.name,
"description": self.description,
Expand Down Expand Up @@ -77,18 +77,18 @@ def _ai_post_message_parse_body(self, message):

def _execute_tool(self, *args, record=None, **kwargs):
if self.kind == "generic":
return getattr(self.env[self.model_id.model], self.function_name)(
return getattr(self.env[self.model_id.sudo().model], self.function_name)(
*args, **kwargs
)
if not record:
raise ValueError("Record must be provided for non-generic tools")
if self.kind == "generic_model":
return getattr(self.env[self.model_id.model], self.function_name)(
return getattr(self.env[self.model_id.sudo().model], self.function_name)(
*args, record=record, **kwargs
)
elif record._name != self.model_id.model:
elif record._name != self.model_id.sudo().model:
raise ValueError(
f"Record model {record._name} does not match tool "
f"model {self.model_id.model}"
f"model {self.model_id.sudo().model}"
)
return getattr(record, self.function_name)(*args, **kwargs) or {}
Loading