omniai-mistral 1.3.0 → 1.6.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 +4 -4
- data/Gemfile +1 -1
- data/README.md +8 -19
- data/lib/omniai/mistral/chat.rb +2 -1
- data/lib/omniai/mistral/client.rb +3 -2
- data/lib/omniai/mistral/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 253b0ae91739077ea70a562cad40ce7c16ead3a62a7650ae7511f4680e34c96b
|
4
|
+
data.tar.gz: bfed7d64757f41170581aafdc1726571bb399b2a6ffd845dff9062a2ebf21c7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4dee74fcf4169cf99adeaa5239f9c6afa33f90b007b9d8c5e8368c332ab8e6a4b291e482d55429633957a81c40b2871b2e57ecdd98e99eb233fecd101d57ad6
|
7
|
+
data.tar.gz: 2d3256886c38c5823cf7fcdf2d6d377c2128cc375624aa7c596dd9bb6d308d780a760917b6c6487c18b46a2dbb82636eb05bb82cd692b63146963ecd4b58956f
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -46,21 +46,10 @@ completion.choice.message.content # 'Why did the chicken cross the road? To get
|
|
46
46
|
```
|
47
47
|
|
48
48
|
```ruby
|
49
|
-
completion = client.chat
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
completion.choice.message.content # 'No.'
|
54
|
-
```
|
55
|
-
|
56
|
-
```ruby
|
57
|
-
completion = client.chat([
|
58
|
-
{
|
59
|
-
role: OmniAI::Chat::Role::SYSTEM,
|
60
|
-
content: 'You are a helpful assistant.'
|
61
|
-
},
|
62
|
-
'What is the capital of Canada?',
|
63
|
-
])
|
49
|
+
completion = client.chat do |prompt|
|
50
|
+
prompt.system('You are a helpful assistant.')
|
51
|
+
prompt.user('What is the capital of Canada?')
|
52
|
+
end
|
64
53
|
completion.choice.message.content # 'The capital of Canada is Ottawa.'
|
65
54
|
```
|
66
55
|
|
@@ -104,10 +93,10 @@ client.chat('Be poetic.', stream:)
|
|
104
93
|
`format` takes an optional symbol (`:json`) and that sets the `response_format` to `json_object`:
|
105
94
|
|
106
95
|
```ruby
|
107
|
-
completion = client.chat(
|
108
|
-
|
109
|
-
|
110
|
-
|
96
|
+
completion = client.chat(format: :json) do |prompt|
|
97
|
+
prompt.system(OmniAI::Chat::JSON_PROMPT)
|
98
|
+
prompt.user('What is the name of the drummer for the Beatles?')
|
99
|
+
end
|
111
100
|
JSON.parse(completion.choice.message.content) # { "name": "Ringo" }
|
112
101
|
```
|
113
102
|
|
data/lib/omniai/mistral/chat.rb
CHANGED
@@ -32,11 +32,12 @@ module OmniAI
|
|
32
32
|
# @return [Hash]
|
33
33
|
def payload
|
34
34
|
OmniAI::Mistral.config.chat_options.merge({
|
35
|
-
messages
|
35
|
+
messages: @prompt.serialize,
|
36
36
|
model: @model,
|
37
37
|
stream: @stream.nil? ? nil : !@stream.nil?,
|
38
38
|
temperature: @temperature,
|
39
39
|
response_format: (JSON_RESPONSE_FORMAT if @format.eql?(:json)),
|
40
|
+
tools: @tools&.map(&:prepare),
|
40
41
|
}).compact
|
41
42
|
end
|
42
43
|
|
@@ -49,10 +49,11 @@ module OmniAI
|
|
49
49
|
# @param format [Symbol] optional :text or :json
|
50
50
|
# @param temperature [Float, nil] optional
|
51
51
|
# @param stream [Proc, nil] optional
|
52
|
+
# @param tools [Array<OmniAI::Tool>, nil] optional
|
52
53
|
#
|
53
54
|
# @return [OmniAI::Chat::Completion]
|
54
|
-
def chat(messages, model: Chat::Model::MEDIUM, temperature: nil, format: nil, stream: nil)
|
55
|
-
Chat.process!(messages, model:, temperature:, format:, stream:, client: self)
|
55
|
+
def chat(messages, model: Chat::Model::MEDIUM, temperature: nil, format: nil, stream: nil, tools: nil)
|
56
|
+
Chat.process!(messages, model:, temperature:, format:, stream:, tools:, client: self)
|
56
57
|
end
|
57
58
|
end
|
58
59
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniai-mistral
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Sylvestre
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: event_stream_parser
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
|
-
rubygems_version: 3.5.
|
91
|
+
rubygems_version: 3.5.14
|
92
92
|
signing_key:
|
93
93
|
specification_version: 4
|
94
94
|
summary: A generalized framework for interacting with Mistral
|