net-llm 0.3.0 → 0.4.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: 5fc7c8401eba4ab7b254b1247280c97f61db7fd7ed9b562c90bae0bc4066fbbc
4
- data.tar.gz: a74469b7086118a424b20f688a1ed899a28cb8652bbc5683c65d5bfba8d748ea
3
+ metadata.gz: 3a2377d518ae361463c292e8543a1a239a93943dcc64960354769a4bf06b12f6
4
+ data.tar.gz: 2f4c4da04122b0138bea3c1f57639951d40a4b32307b0c184dcdcad7f6faac14
5
5
  SHA512:
6
- metadata.gz: fcbb8722b6d6c2d9414ce49ded2a4abff7da0051e924483f6900676d6602ae64f5c1437f152b025b4a84a7c1700a2c9874254521f9b39206ab757955e18e042f
7
- data.tar.gz: bea9a981fead23269fdc12f0012030187dfbd7da1bc444a8d23eee75fe4eba1dae68a9f1570e54352a8fe3c84bd3abd1d6563b88612342d48ffd425fbb6b95d4
6
+ metadata.gz: 89ea98f7df113797338c601d5fd47864bb0311f2923d1e8ab6bc349e399f998d77cc434bea635b40e8869852b557d87d3ee7cf113ddb20e01122c6a7d5155f1c
7
+ data.tar.gz: a75047b2104fd0d5d36e3bad3c1ea2a50d6f0930dcb76bc8aad2ffbc7faeec8e77373fe146c8a50f11a9ee47f53d3c51729c7dbfb86f9f3d520c2c8a40f142ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.4.0] - 2025-10-15
4
+ ### Added
5
+ - Added tool/function calling support to Ollama provider
6
+ - Ollama `chat` method now accepts optional `tools` parameter matching OpenAI signature
7
+ - Tools work in both streaming and non-streaming modes
8
+ - Added comprehensive test coverage for tool functionality
9
+
10
+ ### Changed
11
+ - Updated README with Ollama tools example
12
+ - Updated API coverage documentation
13
+
14
+ ## [0.3.1] - 2025-10-08
15
+ ### Fixed
16
+ - Added missing net-hippie runtime dependency to gemspec
17
+
3
18
  ## [0.3.0] - 2025-10-08
4
19
  ### Changed
5
20
  - Refactored all providers to use net-hippie HTTP client
data/README.md CHANGED
@@ -87,6 +87,29 @@ response = client.chat(messages)
87
87
  puts response['message']['content']
88
88
  ```
89
89
 
90
+ #### With Tools
91
+
92
+ ```ruby
93
+ tools = [
94
+ {
95
+ type: 'function',
96
+ function: {
97
+ name: 'get_weather',
98
+ description: 'Get current weather',
99
+ parameters: {
100
+ type: 'object',
101
+ properties: {
102
+ location: { type: 'string' }
103
+ },
104
+ required: ['location']
105
+ }
106
+ }
107
+ }
108
+ ]
109
+
110
+ response = client.chat(messages, tools)
111
+ ```
112
+
90
113
  #### Streaming
91
114
 
92
115
  ```ruby
@@ -195,7 +218,7 @@ Streaming methods still raise exceptions on HTTP errors.
195
218
  - `/v1/embeddings`
196
219
 
197
220
  ### Ollama
198
- - `/api/chat` (with streaming)
221
+ - `/api/chat` (with streaming and tools)
199
222
  - `/api/generate` (with streaming)
200
223
  - `/api/embed`
201
224
  - `/api/tags`
@@ -11,9 +11,10 @@ module Net
11
11
  @http = http
12
12
  end
13
13
 
14
- def chat(messages, &block)
14
+ def chat(messages, tools = [], &block)
15
15
  url = build_url("/api/chat")
16
16
  payload = { model: model, messages: messages, stream: block_given? }
17
+ payload[:tools] = tools unless tools.empty?
17
18
 
18
19
  if block_given?
19
20
  stream_request(url, payload, &block)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Net
4
4
  module Llm
5
- VERSION = "0.3.0"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
@@ -24,7 +24,7 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '2.0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: uri
27
+ name: net-hippie
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
@@ -38,19 +38,19 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: net-http
41
+ name: uri
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.6'
46
+ version: '1.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: '0.6'
53
+ version: '1.0'
54
54
  description: A minimal Ruby gem providing interfaces to connect to OpenAI, Ollama,
55
55
  and Anthropic (Claude) LLM APIs
56
56
  email: