Class: Assistant::TechnicalArticleManagementToolBuilder::UpdateTool
- Inherits:
-
ManagementTool
- Object
- RubyLLM::Tool
- ManagementTool
- Assistant::TechnicalArticleManagementToolBuilder::UpdateTool
- Defined in:
- app/services/assistant/technical_article_management_tool_builder.rb
Overview
Updates only a current draft using an optimistic edit token.
Instance Method Summary collapse
-
#execute(id:, edit_token:, **attributes) ⇒ String
JSON update result.
-
#name ⇒ String
Stable tool name.
Methods inherited from ManagementTool
Constructor Details
This class inherits a constructor from Assistant::TechnicalArticleManagementToolBuilder::ManagementTool
Instance Method Details
#execute(id:, edit_token:, **attributes) ⇒ String
Returns JSON update result.
363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 |
# File 'app/services/assistant/technical_article_management_tool_builder.rb', line 363 def execute(id:, edit_token:, **attributes) safely('update') do attrs = attributes.symbolize_keys.slice(*EDITABLE_FIELDS) raise ToolError, 'No editable fields were provided.' if attrs.empty? TechnicalArticleManagementToolBuilder.validate_association_ids!(attrs) with_current_draft(id, edit_token) do |article| article.assign_attributes(attrs) article.updater_id = require_actor!.id article.save! article.touch unless article.previous_changes.key?('updated_at') return response(article) end end end |
#name ⇒ String
Returns stable tool name.
343 |
# File 'app/services/assistant/technical_article_management_tool_builder.rb', line 343 def name = 'update_technical_article_draft' |