File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 77require 'active_record/railtie'
88require 'active_storage/engine'
99require 'action_controller/railtie'
10+ require 'action_text/engine'
1011
1112Bundler . require ( *Rails . groups )
1213require 'ruby_llm'
Original file line number Diff line number Diff line change @@ -378,6 +378,29 @@ class BotToolCall < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinition
378378 end
379379 end
380380
381+ describe 'Action Text content support' do
382+ it 'converts Action Text content to plain text' do
383+ chat = Chat . create! ( model_id : model )
384+ action_text_content = instance_double ( ActionText ::RichText )
385+ allow ( action_text_content ) . to receive ( :to_plain_text ) . and_return ( 'This is rich text content' )
386+
387+ message = chat . messages . create! ( role : 'user' )
388+ allow ( message ) . to receive ( :content ) . and_return ( action_text_content )
389+
390+ llm_message = message . to_llm
391+
392+ expect ( action_text_content ) . to have_received ( :to_plain_text )
393+ expect ( llm_message . content ) . to eq ( 'This is rich text content' )
394+ end
395+
396+ it 'handles regular string content when to_plain_text is not available' do
397+ chat = Chat . create! ( model_id : model )
398+ message = chat . messages . create! ( role : 'user' , content : 'Regular text content' )
399+ llm_message = message . to_llm
400+ expect ( llm_message . content ) . to eq ( 'Regular text content' )
401+ end
402+ end
403+
381404 describe 'attachment handling' do
382405 let ( :image_path ) { File . expand_path ( '../../fixtures/ruby.png' , __dir__ ) }
383406 let ( :pdf_path ) { File . expand_path ( '../../fixtures/sample.pdf' , __dir__ ) }
You can’t perform that action at this time.
0 commit comments