async-ollama 0.6.0 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3515f4f2edf781476a1e1f99287a04d9772fa67e8db6993bc0956727df55be08
4
- data.tar.gz: e3ee2b84a8228d61154f24115679b9d9f18a8bfb79057c30cd0e3627fcc72bbc
3
+ metadata.gz: cf57f6eea0f76d479dd4775772fe20d43a85d70b3e06869ae842923fb9e7bb7f
4
+ data.tar.gz: 18d439e6c5d24af612d67deaf2221b83485b401c8a39f2e49fe96c4540fe0829
5
5
  SHA512:
6
- metadata.gz: ca26d093fd6dd8a406937e5bb87eb2fe3fb248600bebe89616b2699be5a405c9d3531f2e81c651477e928c685f9c6fcb4372970af668dd98360810fa9bcd0419
7
- data.tar.gz: 710ee1a718bf0002f7f7b846a967626f708572f353b86ccca58ca3592ab76783fae588a7223902ce5bcf62edf31ff8f5e096bc7a811e641c95f09e2d1e6aa575
6
+ metadata.gz: 9742560a8fc515088f6a9e15008892e001d84b0fb439af817a2a78885a9cfed4ef969ac73801e942e2bf6e830b2c844207f80a4a1af2889218207f0aa516ebf2
7
+ data.tar.gz: 8a9d307856bfdf9bf883222a036f505e2e43f1dda370b7231ad84ffd2d5e2f1db8e03c3ddf488198b295e2254a1979b712fe966d9e82774775ebe11c5e4e149f
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2024, by Samuel Williams.
5
+
6
+ def initialize(...)
7
+ super
8
+
9
+ require "async/ollama/client"
10
+ end
11
+
12
+ def models
13
+ Async::Ollama::Client.open do |client|
14
+ client.models.names
15
+ end
16
+ end
17
+
18
+ # Pulls the specified models from the Ollama API. If no models are specified, but there is a default model, it will pull that one.
19
+ # @parameter models [Array(String)] The names of the models to pull.
20
+ def pull(models: [Async::Ollama::MODEL])
21
+ Async::Ollama::Client.open do |client|
22
+ models.each do |model|
23
+ client.pull(model) do |response|
24
+ response.each do |line|
25
+ puts line
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -9,7 +9,7 @@ require_relative "wrapper"
9
9
  module Async
10
10
  module Ollama
11
11
  # Represents a generated response from the Ollama API.
12
- class Generate < Async::REST::Representation[Wrapper]
12
+ class Generate < Async::REST::Representation[GenerateWrapper]
13
13
  # @returns [String | nil] The generated response, or nil if not present.
14
14
  def response
15
15
  self.value[:response]
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module Ollama
8
- VERSION = "0.6.0"
8
+ VERSION = "0.8.0"
9
9
  end
10
10
  end
@@ -139,6 +139,24 @@ module Async
139
139
  content_type = response.headers["content-type"]
140
140
  media_type = content_type.split(";").first
141
141
 
142
+ case media_type
143
+ when APPLICATION_JSON
144
+ return Async::REST::Wrapper::JSON::Parser
145
+ when APPLICATION_JSON_STREAM
146
+ return StreamingParser
147
+ end
148
+ end
149
+ end
150
+
151
+ # Wraps generate-specific HTTP responses for the Ollama API, selecting the appropriate parser.
152
+ class GenerateWrapper < Wrapper
153
+ # Selects the appropriate parser for the generate HTTP response.
154
+ # @parameter response [Protocol::HTTP::Response] The HTTP response object.
155
+ # @returns [Class] The parser class to use.
156
+ def parser_for(response)
157
+ content_type = response.headers["content-type"]
158
+ media_type = content_type.split(";").first
159
+
142
160
  case media_type
143
161
  when APPLICATION_JSON
144
162
  return Async::REST::Wrapper::JSON::Parser
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-ollama
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -70,6 +70,7 @@ executables: []
70
70
  extensions: []
71
71
  extra_rdoc_files: []
72
72
  files:
73
+ - bake/async/ollama.rb
73
74
  - lib/async/ollama.rb
74
75
  - lib/async/ollama/chat.rb
75
76
  - lib/async/ollama/client.rb
metadata.gz.sig CHANGED
Binary file