intelligence 0.8.0 → 1.0.0.beta01
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02df79612b47068ee3792e78566e94160741db46f22c5ff8a97947a09872fe5f
|
4
|
+
data.tar.gz: e2bf793c4bf2feb17798e0a59bdc2272cdac9e95b9cd2c31b386d973601bfcdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12bf185efa0bbd063699fc25cd33ada8729a6a95fda62ec4535319dc88b92764fb43677421cfb714f02aa766ec3e52740f018241f1632f0ea938c08543f0e62b
|
7
|
+
data.tar.gz: 221871ceb024b137d2e77810ea4ef840bbe161248a72dd69c8d184af4ce176664993dbb6d3d36bc91bbb89b3c2ed8515a2692f681d7e82894c147d83e7e2bda3
|
@@ -35,6 +35,19 @@ module Intelligence
|
|
35
35
|
response_mime_type String, as: :responseMimeType
|
36
36
|
response_schema as: :responseSchema
|
37
37
|
|
38
|
+
# google tools setup
|
39
|
+
tools do
|
40
|
+
google_search as: :google_search_retrieval do
|
41
|
+
dynamic_retrieval as: :dynamic_retrieval_config, default: {} do
|
42
|
+
mode String, default: 'MODE_DYNAMIC'
|
43
|
+
threshold Float, as: :dynamic_threshold, in: 0..1, default: 0.3
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
code_execution do
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
38
51
|
# google specific tool configuration
|
39
52
|
tool_configuration as: :tool_config do
|
40
53
|
function_calling as: :function_calling_config do
|
@@ -61,16 +61,33 @@ module Intelligence
|
|
61
61
|
# discard properties not part of the google generationConfig schema
|
62
62
|
gc.delete( :model )
|
63
63
|
gc.delete( :stream )
|
64
|
-
|
64
|
+
|
65
|
+
# googlify tools
|
66
|
+
tools = gc.delete( :tools )
|
67
|
+
if tools&.any?
|
68
|
+
tools = tools.then do | tools_object |
|
69
|
+
tools_array ||= []
|
70
|
+
tools_object.each { | key, value | tools_array << { key => value } }
|
71
|
+
tools_array
|
72
|
+
end
|
73
|
+
end
|
74
|
+
tool_functions = to_google_tools( conversation[ :tools ] )
|
75
|
+
if tool_functions&.any?
|
76
|
+
tools ||= {}
|
77
|
+
tools[ :function_declarations ] ||= []
|
78
|
+
tools[ :function_declarations ].concat( tool_functions )
|
79
|
+
end
|
80
|
+
|
65
81
|
# googlify tool configuration
|
66
82
|
if tool_config = gc.delete( :tool_config )
|
67
83
|
mode = tool_config[ :function_calling_config ]&.[]( :mode )
|
68
84
|
tool_config[ :function_calling_config ][ :mode ] = mode.to_s.upcase if mode
|
69
85
|
end
|
70
|
-
|
86
|
+
|
71
87
|
result = {}
|
72
88
|
result[ :generationConfig ] = gc
|
73
|
-
result[ :
|
89
|
+
result[ :tools ] = tools if tools
|
90
|
+
result[ :tool_config ] = tool_config if tools && tool_config
|
74
91
|
|
75
92
|
# construct the system prompt in the form of the google schema
|
76
93
|
system_instructions = to_google_system_message( conversation[ :system_message ] )
|
@@ -163,10 +180,6 @@ module Intelligence
|
|
163
180
|
|
164
181
|
end
|
165
182
|
|
166
|
-
tools_attributes = to_google_tools( conversation[ :tools ] )
|
167
|
-
result[ :tools ] = [ { function_declarations: tools_attributes } ] \
|
168
|
-
if tools_attributes&.any?
|
169
|
-
|
170
183
|
JSON.generate( result )
|
171
184
|
end
|
172
185
|
|
@@ -40,9 +40,8 @@ module Intelligence
|
|
40
40
|
end
|
41
41
|
logit_bias
|
42
42
|
logprobs [ TrueClass, FalseClass ]
|
43
|
+
top_logprobs Integer
|
43
44
|
modalities String, array: true
|
44
|
-
# the parallel_tool_calls parameter is only allowed when 'tools' are specified
|
45
|
-
parallel_tool_calls [ TrueClass, FalseClass ]
|
46
45
|
response_format do
|
47
46
|
# 'text' and 'json_schema' are the only supported types
|
48
47
|
type Symbol, in: [ :text, :json_schema ]
|
@@ -52,9 +51,34 @@ module Intelligence
|
|
52
51
|
stream_options do
|
53
52
|
include_usage [ TrueClass, FalseClass ]
|
54
53
|
end
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
user
|
55
|
+
|
56
|
+
# open ai tool configuration; this allows you to enable build in tools ( currently
|
57
|
+
# that's just 'code_interpreter' )
|
58
|
+
#
|
59
|
+
# tool :code_interpreter
|
60
|
+
#
|
61
|
+
#tool array: true, as: :tools, arguments: :type
|
62
|
+
# type Symbol
|
63
|
+
#end
|
64
|
+
|
65
|
+
# open ai tool choice configuration
|
66
|
+
#
|
67
|
+
# `tool_choice :none`
|
68
|
+
# or
|
69
|
+
# ```
|
70
|
+
# tool_choice :function do
|
71
|
+
# function :my_function
|
72
|
+
# end
|
73
|
+
# ```
|
74
|
+
tool_choice arguments: :type do
|
75
|
+
type Symbol, in: [ :none, :auto, :required ]
|
76
|
+
function arguments: :name do
|
77
|
+
name Symbol
|
78
|
+
end
|
79
|
+
end
|
80
|
+
# the parallel_tool_calls parameter is only allowed when 'tools' are specified
|
81
|
+
parallel_tool_calls [ TrueClass, FalseClass ]
|
58
82
|
|
59
83
|
end
|
60
84
|
|
data/lib/intelligence/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intelligence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta01
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristoph Cichocki-Romanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|