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 7
7
require 'active_record/railtie'
8
8
require 'active_storage/engine'
9
9
require 'action_controller/railtie'
10
+ require 'action_text/engine'
10
11
11
12
Bundler . require ( *Rails . groups )
12
13
require 'ruby_llm'
Original file line number Diff line number Diff line change @@ -378,6 +378,29 @@ class BotToolCall < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinition
378
378
end
379
379
end
380
380
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
+
381
404
describe 'attachment handling' do
382
405
let ( :image_path ) { File . expand_path ( '../../fixtures/ruby.png' , __dir__ ) }
383
406
let ( :pdf_path ) { File . expand_path ( '../../fixtures/sample.pdf' , __dir__ ) }
You can’t perform that action at this time.
0 commit comments