llm.rb 0.1.0 → 0.2.0

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +83 -22
  3. data/lib/llm/conversation.rb +14 -2
  4. data/lib/llm/core_ext/ostruct.rb +0 -0
  5. data/lib/llm/error.rb +0 -0
  6. data/lib/llm/file.rb +0 -0
  7. data/lib/llm/http_client.rb +0 -0
  8. data/lib/llm/lazy_conversation.rb +14 -2
  9. data/lib/llm/message.rb +1 -1
  10. data/lib/llm/message_queue.rb +0 -0
  11. data/lib/llm/model.rb +7 -0
  12. data/lib/llm/provider.rb +117 -98
  13. data/lib/llm/providers/anthropic/error_handler.rb +1 -1
  14. data/lib/llm/providers/anthropic/format.rb +0 -0
  15. data/lib/llm/providers/anthropic/response_parser.rb +0 -0
  16. data/lib/llm/providers/anthropic.rb +31 -15
  17. data/lib/llm/providers/gemini/error_handler.rb +0 -0
  18. data/lib/llm/providers/gemini/format.rb +0 -0
  19. data/lib/llm/providers/gemini/response_parser.rb +0 -0
  20. data/lib/llm/providers/gemini.rb +25 -14
  21. data/lib/llm/providers/ollama/error_handler.rb +0 -0
  22. data/lib/llm/providers/ollama/format.rb +0 -0
  23. data/lib/llm/providers/ollama/response_parser.rb +13 -0
  24. data/lib/llm/providers/ollama.rb +32 -8
  25. data/lib/llm/providers/openai/error_handler.rb +0 -0
  26. data/lib/llm/providers/openai/format.rb +0 -0
  27. data/lib/llm/providers/openai/response_parser.rb +5 -3
  28. data/lib/llm/providers/openai.rb +22 -12
  29. data/lib/llm/providers/voyageai/error_handler.rb +32 -0
  30. data/lib/llm/providers/voyageai/response_parser.rb +13 -0
  31. data/lib/llm/providers/voyageai.rb +44 -0
  32. data/lib/llm/response/completion.rb +0 -0
  33. data/lib/llm/response/embedding.rb +0 -0
  34. data/lib/llm/response.rb +0 -0
  35. data/lib/llm/version.rb +1 -1
  36. data/lib/llm.rb +18 -8
  37. data/llm.gemspec +6 -1
  38. data/share/llm/models/anthropic.yml +35 -0
  39. data/share/llm/models/gemini.yml +35 -0
  40. data/share/llm/models/ollama.yml +155 -0
  41. data/share/llm/models/openai.yml +46 -0
  42. data/spec/anthropic/completion_spec.rb +11 -27
  43. data/spec/anthropic/embedding_spec.rb +25 -0
  44. data/spec/gemini/completion_spec.rb +13 -29
  45. data/spec/gemini/embedding_spec.rb +4 -12
  46. data/spec/llm/lazy_conversation_spec.rb +45 -63
  47. data/spec/ollama/completion_spec.rb +7 -16
  48. data/spec/ollama/embedding_spec.rb +14 -5
  49. data/spec/openai/completion_spec.rb +19 -43
  50. data/spec/openai/embedding_spec.rb +4 -12
  51. data/spec/readme_spec.rb +9 -12
  52. data/spec/setup.rb +7 -16
  53. metadata +81 -2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antar Azri
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-03-25 00:00:00.000000000 Z
12
+ date: 2025-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-http
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: yaml
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: webmock
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +123,62 @@ dependencies:
109
123
  - - "~>"
110
124
  - !ruby/object:Gem::Version
111
125
  version: 0.12.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '13.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '13.0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: rspec
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '3.0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '3.0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: standard
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '1.40'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '1.40'
168
+ - !ruby/object:Gem::Dependency
169
+ name: vcr
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '6.0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '6.0'
112
182
  description: llm.rb is a lightweight Ruby library that provides a common interface
113
183
  and set of functionality for multple Large Language Models (LLMs). It is designed
114
184
  to be simple, flexible, and easy to use.
@@ -130,6 +200,7 @@ files:
130
200
  - lib/llm/lazy_conversation.rb
131
201
  - lib/llm/message.rb
132
202
  - lib/llm/message_queue.rb
203
+ - lib/llm/model.rb
133
204
  - lib/llm/provider.rb
134
205
  - lib/llm/providers/anthropic.rb
135
206
  - lib/llm/providers/anthropic/error_handler.rb
@@ -147,12 +218,20 @@ files:
147
218
  - lib/llm/providers/openai/error_handler.rb
148
219
  - lib/llm/providers/openai/format.rb
149
220
  - lib/llm/providers/openai/response_parser.rb
221
+ - lib/llm/providers/voyageai.rb
222
+ - lib/llm/providers/voyageai/error_handler.rb
223
+ - lib/llm/providers/voyageai/response_parser.rb
150
224
  - lib/llm/response.rb
151
225
  - lib/llm/response/completion.rb
152
226
  - lib/llm/response/embedding.rb
153
227
  - lib/llm/version.rb
154
228
  - llm.gemspec
229
+ - share/llm/models/anthropic.yml
230
+ - share/llm/models/gemini.yml
231
+ - share/llm/models/ollama.yml
232
+ - share/llm/models/openai.yml
155
233
  - spec/anthropic/completion_spec.rb
234
+ - spec/anthropic/embedding_spec.rb
156
235
  - spec/gemini/completion_spec.rb
157
236
  - spec/gemini/embedding_spec.rb
158
237
  - spec/llm/conversation_spec.rb