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
         |