gemini-ai 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Gemfile.lock +12 -10
- data/README.md +26 -4
- data/controllers/client.rb +11 -0
- data/gemini-ai.gemspec +1 -1
- data/static/gem.rb +1 -1
- data/template.md +25 -4
- metadata +4 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fa034b81983b8925267cdc2bb4cbf6170b7d5ecccfb26a705d70a1643f1e7ad
|
4
|
+
data.tar.gz: 077eec4e066836c80d8e0d6e26940086588876548f8d0e38b01a0a89aaf74646
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2be4160caa66645c8baa9519f69059caa36e4c699098e2138e713736d1f7a1aaba27d6ca9a62ba64ee350e313cea5c0bee27eaf9685f576a33527c0f837d563
|
7
|
+
data.tar.gz: f4561c6e6cef7cfc3daa6e2c8c534d03624993cfbce3f9a75ae4eff55b081de694aa30d261c891eaf0acf463b3fd883b48317d142856131fc8253957d0ef9ef5
|
data/Gemfile
CHANGED
@@ -8,6 +8,6 @@ group :test, :development do
|
|
8
8
|
gem 'dotenv', '~> 3.1', '>= 3.1.2'
|
9
9
|
gem 'pry-byebug', '~> 3.10', '>= 3.10.1'
|
10
10
|
gem 'rspec', '~> 3.13'
|
11
|
-
gem 'rubocop', '~> 1.
|
12
|
-
gem 'rubocop-rspec', '~> 3.0', '>= 3.0.
|
11
|
+
gem 'rubocop', '~> 1.65'
|
12
|
+
gem 'rubocop-rspec', '~> 3.0', '>= 3.0.3'
|
13
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gemini-ai (4.
|
4
|
+
gemini-ai (4.2.0)
|
5
5
|
event_stream_parser (~> 1.0)
|
6
|
-
faraday (~> 2.
|
6
|
+
faraday (~> 2.10)
|
7
7
|
faraday-typhoeus (~> 1.1)
|
8
8
|
googleauth (~> 1.8)
|
9
9
|
typhoeus (~> 1.4, >= 1.4.1)
|
@@ -22,8 +22,9 @@ GEM
|
|
22
22
|
ethon (0.16.0)
|
23
23
|
ffi (>= 1.15.0)
|
24
24
|
event_stream_parser (1.0.0)
|
25
|
-
faraday (2.
|
25
|
+
faraday (2.10.0)
|
26
26
|
faraday-net_http (>= 2.0, < 3.2)
|
27
|
+
logger
|
27
28
|
faraday-net_http (3.1.0)
|
28
29
|
net-http
|
29
30
|
faraday-typhoeus (1.1.0)
|
@@ -43,13 +44,14 @@ GEM
|
|
43
44
|
jwt (2.8.2)
|
44
45
|
base64
|
45
46
|
language_server-protocol (3.17.0.3)
|
47
|
+
logger (1.6.0)
|
46
48
|
method_source (1.1.0)
|
47
49
|
multi_json (1.15.0)
|
48
50
|
net-http (0.4.1)
|
49
51
|
uri
|
50
52
|
os (1.1.4)
|
51
53
|
parallel (1.25.1)
|
52
|
-
parser (3.3.
|
54
|
+
parser (3.3.4.0)
|
53
55
|
ast (~> 2.4.1)
|
54
56
|
racc
|
55
57
|
pry (0.14.2)
|
@@ -62,7 +64,7 @@ GEM
|
|
62
64
|
racc (1.8.0)
|
63
65
|
rainbow (3.1.1)
|
64
66
|
regexp_parser (2.9.2)
|
65
|
-
rexml (3.3.
|
67
|
+
rexml (3.3.2)
|
66
68
|
strscan
|
67
69
|
rspec (3.13.0)
|
68
70
|
rspec-core (~> 3.13.0)
|
@@ -77,20 +79,20 @@ GEM
|
|
77
79
|
diff-lcs (>= 1.2.0, < 2.0)
|
78
80
|
rspec-support (~> 3.13.0)
|
79
81
|
rspec-support (3.13.1)
|
80
|
-
rubocop (1.
|
82
|
+
rubocop (1.65.0)
|
81
83
|
json (~> 2.3)
|
82
84
|
language_server-protocol (>= 3.17.0)
|
83
85
|
parallel (~> 1.10)
|
84
86
|
parser (>= 3.3.0.2)
|
85
87
|
rainbow (>= 2.2.2, < 4.0)
|
86
|
-
regexp_parser (>=
|
88
|
+
regexp_parser (>= 2.4, < 3.0)
|
87
89
|
rexml (>= 3.2.5, < 4.0)
|
88
90
|
rubocop-ast (>= 1.31.1, < 2.0)
|
89
91
|
ruby-progressbar (~> 1.7)
|
90
92
|
unicode-display_width (>= 2.4.0, < 3.0)
|
91
93
|
rubocop-ast (1.31.3)
|
92
94
|
parser (>= 3.3.1.0)
|
93
|
-
rubocop-rspec (3.0.
|
95
|
+
rubocop-rspec (3.0.3)
|
94
96
|
rubocop (~> 1.61)
|
95
97
|
ruby-progressbar (1.13.0)
|
96
98
|
signet (0.19.0)
|
@@ -112,8 +114,8 @@ DEPENDENCIES
|
|
112
114
|
gemini-ai!
|
113
115
|
pry-byebug (~> 3.10, >= 3.10.1)
|
114
116
|
rspec (~> 3.13)
|
115
|
-
rubocop (~> 1.
|
116
|
-
rubocop-rspec (~> 3.0, >= 3.0.
|
117
|
+
rubocop (~> 1.65)
|
118
|
+
rubocop-rspec (~> 3.0, >= 3.0.3)
|
117
119
|
|
118
120
|
BUNDLED WITH
|
119
121
|
2.4.22
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ A Ruby Gem for interacting with [Gemini](https://deepmind.google/technologies/ge
|
|
9
9
|
## TL;DR and Quick Start
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'gemini-ai', '~> 4.
|
12
|
+
gem 'gemini-ai', '~> 4.2.0'
|
13
13
|
```
|
14
14
|
|
15
15
|
```ruby
|
@@ -113,6 +113,7 @@ Result:
|
|
113
113
|
- [Back-and-Forth Conversations](#back-and-forth-conversations)
|
114
114
|
- [Safety Settings](#safety-settings)
|
115
115
|
- [System Instructions](#system-instructions)
|
116
|
+
- [Counting Tokens](#counting-tokens)
|
116
117
|
- [JSON Format Responses](#json-format-responses)
|
117
118
|
- [JSON Schema](#json-schema)
|
118
119
|
- [Models That Support JSON](#models-that-support-json)
|
@@ -137,11 +138,11 @@ Result:
|
|
137
138
|
### Installing
|
138
139
|
|
139
140
|
```sh
|
140
|
-
gem install gemini-ai -v 4.
|
141
|
+
gem install gemini-ai -v 4.2.0
|
141
142
|
```
|
142
143
|
|
143
144
|
```sh
|
144
|
-
gem 'gemini-ai', '~> 4.
|
145
|
+
gem 'gemini-ai', '~> 4.2.0'
|
145
146
|
```
|
146
147
|
|
147
148
|
### Credentials
|
@@ -991,6 +992,27 @@ Output:
|
|
991
992
|
Meow! I'm Neko, a fluffy and playful cat. :3
|
992
993
|
```
|
993
994
|
|
995
|
+
### Counting Tokens
|
996
|
+
|
997
|
+
You can [count tokens](https://ai.google.dev/gemini-api/docs/tokens#count-tokens) and preview how many tokens a request is expected to consume:
|
998
|
+
|
999
|
+
```ruby
|
1000
|
+
client.count_tokens(
|
1001
|
+
{ contents: { role: 'user', parts: { text: 'hi!' } } }
|
1002
|
+
)
|
1003
|
+
```
|
1004
|
+
|
1005
|
+
Output for Generative Language API:
|
1006
|
+
```ruby
|
1007
|
+
{ 'totalTokens' => 3 }
|
1008
|
+
```
|
1009
|
+
|
1010
|
+
Output for Vertex AI API:
|
1011
|
+
|
1012
|
+
```ruby
|
1013
|
+
{ 'totalTokens' => 2, 'totalBillableCharacters' => 3 }
|
1014
|
+
```
|
1015
|
+
|
994
1016
|
### JSON Format Responses
|
995
1017
|
|
996
1018
|
> _As of the writing of this README, only the `vertex-ai-api` service and `gemini` models version `1.5` support this feature._
|
@@ -1418,7 +1440,7 @@ gem build gemini-ai.gemspec
|
|
1418
1440
|
|
1419
1441
|
gem signin
|
1420
1442
|
|
1421
|
-
gem push gemini-ai-4.
|
1443
|
+
gem push gemini-ai-4.2.0.gem
|
1422
1444
|
```
|
1423
1445
|
|
1424
1446
|
### Updating the README
|
data/controllers/client.rb
CHANGED
@@ -109,6 +109,17 @@ module Gemini
|
|
109
109
|
result
|
110
110
|
end
|
111
111
|
|
112
|
+
def count_tokens(payload, server_sent_events: nil, &callback)
|
113
|
+
result = request(
|
114
|
+
"#{@model_address}:countTokens", payload,
|
115
|
+
server_sent_events:, &callback
|
116
|
+
)
|
117
|
+
|
118
|
+
return result.first if result.is_a?(Array) && result.size == 1
|
119
|
+
|
120
|
+
result
|
121
|
+
end
|
122
|
+
|
112
123
|
def embed_content(payload, server_sent_events: nil, &callback)
|
113
124
|
result = request(
|
114
125
|
"#{@model_address}:embedContent", payload,
|
data/gemini-ai.gemspec
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.require_paths = ['ports/dsl']
|
31
31
|
|
32
32
|
spec.add_dependency 'event_stream_parser', '~> 1.0'
|
33
|
-
spec.add_dependency 'faraday', '~> 2.
|
33
|
+
spec.add_dependency 'faraday', '~> 2.10'
|
34
34
|
spec.add_dependency 'faraday-typhoeus', '~> 1.1'
|
35
35
|
|
36
36
|
# Before upgrading, check this:
|
data/static/gem.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Gemini
|
4
4
|
GEM = {
|
5
5
|
name: 'gemini-ai',
|
6
|
-
version: '4.
|
6
|
+
version: '4.2.0',
|
7
7
|
author: 'gbaptista',
|
8
8
|
summary: "Interact with Google's Gemini AI.",
|
9
9
|
description: "A Ruby Gem for interacting with Gemini through Vertex AI, Generative Language API, or AI Studio, Google's generative AI services.",
|
data/template.md
CHANGED
@@ -9,7 +9,7 @@ A Ruby Gem for interacting with [Gemini](https://deepmind.google/technologies/ge
|
|
9
9
|
## TL;DR and Quick Start
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'gemini-ai', '~> 4.
|
12
|
+
gem 'gemini-ai', '~> 4.2.0'
|
13
13
|
```
|
14
14
|
|
15
15
|
```ruby
|
@@ -88,11 +88,11 @@ Result:
|
|
88
88
|
### Installing
|
89
89
|
|
90
90
|
```sh
|
91
|
-
gem install gemini-ai -v 4.
|
91
|
+
gem install gemini-ai -v 4.2.0
|
92
92
|
```
|
93
93
|
|
94
94
|
```sh
|
95
|
-
gem 'gemini-ai', '~> 4.
|
95
|
+
gem 'gemini-ai', '~> 4.2.0'
|
96
96
|
```
|
97
97
|
|
98
98
|
### Credentials
|
@@ -942,6 +942,27 @@ Output:
|
|
942
942
|
Meow! I'm Neko, a fluffy and playful cat. :3
|
943
943
|
```
|
944
944
|
|
945
|
+
### Counting Tokens
|
946
|
+
|
947
|
+
You can [count tokens](https://ai.google.dev/gemini-api/docs/tokens#count-tokens) and preview how many tokens a request is expected to consume:
|
948
|
+
|
949
|
+
```ruby
|
950
|
+
client.count_tokens(
|
951
|
+
{ contents: { role: 'user', parts: { text: 'hi!' } } }
|
952
|
+
)
|
953
|
+
```
|
954
|
+
|
955
|
+
Output for Generative Language API:
|
956
|
+
```ruby
|
957
|
+
{ 'totalTokens' => 3 }
|
958
|
+
```
|
959
|
+
|
960
|
+
Output for Vertex AI API:
|
961
|
+
|
962
|
+
```ruby
|
963
|
+
{ 'totalTokens' => 2, 'totalBillableCharacters' => 3 }
|
964
|
+
```
|
965
|
+
|
945
966
|
### JSON Format Responses
|
946
967
|
|
947
968
|
> _As of the writing of this README, only the `vertex-ai-api` service and `gemini` models version `1.5` support this feature._
|
@@ -1369,7 +1390,7 @@ gem build gemini-ai.gemspec
|
|
1369
1390
|
|
1370
1391
|
gem signin
|
1371
1392
|
|
1372
|
-
gem push gemini-ai-4.
|
1393
|
+
gem push gemini-ai-4.2.0.gem
|
1373
1394
|
```
|
1374
1395
|
|
1375
1396
|
### Updating the README
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemini-ai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gbaptista
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: event_stream_parser
|
@@ -30,20 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 2.9.2
|
33
|
+
version: '2.10'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2.
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 2.9.2
|
40
|
+
version: '2.10'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: faraday-typhoeus
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|