ruby_llm 1.12.0 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -5
- data/lib/generators/ruby_llm/agent/agent_generator.rb +36 -0
- data/lib/generators/ruby_llm/agent/templates/agent.rb.tt +6 -0
- data/lib/generators/ruby_llm/agent/templates/instructions.txt.erb.tt +0 -0
- data/lib/generators/ruby_llm/chat_ui/chat_ui_generator.rb +110 -41
- data/lib/generators/ruby_llm/chat_ui/templates/controllers/chats_controller.rb.tt +14 -15
- data/lib/generators/ruby_llm/chat_ui/templates/controllers/messages_controller.rb.tt +8 -11
- data/lib/generators/ruby_llm/chat_ui/templates/controllers/models_controller.rb.tt +2 -2
- data/lib/generators/ruby_llm/chat_ui/templates/helpers/messages_helper.rb.tt +25 -0
- data/lib/generators/ruby_llm/chat_ui/templates/jobs/chat_response_job.rb.tt +2 -2
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/_chat.html.erb.tt +16 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/_form.html.erb.tt +31 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/index.html.erb.tt +31 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/new.html.erb.tt +9 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/show.html.erb.tt +27 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_assistant.html.erb.tt +14 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_content.html.erb.tt +1 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_error.html.erb.tt +13 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_form.html.erb.tt +23 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_system.html.erb.tt +10 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_tool.html.erb.tt +2 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_tool_calls.html.erb.tt +4 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_user.html.erb.tt +14 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/tool_calls/_default.html.erb.tt +13 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/tool_results/_default.html.erb.tt +21 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/_model.html.erb.tt +17 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/index.html.erb.tt +40 -0
- data/lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/show.html.erb.tt +27 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/chats/_chat.html.erb.tt +2 -2
- data/lib/generators/ruby_llm/chat_ui/templates/views/chats/_form.html.erb.tt +2 -2
- data/lib/generators/ruby_llm/chat_ui/templates/views/chats/index.html.erb.tt +19 -7
- data/lib/generators/ruby_llm/chat_ui/templates/views/chats/new.html.erb.tt +1 -1
- data/lib/generators/ruby_llm/chat_ui/templates/views/chats/show.html.erb.tt +5 -3
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_assistant.html.erb.tt +9 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_content.html.erb.tt +1 -1
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_error.html.erb.tt +8 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_form.html.erb.tt +1 -1
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_system.html.erb.tt +6 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_tool.html.erb.tt +2 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_tool_calls.html.erb.tt +4 -7
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_user.html.erb.tt +9 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/create.turbo_stream.erb.tt +5 -7
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/tool_calls/_default.html.erb.tt +8 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/tool_results/_default.html.erb.tt +16 -0
- data/lib/generators/ruby_llm/chat_ui/templates/views/models/_model.html.erb.tt +11 -12
- data/lib/generators/ruby_llm/chat_ui/templates/views/models/index.html.erb.tt +27 -17
- data/lib/generators/ruby_llm/chat_ui/templates/views/models/show.html.erb.tt +3 -4
- data/lib/generators/ruby_llm/generator_helpers.rb +37 -17
- data/lib/generators/ruby_llm/install/install_generator.rb +22 -18
- data/lib/generators/ruby_llm/install/templates/create_chats_migration.rb.tt +1 -1
- data/lib/generators/ruby_llm/install/templates/create_messages_migration.rb.tt +1 -1
- data/lib/generators/ruby_llm/install/templates/create_models_migration.rb.tt +4 -10
- data/lib/generators/ruby_llm/install/templates/create_tool_calls_migration.rb.tt +2 -2
- data/lib/generators/ruby_llm/install/templates/initializer.rb.tt +2 -2
- data/lib/generators/ruby_llm/schema/schema_generator.rb +26 -0
- data/lib/generators/ruby_llm/schema/templates/schema.rb.tt +2 -0
- data/lib/generators/ruby_llm/tool/templates/tool.rb.tt +9 -0
- data/lib/generators/ruby_llm/tool/templates/tool_call.html.erb.tt +13 -0
- data/lib/generators/ruby_llm/tool/templates/tool_result.html.erb.tt +13 -0
- data/lib/generators/ruby_llm/tool/tool_generator.rb +96 -0
- data/lib/generators/ruby_llm/upgrade_to_v1_10/upgrade_to_v1_10_generator.rb +1 -1
- data/lib/generators/ruby_llm/upgrade_to_v1_14/templates/add_v1_14_tool_call_columns.rb.tt +7 -0
- data/lib/generators/ruby_llm/upgrade_to_v1_14/upgrade_to_v1_14_generator.rb +49 -0
- data/lib/generators/ruby_llm/upgrade_to_v1_7/upgrade_to_v1_7_generator.rb +2 -4
- data/lib/generators/ruby_llm/upgrade_to_v1_9/upgrade_to_v1_9_generator.rb +1 -1
- data/lib/ruby_llm/active_record/acts_as.rb +10 -4
- data/lib/ruby_llm/active_record/acts_as_legacy.rb +87 -20
- data/lib/ruby_llm/active_record/chat_methods.rb +80 -22
- data/lib/ruby_llm/active_record/message_methods.rb +17 -0
- data/lib/ruby_llm/active_record/model_methods.rb +1 -1
- data/lib/ruby_llm/active_record/payload_helpers.rb +26 -0
- data/lib/ruby_llm/active_record/tool_call_methods.rb +15 -0
- data/lib/ruby_llm/agent.rb +50 -8
- data/lib/ruby_llm/aliases.json +60 -21
- data/lib/ruby_llm/attachment.rb +4 -1
- data/lib/ruby_llm/chat.rb +113 -12
- data/lib/ruby_llm/configuration.rb +65 -66
- data/lib/ruby_llm/connection.rb +11 -7
- data/lib/ruby_llm/content.rb +6 -2
- data/lib/ruby_llm/error.rb +37 -1
- data/lib/ruby_llm/message.rb +5 -3
- data/lib/ruby_llm/model/info.rb +15 -13
- data/lib/ruby_llm/models.json +12279 -13517
- data/lib/ruby_llm/models.rb +16 -6
- data/lib/ruby_llm/provider.rb +10 -1
- data/lib/ruby_llm/providers/anthropic/capabilities.rb +5 -119
- data/lib/ruby_llm/providers/anthropic/chat.rb +22 -5
- data/lib/ruby_llm/providers/anthropic/models.rb +3 -9
- data/lib/ruby_llm/providers/anthropic/tools.rb +20 -0
- data/lib/ruby_llm/providers/anthropic.rb +5 -1
- data/lib/ruby_llm/providers/azure/chat.rb +1 -1
- data/lib/ruby_llm/providers/azure/embeddings.rb +1 -1
- data/lib/ruby_llm/providers/azure/models.rb +1 -1
- data/lib/ruby_llm/providers/azure.rb +92 -0
- data/lib/ruby_llm/providers/bedrock/chat.rb +50 -5
- data/lib/ruby_llm/providers/bedrock/models.rb +17 -1
- data/lib/ruby_llm/providers/bedrock/streaming.rb +8 -4
- data/lib/ruby_llm/providers/bedrock.rb +9 -1
- data/lib/ruby_llm/providers/deepseek/capabilities.rb +4 -114
- data/lib/ruby_llm/providers/deepseek.rb +5 -1
- data/lib/ruby_llm/providers/gemini/capabilities.rb +45 -207
- data/lib/ruby_llm/providers/gemini/chat.rb +20 -4
- data/lib/ruby_llm/providers/gemini/images.rb +1 -1
- data/lib/ruby_llm/providers/gemini/models.rb +2 -4
- data/lib/ruby_llm/providers/gemini/streaming.rb +2 -1
- data/lib/ruby_llm/providers/gemini/tools.rb +19 -0
- data/lib/ruby_llm/providers/gemini.rb +4 -0
- data/lib/ruby_llm/providers/gpustack/capabilities.rb +20 -0
- data/lib/ruby_llm/providers/gpustack.rb +8 -0
- data/lib/ruby_llm/providers/mistral/capabilities.rb +8 -0
- data/lib/ruby_llm/providers/mistral/chat.rb +2 -1
- data/lib/ruby_llm/providers/mistral.rb +4 -0
- data/lib/ruby_llm/providers/ollama/capabilities.rb +20 -0
- data/lib/ruby_llm/providers/ollama.rb +11 -1
- data/lib/ruby_llm/providers/openai/capabilities.rb +95 -195
- data/lib/ruby_llm/providers/openai/chat.rb +15 -5
- data/lib/ruby_llm/providers/openai/media.rb +4 -1
- data/lib/ruby_llm/providers/openai/models.rb +2 -4
- data/lib/ruby_llm/providers/openai/temperature.rb +2 -2
- data/lib/ruby_llm/providers/openai/tools.rb +27 -2
- data/lib/ruby_llm/providers/openai.rb +10 -0
- data/lib/ruby_llm/providers/openrouter/chat.rb +19 -5
- data/lib/ruby_llm/providers/openrouter/images.rb +69 -0
- data/lib/ruby_llm/providers/openrouter.rb +35 -1
- data/lib/ruby_llm/providers/perplexity/capabilities.rb +34 -99
- data/lib/ruby_llm/providers/perplexity/models.rb +12 -14
- data/lib/ruby_llm/providers/perplexity.rb +4 -0
- data/lib/ruby_llm/providers/vertexai/models.rb +1 -1
- data/lib/ruby_llm/providers/vertexai.rb +18 -6
- data/lib/ruby_llm/providers/xai.rb +4 -0
- data/lib/ruby_llm/stream_accumulator.rb +10 -5
- data/lib/ruby_llm/streaming.rb +7 -7
- data/lib/ruby_llm/tool.rb +48 -3
- data/lib/ruby_llm/version.rb +1 -1
- data/lib/tasks/models.rake +33 -7
- data/lib/tasks/release.rake +1 -1
- data/lib/tasks/ruby_llm.rake +9 -1
- data/lib/tasks/vcr.rake +1 -1
- metadata +56 -15
- data/lib/generators/ruby_llm/chat_ui/templates/views/messages/_message.html.erb.tt +0 -13
data/lib/tasks/models.rake
CHANGED
|
@@ -144,12 +144,17 @@ def status(provider_sym)
|
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
def generate_models_markdown
|
|
147
|
+
models = RubyLLM.models.all
|
|
148
|
+
total_models = models.count
|
|
149
|
+
provider_count = models.map(&:provider).uniq.count
|
|
150
|
+
generated_on = Time.now.utc.strftime('%Y-%m-%d')
|
|
151
|
+
|
|
147
152
|
<<~MARKDOWN
|
|
148
153
|
---
|
|
149
154
|
layout: default
|
|
150
155
|
title: Available Models
|
|
151
156
|
nav_order: 1
|
|
152
|
-
description: Browse
|
|
157
|
+
description: Browse #{total_models} AI models across #{provider_count} providers (not including local providers). Updated #{generated_on}.
|
|
153
158
|
redirect_from:
|
|
154
159
|
- /guides/available-models
|
|
155
160
|
---
|
|
@@ -170,11 +175,17 @@ def generate_models_markdown
|
|
|
170
175
|
|
|
171
176
|
_Model information enriched by [models.dev](https://models.dev) and our custom code._
|
|
172
177
|
|
|
173
|
-
|
|
174
|
-
|
|
178
|
+
Can't find a newly released model? Refresh your registry:
|
|
179
|
+
|
|
180
|
+
```ruby
|
|
181
|
+
# Plain Ruby
|
|
182
|
+
RubyLLM.models.refresh!
|
|
175
183
|
|
|
176
|
-
#
|
|
177
|
-
|
|
184
|
+
# Rails
|
|
185
|
+
Model.refresh!
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
See [Model Registry: Refreshing the Registry]({% link _advanced/models.md %}#refreshing-the-registry).
|
|
178
189
|
|
|
179
190
|
## Models by Provider
|
|
180
191
|
|
|
@@ -275,8 +286,8 @@ end
|
|
|
275
286
|
def models_table(models)
|
|
276
287
|
return '*No models found*' if models.none?
|
|
277
288
|
|
|
278
|
-
headers = ['Model', 'Provider', 'Context', 'Max Output', 'Standard Pricing (per 1M tokens)']
|
|
279
|
-
alignment = [':--', ':--', '--:', '--:', ':--']
|
|
289
|
+
headers = ['Model', 'Provider', 'I/O', 'Capabilities', 'Context', 'Max Output', 'Standard Pricing (per 1M tokens)']
|
|
290
|
+
alignment = [':--', ':--', ':--', ':--', '--:', '--:', ':--']
|
|
280
291
|
|
|
281
292
|
rows = models.sort_by { |m| [m.provider, m.name] }.map do |model|
|
|
282
293
|
pricing = standard_pricing_display(model)
|
|
@@ -284,6 +295,8 @@ def models_table(models)
|
|
|
284
295
|
[
|
|
285
296
|
model.id,
|
|
286
297
|
model.provider,
|
|
298
|
+
modalities_display(model),
|
|
299
|
+
list_display(model.capabilities),
|
|
287
300
|
model.context_window || '-',
|
|
288
301
|
model.max_output_tokens || '-',
|
|
289
302
|
pricing
|
|
@@ -301,6 +314,19 @@ def models_table(models)
|
|
|
301
314
|
table.join("\n")
|
|
302
315
|
end
|
|
303
316
|
|
|
317
|
+
def modalities_display(model)
|
|
318
|
+
input_modalities = list_display(model.modalities.input)
|
|
319
|
+
output_modalities = list_display(model.modalities.output)
|
|
320
|
+
"In: #{input_modalities}; Out: #{output_modalities}"
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
def list_display(values)
|
|
324
|
+
items = Array(values).compact.map(&:to_s).reject(&:empty?)
|
|
325
|
+
return '-' if items.empty?
|
|
326
|
+
|
|
327
|
+
items.join(', ')
|
|
328
|
+
end
|
|
329
|
+
|
|
304
330
|
def standard_pricing_display(model)
|
|
305
331
|
pricing_data = model.pricing.to_h[:text_tokens]&.dig(:standard) || {}
|
|
306
332
|
|
data/lib/tasks/release.rake
CHANGED
|
@@ -26,7 +26,7 @@ namespace :release do # rubocop:disable Metrics/BlockLength
|
|
|
26
26
|
if stale_count.positive?
|
|
27
27
|
puts "\n🗑️ Removed #{stale_count} stale cassettes"
|
|
28
28
|
puts '🔄 Re-recording cassettes...'
|
|
29
|
-
|
|
29
|
+
run_test_queue_rspec || exit(1)
|
|
30
30
|
puts '✅ Cassettes refreshed!'
|
|
31
31
|
else
|
|
32
32
|
puts '✅ No stale cassettes found'
|
data/lib/tasks/ruby_llm.rake
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
def run_test_queue_rspec
|
|
4
|
+
workers = ENV.fetch('RSPEC_WORKERS', nil)
|
|
5
|
+
env = {}
|
|
6
|
+
env['TEST_QUEUE_WORKERS'] = workers if workers && !workers.empty? && ENV.fetch('TEST_QUEUE_WORKERS', '').empty?
|
|
7
|
+
|
|
8
|
+
system(env, 'bundle', 'exec', 'bin/rspec-queue')
|
|
9
|
+
end
|
|
10
|
+
|
|
3
11
|
namespace :ruby_llm do
|
|
4
12
|
desc 'Load models from models.json into the database'
|
|
5
13
|
task load_models: :environment do
|
|
@@ -9,7 +17,7 @@ namespace :ruby_llm do
|
|
|
9
17
|
model_class.save_to_database
|
|
10
18
|
puts "✅ Loaded #{model_class.count} models into database"
|
|
11
19
|
else
|
|
12
|
-
puts 'Model registry not configured. Run rails generate ruby_llm:install'
|
|
20
|
+
puts 'Model registry not configured. Run bin/rails generate ruby_llm:install'
|
|
13
21
|
end
|
|
14
22
|
end
|
|
15
23
|
end
|
data/lib/tasks/vcr.rake
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_llm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.14.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Carmine Paolino
|
|
@@ -43,30 +43,30 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
46
|
+
version: 1.10.0
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - ">="
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
53
|
+
version: 1.10.0
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: faraday-
|
|
55
|
+
name: faraday-multipart
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
60
|
+
version: '1'
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - ">="
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '
|
|
67
|
+
version: '1'
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: faraday-
|
|
69
|
+
name: faraday-net_http
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - ">="
|
|
@@ -80,7 +80,7 @@ dependencies:
|
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
81
|
version: '1'
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name: faraday-
|
|
83
|
+
name: faraday-retry
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
86
|
- - ">="
|
|
@@ -99,28 +99,28 @@ dependencies:
|
|
|
99
99
|
requirements:
|
|
100
100
|
- - "~>"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '1
|
|
102
|
+
version: '1'
|
|
103
103
|
type: :runtime
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - "~>"
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '1
|
|
109
|
+
version: '1'
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: ruby_llm-schema
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 0
|
|
116
|
+
version: '0'
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - "~>"
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0
|
|
123
|
+
version: '0'
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: zeitwerk
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,21 +150,49 @@ extra_rdoc_files: []
|
|
|
150
150
|
files:
|
|
151
151
|
- LICENSE
|
|
152
152
|
- README.md
|
|
153
|
+
- lib/generators/ruby_llm/agent/agent_generator.rb
|
|
154
|
+
- lib/generators/ruby_llm/agent/templates/agent.rb.tt
|
|
155
|
+
- lib/generators/ruby_llm/agent/templates/instructions.txt.erb.tt
|
|
153
156
|
- lib/generators/ruby_llm/chat_ui/chat_ui_generator.rb
|
|
154
157
|
- lib/generators/ruby_llm/chat_ui/templates/controllers/chats_controller.rb.tt
|
|
155
158
|
- lib/generators/ruby_llm/chat_ui/templates/controllers/messages_controller.rb.tt
|
|
156
159
|
- lib/generators/ruby_llm/chat_ui/templates/controllers/models_controller.rb.tt
|
|
160
|
+
- lib/generators/ruby_llm/chat_ui/templates/helpers/messages_helper.rb.tt
|
|
157
161
|
- lib/generators/ruby_llm/chat_ui/templates/jobs/chat_response_job.rb.tt
|
|
162
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/_chat.html.erb.tt
|
|
163
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/_form.html.erb.tt
|
|
164
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/index.html.erb.tt
|
|
165
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/new.html.erb.tt
|
|
166
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/chats/show.html.erb.tt
|
|
167
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_assistant.html.erb.tt
|
|
168
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_content.html.erb.tt
|
|
169
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_error.html.erb.tt
|
|
170
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_form.html.erb.tt
|
|
171
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_system.html.erb.tt
|
|
172
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_tool.html.erb.tt
|
|
173
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_tool_calls.html.erb.tt
|
|
174
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/_user.html.erb.tt
|
|
175
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/tool_calls/_default.html.erb.tt
|
|
176
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/messages/tool_results/_default.html.erb.tt
|
|
177
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/_model.html.erb.tt
|
|
178
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/index.html.erb.tt
|
|
179
|
+
- lib/generators/ruby_llm/chat_ui/templates/tailwind/views/models/show.html.erb.tt
|
|
158
180
|
- lib/generators/ruby_llm/chat_ui/templates/views/chats/_chat.html.erb.tt
|
|
159
181
|
- lib/generators/ruby_llm/chat_ui/templates/views/chats/_form.html.erb.tt
|
|
160
182
|
- lib/generators/ruby_llm/chat_ui/templates/views/chats/index.html.erb.tt
|
|
161
183
|
- lib/generators/ruby_llm/chat_ui/templates/views/chats/new.html.erb.tt
|
|
162
184
|
- lib/generators/ruby_llm/chat_ui/templates/views/chats/show.html.erb.tt
|
|
185
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_assistant.html.erb.tt
|
|
163
186
|
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_content.html.erb.tt
|
|
187
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_error.html.erb.tt
|
|
164
188
|
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_form.html.erb.tt
|
|
165
|
-
- lib/generators/ruby_llm/chat_ui/templates/views/messages/
|
|
189
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_system.html.erb.tt
|
|
190
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_tool.html.erb.tt
|
|
166
191
|
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_tool_calls.html.erb.tt
|
|
192
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/_user.html.erb.tt
|
|
167
193
|
- lib/generators/ruby_llm/chat_ui/templates/views/messages/create.turbo_stream.erb.tt
|
|
194
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/tool_calls/_default.html.erb.tt
|
|
195
|
+
- lib/generators/ruby_llm/chat_ui/templates/views/messages/tool_results/_default.html.erb.tt
|
|
168
196
|
- lib/generators/ruby_llm/chat_ui/templates/views/models/_model.html.erb.tt
|
|
169
197
|
- lib/generators/ruby_llm/chat_ui/templates/views/models/index.html.erb.tt
|
|
170
198
|
- lib/generators/ruby_llm/chat_ui/templates/views/models/show.html.erb.tt
|
|
@@ -180,8 +208,16 @@ files:
|
|
|
180
208
|
- lib/generators/ruby_llm/install/templates/message_model.rb.tt
|
|
181
209
|
- lib/generators/ruby_llm/install/templates/model_model.rb.tt
|
|
182
210
|
- lib/generators/ruby_llm/install/templates/tool_call_model.rb.tt
|
|
211
|
+
- lib/generators/ruby_llm/schema/schema_generator.rb
|
|
212
|
+
- lib/generators/ruby_llm/schema/templates/schema.rb.tt
|
|
213
|
+
- lib/generators/ruby_llm/tool/templates/tool.rb.tt
|
|
214
|
+
- lib/generators/ruby_llm/tool/templates/tool_call.html.erb.tt
|
|
215
|
+
- lib/generators/ruby_llm/tool/templates/tool_result.html.erb.tt
|
|
216
|
+
- lib/generators/ruby_llm/tool/tool_generator.rb
|
|
183
217
|
- lib/generators/ruby_llm/upgrade_to_v1_10/templates/add_v1_10_message_columns.rb.tt
|
|
184
218
|
- lib/generators/ruby_llm/upgrade_to_v1_10/upgrade_to_v1_10_generator.rb
|
|
219
|
+
- lib/generators/ruby_llm/upgrade_to_v1_14/templates/add_v1_14_tool_call_columns.rb.tt
|
|
220
|
+
- lib/generators/ruby_llm/upgrade_to_v1_14/upgrade_to_v1_14_generator.rb
|
|
185
221
|
- lib/generators/ruby_llm/upgrade_to_v1_7/templates/migration.rb.tt
|
|
186
222
|
- lib/generators/ruby_llm/upgrade_to_v1_7/upgrade_to_v1_7_generator.rb
|
|
187
223
|
- lib/generators/ruby_llm/upgrade_to_v1_9/templates/add_v1_9_message_columns.rb.tt
|
|
@@ -192,6 +228,8 @@ files:
|
|
|
192
228
|
- lib/ruby_llm/active_record/chat_methods.rb
|
|
193
229
|
- lib/ruby_llm/active_record/message_methods.rb
|
|
194
230
|
- lib/ruby_llm/active_record/model_methods.rb
|
|
231
|
+
- lib/ruby_llm/active_record/payload_helpers.rb
|
|
232
|
+
- lib/ruby_llm/active_record/tool_call_methods.rb
|
|
195
233
|
- lib/ruby_llm/agent.rb
|
|
196
234
|
- lib/ruby_llm/aliases.json
|
|
197
235
|
- lib/ruby_llm/aliases.rb
|
|
@@ -252,6 +290,7 @@ files:
|
|
|
252
290
|
- lib/ruby_llm/providers/gemini/tools.rb
|
|
253
291
|
- lib/ruby_llm/providers/gemini/transcription.rb
|
|
254
292
|
- lib/ruby_llm/providers/gpustack.rb
|
|
293
|
+
- lib/ruby_llm/providers/gpustack/capabilities.rb
|
|
255
294
|
- lib/ruby_llm/providers/gpustack/chat.rb
|
|
256
295
|
- lib/ruby_llm/providers/gpustack/media.rb
|
|
257
296
|
- lib/ruby_llm/providers/gpustack/models.rb
|
|
@@ -261,6 +300,7 @@ files:
|
|
|
261
300
|
- lib/ruby_llm/providers/mistral/embeddings.rb
|
|
262
301
|
- lib/ruby_llm/providers/mistral/models.rb
|
|
263
302
|
- lib/ruby_llm/providers/ollama.rb
|
|
303
|
+
- lib/ruby_llm/providers/ollama/capabilities.rb
|
|
264
304
|
- lib/ruby_llm/providers/ollama/chat.rb
|
|
265
305
|
- lib/ruby_llm/providers/ollama/media.rb
|
|
266
306
|
- lib/ruby_llm/providers/ollama/models.rb
|
|
@@ -278,6 +318,7 @@ files:
|
|
|
278
318
|
- lib/ruby_llm/providers/openai/transcription.rb
|
|
279
319
|
- lib/ruby_llm/providers/openrouter.rb
|
|
280
320
|
- lib/ruby_llm/providers/openrouter/chat.rb
|
|
321
|
+
- lib/ruby_llm/providers/openrouter/images.rb
|
|
281
322
|
- lib/ruby_llm/providers/openrouter/models.rb
|
|
282
323
|
- lib/ruby_llm/providers/openrouter/streaming.rb
|
|
283
324
|
- lib/ruby_llm/providers/perplexity.rb
|
|
@@ -319,7 +360,7 @@ metadata:
|
|
|
319
360
|
funding_uri: https://github.com/sponsors/crmne
|
|
320
361
|
rubygems_mfa_required: 'true'
|
|
321
362
|
post_install_message: |
|
|
322
|
-
Upgrading from RubyLLM < 1.
|
|
363
|
+
Upgrading from RubyLLM < 1.14.x? Check the upgrade guide for new features and migration instructions
|
|
323
364
|
--> https://rubyllm.com/upgrading/
|
|
324
365
|
rdoc_options: []
|
|
325
366
|
require_paths:
|
|
@@ -335,7 +376,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
335
376
|
- !ruby/object:Gem::Version
|
|
336
377
|
version: '0'
|
|
337
378
|
requirements: []
|
|
338
|
-
rubygems_version: 4.0.
|
|
379
|
+
rubygems_version: 4.0.6
|
|
339
380
|
specification_version: 4
|
|
340
381
|
summary: One beautiful Ruby API for GPT, Claude, Gemini, and more.
|
|
341
382
|
test_files: []
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<div id="<%= message_variable_name %>_<%%= <%= message_model_name.demodulize.underscore %>.id %>" class="<%= message_variable_name %>"
|
|
2
|
-
style="margin-bottom: 20px; padding: 10px; border-left: 3px solid <%%= <%= message_model_name.demodulize.underscore %>.role == 'user' ? '#007bff' : '#28a745' %>">
|
|
3
|
-
<div style="font-weight: bold; margin-bottom: 5px;">
|
|
4
|
-
<%%= <%= message_model_name.demodulize.underscore %>.role&.capitalize %>
|
|
5
|
-
</div>
|
|
6
|
-
<div id="<%= message_variable_name %>_<%%= <%= message_model_name.demodulize.underscore %>.id %>_content" style="white-space: pre-wrap;"><%%= <%= message_model_name.demodulize.underscore %>.content %></div>
|
|
7
|
-
<%% if <%= message_model_name.demodulize.underscore %>.tool_call? %>
|
|
8
|
-
<%%= render "<%= message_model_name.underscore.pluralize %>/tool_calls", <%= message_model_name.demodulize.underscore %>: <%= message_model_name.demodulize.underscore %> %>
|
|
9
|
-
<%% end %>
|
|
10
|
-
<div style="font-size: 0.85em; color: #666; margin-top: 5px;">
|
|
11
|
-
<%%= <%= message_model_name.demodulize.underscore %>.created_at&.strftime("%I:%M %p") %>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|