ollama-ruby 0.7.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +153 -110
- data/README.md +168 -166
- data/bin/ollama_chat +134 -76
- data/docker-compose.yml +1 -1
- data/lib/ollama/documents.rb +2 -1
- data/lib/ollama/handlers/markdown.rb +1 -2
- data/lib/ollama/utils/fetcher.rb +2 -0
- data/lib/ollama/version.rb +1 -1
- data/ollama-ruby.gemspec +4 -4
- data/spec/ollama/client_spec.rb +3 -3
- data/spec/ollama/documents/redis_backed_memory_cache_spec.rb +1 -1
- data/spec/ollama/documents/redis_cache_spec.rb +1 -1
- data/spec/ollama/documents_spec.rb +5 -5
- data/spec/ollama/handlers/markdown_spec.rb +0 -2
- data/spec/ollama/utils/fetcher_spec.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0b3ea2bd67e3f4fa2ca4da88a25cb869fc81e35578f1e7fd97ba43e84fc2278
|
4
|
+
data.tar.gz: 626c534bd2fd0580ab0520e8b70587489edbc963e179be0f800ee63235690b33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 149986d8144b1bc2c20771e245ead20f6e6bc07b46dbe26f8f355e0bc61eca146cc085a920dcbe3e3e08de65632693a35b6995c9dffef288aa929dd6b034de16
|
7
|
+
data.tar.gz: 4214aa2911db561635011b8ea200074d15c74b93bf7abb3c8e77af9c40ac5d8994e908e2ade8e5f288c2919678e03ea5d84d07684a63ba1f8039de52b6091a86
|
data/CHANGES.md
CHANGED
@@ -1,99 +1,142 @@
|
|
1
1
|
# Changes
|
2
2
|
|
3
|
+
## 2024-10-18 v0.9.0
|
4
|
+
|
5
|
+
* Add document policy chooser and modify embedding/importing/summarizing
|
6
|
+
behavior:
|
7
|
+
+ Add `/document_policy` command to choose a scan policy for document
|
8
|
+
references
|
9
|
+
+ Modify `embed_source`, `import_source`, and `summarize_source` methods to
|
10
|
+
use the chosen document policy
|
11
|
+
+ Update `choose_model` method to set `$document_policy` based on
|
12
|
+
configuration or chat command
|
13
|
+
* Fix regular expression in `ollama_chat` script:
|
14
|
+
+ Updated regular expression for `/info` to `/^/info$`
|
15
|
+
* Improve ask prompt to ask about clearing messages and collection.
|
16
|
+
* Update specs to use `expect` instead of `allow`
|
17
|
+
* Fix library homepage URL in README.md
|
18
|
+
* Refactor Markdown handler to remove unnecessary puts statement
|
19
|
+
* Reorder chapters in README.md a bit
|
20
|
+
|
21
|
+
## 2024-10-07 v0.8.0
|
22
|
+
|
23
|
+
* **Refactor source handling in Ollama chat**:
|
24
|
+
+ Update regular expression to match dot-dot, dot or tilde prefix for local files
|
25
|
+
+ Add error handling for non-existent files in `Utils::Fetcher.read`
|
26
|
+
+ Stop matching the "hostname" part in file:// URLs
|
27
|
+
* **Update voice list command to suppress errors**:
|
28
|
+
+ Changed `say` command in OllamaChatConfig to `-v ? 2>/dev/null`
|
29
|
+
* **Add 'List:' and list of collections to the collection stats output**
|
30
|
+
* **Update collection stats display**:
|
31
|
+
+ Added new stat: `#Tags` to `collection_stats` method in `ollama_chat.rb`
|
32
|
+
+ Displaying number of tags for the current document collection
|
33
|
+
* **Refactor embed_source function to include document count**:
|
34
|
+
+ Added `count` parameter to `embed_source` method
|
35
|
+
+ Updated `puts` statements in `embed_source` and main loop to display document counts
|
36
|
+
+ Incremented `count` variable in main loop to track total documents embedded
|
37
|
+
+ Passed `count:` keyword argument to `embed_source` method
|
38
|
+
* **Add config option for batch_size and update document adding logic**:
|
39
|
+
+ Added `batch_size` option to `OllamaChatConfig`
|
40
|
+
+ Updated `embed_source` method in `bin/ollama_chat` to use `batch_size` from `config`
|
41
|
+
+ Updated `add` method in `lib/ollama/documents.rb` to accept `batch_size` and default to 10
|
42
|
+
* **Update Redis image to valkey/valkey:7.2.7-alpine**:
|
43
|
+
+ Updated `image` in `docker-compose.yml` to `valkey/valkey:7.2.7-alpine`
|
44
|
+
* **Reformat CHANGES.md**
|
45
|
+
|
3
46
|
## 2024-10-03 v0.7.0
|
4
47
|
|
5
48
|
* **Refactor command line interface**
|
6
|
-
|
7
|
-
|
8
|
-
|
49
|
+
+ Moved case order
|
50
|
+
+ Renamed `/collection clear [tag]|change` to `/collection (clear|change)`
|
51
|
+
+ Improved help message, added /info
|
9
52
|
* **Update README.md**
|
10
|
-
|
53
|
+
+ Update README.md to reflect changed/added commands
|
11
54
|
* **Add support for reading PostScript**
|
12
|
-
|
13
|
-
|
14
|
-
|
55
|
+
+ Extracted `pdf_read` method to read PDF files using `PDF::Reader`
|
56
|
+
+ Added `ps_read` method to read PostScript files by converting them to PDF with Ghostscript and using `pdf_read`.
|
57
|
+
+ Updated `parse_source` method to handle PostScript files
|
15
58
|
* **Update read buffer size for tempfile writes**
|
16
|
-
|
59
|
+
+ Updated `tmp.write` to use a larger buffer size (**16KB**) in IO.popen block.
|
17
60
|
* **Refactor Collection Chooser and usages**
|
18
|
-
|
19
|
-
|
20
|
-
|
61
|
+
+ Added confirmation prompt before clearing collection
|
62
|
+
+ Improved collection chooser with `[EXIT]` and `[ALL]` options
|
63
|
+
+ Added `ask?` method for user input
|
21
64
|
* **Add prompt to choose method**
|
22
|
-
|
23
|
-
|
24
|
-
|
65
|
+
+ Added `prompt` parameter to `choose` method in `Ollama::Utils::Chooser`
|
66
|
+
+ Modified output formatting for selected entry in `choose` method
|
67
|
+
+ Updated `choose` method to handle cases better where no entry was chosen
|
25
68
|
* **Fix Redis cache expiration logic**
|
26
|
-
|
69
|
+
+ Update `set` method to delete key expiration time is less than 1 second.
|
27
70
|
* **Update dependencies and add source tracking**
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
71
|
+
- Remove `sorted_set` dependency from Rakefile
|
72
|
+
- Modify `Ollama::Documents` class to track source of tags
|
73
|
+
- Update `Ollama::Utils::Tags` class to include source in tag output and add methods for tracking source
|
74
|
+
- Update tests for `Ollama::Utils::Tags` class
|
32
75
|
* **Refactor width calculation and add tests for wrap and truncate methods.**
|
33
|
-
|
34
|
-
|
35
|
-
|
76
|
+
+ Extend `Term::ANSIColor` in `Ollama::Utils::Width`
|
77
|
+
+ Update `width` method to use ellipsis length when truncating text
|
78
|
+
+ Add tests for `wrap` and `truncate` methods with percentage and length arguments
|
36
79
|
* **Add attr_reader for data and update equality check**
|
37
|
-
|
38
|
-
|
39
|
-
|
80
|
+
+ Added `attr_reader :data` to Ollama::Image class
|
81
|
+
+ Updated `==` method in Ollama::Image class to use `other.data`
|
82
|
+
+ Added test case in `image_spec.rb` to verify equality of images
|
40
83
|
|
41
84
|
## 2024-09-30 v0.6.0
|
42
85
|
|
43
86
|
### Significant Changes
|
44
87
|
|
45
88
|
* **Added voice toggle and change functionality**:
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
89
|
+
+ Removed `-v` command line switch
|
90
|
+
+ Added new Switch class for voice output
|
91
|
+
+ Added new method `change_voice` to toggle or change voice output
|
92
|
+
+ Updated `info` method to display current voice output if enabled
|
93
|
+
+ Updated `display_chat_help` method to include /voice command
|
51
94
|
* **Added expiring cache support**:
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
95
|
+
+ Added `Ollama::Utils::CacheFetcher` class for caching HTTP responses
|
96
|
+
+ Modified `Ollama::Utils::Fetcher` to use the new cache class
|
97
|
+
+ Updated `ollama_chat` script to use the cache when fetching sources
|
98
|
+
+ Added specs for the new cache fetcher class
|
56
99
|
* **Added change system prompt feature**:
|
57
|
-
|
58
|
-
|
59
|
-
|
100
|
+
+ Added `/system` command to change system prompt
|
101
|
+
+ Implemented `set_system_prompt` and `change_system_prompt` methods in `bin/ollama_chat`
|
102
|
+
+ Updated help messages in `README.md`
|
60
103
|
|
61
104
|
### Other Changes
|
62
105
|
|
63
106
|
* **Updated dependencies**:
|
64
|
-
|
65
|
-
|
107
|
+
+ Updated version of `xdg` gem to **7.0**
|
108
|
+
+ Added `xdg` dependency to Rakefile
|
66
109
|
* **Refactored error handling**:
|
67
|
-
|
68
|
-
|
110
|
+
+ Warn message updated to include more context about the error
|
111
|
+
+ `warn` statement now mentions "while pulling model"
|
69
112
|
* **Updated chat commands and added clipboard functionality**:
|
70
|
-
|
71
|
-
|
72
|
-
|
113
|
+
+ Added `/copy` command to copy last response to clipboard
|
114
|
+
+ Implemented `copy_to_clipboard` method in `ollama_chat`
|
115
|
+
+ Updated chat help display to include new `/copy` command
|
73
116
|
* **Refactored Ollama::Utils::Fetcher**:
|
74
|
-
|
75
|
-
|
117
|
+
+ Made instance methods private and only exposed class methods
|
118
|
+
+ Added `expose` method to `Ollama::Utils::FetcherSpec` for testing
|
76
119
|
* **Added version command to ollama chat binary**:
|
77
|
-
|
78
|
-
|
79
|
-
|
120
|
+
+ Added `version` method to print Ollama version and exit
|
121
|
+
+ Updated `$opts` string in `ollama` script to include `-V` option for version command
|
122
|
+
+ Added call to `version` method when `-V` option is used
|
80
123
|
* **Updated system prompt display**:
|
81
|
-
|
124
|
+
+ Changed `Ollama::Utils::Width.wrap` to `Ollama::Utils::ANSIMarkdown.parse` in `show_system_prompt` method
|
82
125
|
* **Added system prompt configuration via search_ui for ? argument value**:
|
83
|
-
|
84
|
-
|
85
|
-
|
126
|
+
+ Added `show_system_prompt` method to print configured system prompt
|
127
|
+
+ Modified `info` method to include system prompt in output
|
128
|
+
+ Implemented option `-s ?` to choose or specify system prompt
|
86
129
|
|
87
130
|
## 2024-09-26 v0.5.0
|
88
131
|
|
89
132
|
### New Features
|
90
133
|
|
91
134
|
* Add stdin substitution and variable expansion to `ollama_cli`:
|
92
|
-
|
93
|
-
|
94
|
-
|
135
|
+
+ Added support for `%{stdin}` in prompts, substituting with actual input
|
136
|
+
+ Added `-P` option to set prompt variables from command line arguments
|
137
|
+
+ Added handling of multiple placeholders in prompts
|
95
138
|
* Add proxy support to Ollama chat client:
|
96
|
-
|
139
|
+
+ Add `tins/xt/hash_union` gem to dependencies
|
97
140
|
+ Update `OllamaChatConfig` with new `proxy` option
|
98
141
|
+ Modify `http_options` method to include proxy and SSL verify peer options
|
99
142
|
based on config settings
|
@@ -125,7 +168,7 @@
|
|
125
168
|
+ Added support for displaying a specific number of messages with `/list
|
126
169
|
[n]`
|
127
170
|
* Update chat commands' quit functionality:
|
128
|
-
|
171
|
+
+ Moved `/quit` command to exit the program
|
129
172
|
* Refactor OllamaChatConfig web prompt:
|
130
173
|
+ Add `web` prompt to `OllamaChatConfig` class
|
131
174
|
+ Replace hardcoded content with variable `content`
|
@@ -155,10 +198,10 @@
|
|
155
198
|
### Refactoring
|
156
199
|
|
157
200
|
* Refactor `file_argument.rb` for better readability:
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
201
|
+
+ Update conditionals in Ollama::Utils::FileArgument module
|
202
|
+
+ Simplify logic with improved variable usage
|
203
|
+
+ Remove unnecessary elsif statement
|
204
|
+
+ Use consistent indentation and spacing throughout the code
|
162
205
|
* Refactor Redis-backed memory cache:
|
163
206
|
+ Removed `pre` and `unpre` methods from `Ollama::Documents` use mixin
|
164
207
|
instead.
|
@@ -166,12 +209,12 @@
|
|
166
209
|
### Documentation
|
167
210
|
|
168
211
|
* Update README.md to reflect changes in `ollama_chat` functionality.
|
169
|
-
|
170
|
-
|
171
|
-
|
212
|
+
+ Modified commands:
|
213
|
+
- `/import source` to import the source's content
|
214
|
+
- `/embed source` to embed the source's content
|
172
215
|
- `/summarize [n] source` to summarize the source's content in n words
|
173
216
|
- `/embedding` to toggle embedding paused or not
|
174
|
-
|
217
|
+
- `/embed source` to embed the source's content
|
175
218
|
|
176
219
|
### Dependencies and Date Updates
|
177
220
|
|
@@ -179,13 +222,13 @@
|
|
179
222
|
+ Added `logger` (~> **1.0**) and `json` (~> **2.0**) as runtime
|
180
223
|
dependencies to Rakefile and ollama-ruby.gemspec.
|
181
224
|
+ Updated date in ollama-ruby.gemspec from "2024-09-21" to "2024-09-22".
|
182
|
-
|
225
|
+
+ Added `require 'logger'` to lib/ollama.rb.
|
183
226
|
|
184
227
|
### Other Changes
|
185
228
|
|
186
229
|
* Add SSL no verify option to OllamaChatConfig and Utils::Fetcher:
|
187
|
-
|
188
|
-
|
230
|
+
+ Added `ssl_no_verify` option to OllamaChatConfig
|
231
|
+
+ Updated Utils::Fetcher to take an
|
189
232
|
|
190
233
|
## 2024-09-21 v0.4.0
|
191
234
|
|
@@ -218,20 +261,20 @@
|
|
218
261
|
## 2024-09-15 v0.3.2
|
219
262
|
|
220
263
|
* Add color support to chooser module:
|
221
|
-
|
264
|
+
+ Include `Term::ANSIColor` in `Ollama::Utils::Chooser` module
|
222
265
|
+ Use `blue`, `on_blue` ANSI color for selected item in query method
|
223
266
|
* Refactor summarize method to also import sources:
|
224
|
-
|
225
|
-
|
226
|
-
|
267
|
+
+ Added `content` variable to store result of `parse_source`
|
268
|
+
+ Replaced `or return` with explicit assignment and return
|
269
|
+
+ Added calls to `source_io.rewind` and `import_document`
|
227
270
|
* Add new test for `file_argument_spec.rb`
|
228
271
|
* Refactor tag list initialization and merging:
|
229
|
-
|
230
|
-
|
272
|
+
+ Use array literals for initializing tags lists
|
273
|
+
+ Use array literals for passing to merge method
|
231
274
|
* Update dependencies and dates in Rakefile and gemspec:
|
232
|
-
|
233
|
-
|
234
|
-
|
275
|
+
+ Removed '.utilsrc' from ignored files in Rakefile
|
276
|
+
+ Updated date in `ollama-ruby.gemspec` to "2024-09-13"
|
277
|
+
+ Removed 'utils' development dependency from `ollama-ruby.gemspec`
|
235
278
|
* Refactor `search_web` method to allow n parameter to be optional and default
|
236
279
|
to 1.
|
237
280
|
|
@@ -306,31 +349,31 @@
|
|
306
349
|
### Changes
|
307
350
|
|
308
351
|
* **Added Web Search Functionality to `ollama_chat`**
|
309
|
-
|
310
|
-
|
311
|
-
|
352
|
+
+ Added `/web` command to fetch search results from DuckDuckGo
|
353
|
+
+ Updated `/summarize` command to handle cases where summarization fails
|
354
|
+
+ Fix bug in parsing content type of source document
|
312
355
|
* **Refactored Options Class and Usage**
|
313
|
-
|
314
|
-
|
315
|
-
|
356
|
+
+ Renamed `options` variable to use `Options[]` method in ollama_chat script
|
357
|
+
+ Added `[](value)` method to Ollama::Options class for casting hashes
|
358
|
+
+ Updated options_spec.rb with tests for casting hashes and error handling
|
316
359
|
* **Refactored Web Search Command**
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
360
|
+
+ Added support for specifying a page number in `/web` command
|
361
|
+
+ Updated regular expression to match new format
|
362
|
+
+ Passed page number as an argument to `search_web` method
|
363
|
+
+ Updated content string to reference the query and sources correctly
|
321
364
|
* **DTO Class Changes**
|
322
|
-
|
323
|
-
|
365
|
+
+ Renamed `json_create` method to `from_hash` in Ollama::DTO class
|
366
|
+
+ Updated `as_json` method to remove now unnecessary hash creation
|
324
367
|
* **Message and Tool Spec Changes**
|
325
|
-
|
326
|
-
|
368
|
+
+ Removed `json_class` from JSON serialization in message_spec
|
369
|
+
+ Removed `json_class` from JSON serialization in tool_spec
|
327
370
|
* **Command Spec Changes**
|
328
|
-
|
371
|
+
+ Removed `json_class` from JSON serialization in various command specs (e.g. generate_spec, pull_spec, etc.)
|
329
372
|
* **Miscellaneous Changes**
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
373
|
+
+ Improved width calculation for text truncation
|
374
|
+
+ Updated FollowChat class to display evaluation statistics
|
375
|
+
+ Update OllamaChatConfig to use EOT instead of end for heredoc syntax
|
376
|
+
+ Add .keep file to tmp directory
|
334
377
|
|
335
378
|
## 2024-08-30 v0.1.0
|
336
379
|
|
@@ -339,18 +382,18 @@
|
|
339
382
|
#### Significant Changes
|
340
383
|
|
341
384
|
* **Document Splitting and Embedding Functionality**: Added `Ollama::Documents` class with methods for adding documents, checking existence, deleting documents, and finding similar documents.
|
342
|
-
|
343
|
-
|
385
|
+
+ Introduced two types of caches: `MemoryCache` and `RedisCache`
|
386
|
+
+ Implemented `SemanticSplitter` class to split text into sentences based on semantic similarity
|
344
387
|
* **Improved Ollama Chat Client**: Added support for document embeddings and web/file RAG
|
345
|
-
|
346
|
-
|
388
|
+
+ Allowed configuration per yaml file
|
389
|
+
+ Parse user input for URLs or files to send images to multimodal models
|
347
390
|
* **Redis Docker Service**: Set `REDIS_URL` environment variable to `redis://localhost:9736`
|
348
|
-
|
391
|
+
+ Added Redis service to `docker-compose.yml`
|
349
392
|
* **Status Display and Progress Updates**: Added infobar.label = response.status when available
|
350
|
-
|
351
|
-
|
393
|
+
+ Updated infobar with progress message on each call if total and completed are set
|
394
|
+
+ Display error message from response.error if present
|
352
395
|
* **Refactored Chat Commands**: Simplified regular expression patterns for `/pop`, `/save`, `/load`, and `/image` commands
|
353
|
-
|
396
|
+
+ Added whitespace to some command patterns for better readability
|
354
397
|
|
355
398
|
#### Other Changes
|
356
399
|
|
@@ -366,13 +409,13 @@
|
|
366
409
|
## 2024-08-16 v0.0.1
|
367
410
|
|
368
411
|
* **New Features**
|
369
|
-
|
370
|
-
|
412
|
+
+ Added missing options parameter to Embed command
|
413
|
+
+ Documented new `/api/embed` endpoint
|
371
414
|
* **Improvements**
|
372
|
-
|
415
|
+
+ Improved example in README.md
|
373
416
|
* **Code Refactoring**
|
374
|
-
|
375
|
-
|
417
|
+
+ Renamed `client` to `ollama` in client and command specs
|
418
|
+
+ Updated expectations to use `ollama` instead of `client`
|
376
419
|
|
377
420
|
## 2024-08-12 v0.0.0
|
378
421
|
|