omniai-mistral 2.2.1 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7a35ae973ff0d617d3ed60a0de091cc3f8d0f68c953c4da916196a586a79d52
4
- data.tar.gz: 621c0ea7b2113d5eaa4d9a2c1017186cbe62e2d84ace00334aa19f426060e76a
3
+ metadata.gz: 1bc8a45c833f29fb842620151329f035ee20d2e73c59175f60af94a71ad07ce0
4
+ data.tar.gz: '093e5afa415c3d53f0c0712a0c6e8ef4c5aac9b8905ba742f490e0bfb8a152a5'
5
5
  SHA512:
6
- metadata.gz: 9fb5ff6679ca6b3e5bc4b4f3e4c28ca5e94c64222d77245b25b25570cce1fa78dc9810558bb9a03175ebf2e900d4199c3f9d6c9b0e4e94fd9de93f619882356d
7
- data.tar.gz: d55d8e377ccbe58bcf2d6cba89abee9a59529d2ef477cb800930b57114603d4b6caad9f4e0775f3f412b2256cf5491f2593dcf0c042df43f2c85fa44bcd17cdc
6
+ metadata.gz: 4d52f29709b234224ff7d46c107c64d1108ab2a8ecbc8677aa8a1f0752b63a9bb9319c365cea9cba50b1af32e055bad531bd33b70480a8a3f7650508b47d0dd7
7
+ data.tar.gz: 520aefd5038791aba93ec3493513d978690333750bb0835b290a99efeeefb0b47609aede98e89ab9a22d765c86e4ada05f9c8050737c20bb4cca121777919c14
@@ -12,13 +12,22 @@ module OmniAI
12
12
  # chat.completion({ role: 'user', content: 'Tell me a joke.' })
13
13
  # chat.completion([{ role: 'system', content: 'Tell me a joke.' }])
14
14
  class Chat < OmniAI::Chat
15
+ module ResponseFormat
16
+ TEXT_TYPE = "text"
17
+ JSON_TYPE = "json_object"
18
+ SCHEMA_TYPE = "json_schema"
19
+ end
20
+
15
21
  module Model
16
22
  MISTRAL_SMALL_2402 = "mistral-small-2402" # LEGACY
17
23
  MISTRAL_SMALL_2409 = "mistral-small-2409" # LEGACY
18
- MISTRAL_SMALL_2501 = "mistral-small-2501"
24
+ MISTRAL_SMALL_2501 = "mistral-small-2501" # LEGACY
25
+ MISTRAL_SMALL_2503 = "mistral-small-2503" # LEGACY
19
26
  MISTRAL_SMALL_LATEST = "mistral-small-latest"
20
27
  MISTRAL_MEDIUM_2312 = "mistral-medium-2312" # LEGACY
21
- MISTRAL_MEDIUM_LATEST = "mistral-medium-latest" # LEGACY
28
+ MISTRAL_MEDIUM_2505 = "mistral-medium-2505"
29
+ MISTRAL_MEDIUM_LATEST = "mistral-medium-latest"
30
+ MISTRLA_LARGE_2402 = "mistral-large-2402" # LEGACY
22
31
  MISTRAL_LARGE_2411 = "mistral-large-2411"
23
32
  MISTRAL_LARGE_LATEST = "mistral-large-latest"
24
33
  CODESTRAL_2405 = "codestral-2405"
@@ -33,13 +42,13 @@ module OmniAI
33
42
  PIXTRAL_LARGE_2411 = "pixtral-large-2411"
34
43
  PIXTRAL_LARGE_LATEST = "pixtral-large-latest"
35
44
  SMALL = MISTRAL_SMALL_LATEST
36
- MEDIUM = MISTRAL_MEDIUM_LATEST # LEGACY
45
+ MEDIUM = MISTRAL_MEDIUM_LATEST
37
46
  LARGE = MISTRAL_LARGE_LATEST
38
47
  PIXTRAL = PIXTRAL_LARGE_LATEST
39
48
  CODESTRAL = CODESTRAL_LATEST
40
49
  end
41
50
 
42
- DEFAULT_MODEL = Model::PIXTRAL_LARGE_LATEST
51
+ DEFAULT_MODEL = Model::MISTRAL_MEDIUM_LATEST
43
52
 
44
53
  module Role
45
54
  ASSISTANT = "assistant"
@@ -47,8 +56,6 @@ module OmniAI
47
56
  SYSTEM = "system"
48
57
  end
49
58
 
50
- JSON_RESPONSE_FORMAT = { type: "json_object" }.freeze
51
-
52
59
  protected
53
60
 
54
61
  # @return [Hash]
@@ -58,7 +65,7 @@ module OmniAI
58
65
  model: @model,
59
66
  stream: stream? || nil,
60
67
  temperature: @temperature,
61
- response_format: (JSON_RESPONSE_FORMAT if @format.eql?(:json)),
68
+ response_format:,
62
69
  tools: (@tools.map(&:serialize) if @tools&.any?),
63
70
  }).compact
64
71
  end
@@ -67,6 +74,20 @@ module OmniAI
67
74
  def path
68
75
  "/#{OmniAI::Mistral::Client::VERSION}/chat/completions"
69
76
  end
77
+
78
+ # @raise [ArgumentError]
79
+ #
80
+ # @return [Hash, nil]
81
+ def response_format
82
+ return if @format.nil?
83
+
84
+ case @format
85
+ when :text then { type: ResponseFormat::TEXT_TYPE }
86
+ when :json then { type: ResponseFormat::JSON_TYPE }
87
+ when OmniAI::Schema::Format then { type: ResponseFormat::SCHEMA_TYPE, json_schema: @format.serialize }
88
+ else raise ArgumentError, "unknown format=#{@format}"
89
+ end
90
+ end
70
91
  end
71
92
  end
72
93
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAI
4
4
  module Mistral
5
- VERSION = "2.2.1"
5
+ VERSION = "2.6.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniai-mistral
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-04-23 00:00:00.000000000 Z
10
+ date: 2025-05-08 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: event_stream_parser
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '2.2'
32
+ version: '2.6'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.2'
39
+ version: '2.6'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: zeitwerk
42
42
  requirement: !ruby/object:Gem::Requirement