Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mistral

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mistral

  • 0.3.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Mistral Ruby Client

Gem Version Build

Mistral is a Ruby gem to interact with the Mistral AI API.

This client is a 1:1 port of Mistral's client-python. For a detailed comparison between the Ruby and Python clients, please refer to the PYTHON_CLIENT_COMPARISON.md file.

🔑 Key features

  • API parity with the official Python client
  • Full support for all Mistral AI functionalities, including chat completions, embeddings, and function calling
  • Asynchronous streaming of responses
  • Comprehensive error handling and retry mechanisms
  • Configurable client options (e.g., API endpoint, timeout, max retries)
  • Fully leverages dry-struct for type safety and avoids primitive obsession with hashes

📦 Installation

Install the gem and add to the application's Gemfile by executing:

$ bundle add mistral

If bundler is not being used to manage dependencies, install the gem by executing:

$ gem install mistral

⚡️ Quickstart

Here are a few examples of how to use the Mistral gem:

Chat completion

require 'mistral'

api_key = ENV.fetch('MISTRAL_API_KEY')
client = Mistral::Client.new(api_key: api_key)

model = 'mistral-small'

chat_response = client.chat(
 model: model,
 messages: [
   Mistral::ChatMessage.new(role: 'user', content: 'What is the best French cheese?')
 ]
)

puts chat_response.choices[0].message.content

Chat completion with streaming

require 'mistral'

api_key = ENV.fetch('MISTRAL_API_KEY')
client = Mistral::Client.new(api_key: api_key)

model = 'mistral-small'

client.chat_stream(
  model: model,
  messages: [
    Mistral::ChatMessage.new(role: 'user', content: 'What is the best French cheese?')
  ]
).each do |chunk|
  print chunk.choices[0].delta.content if chunk.choices[0].delta.content
end

📚 Documentation

In the examples folder, you will find how to do:

File NameDescription
chat_no_streaming.rbHow to use the chat endpoint without streaming
chat_with_streaming.rbHow to use the chat endpoint with streaming
chatbot_with_streaming.rbA simple interactive chatbot using streaming
code_completion.rbHow to perform a code completion
completion_with_streaming.rbHow to perform a code completion with streaming
embeddings.rbHow to use the embeddings endpoint
function_calling.rbHow to call functions using the chat endpoint
json_format.rbHow to request and parse JSON responses from the chat endpoint
list_models.rbHow to list available models

🔨 Development

After checking out the repo, run bin/setup to install dependencies.

To install this gem onto your local machine, run bundle exec rake install.

You can also run bin/console for an interactive prompt that will allow you to experiment.

To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

The health and maintainability of the codebase is ensured through a set of Rake tasks to test and lint the gem:

rake build                    # Build mistral into the pkg directory
rake build:checksum           # Generate SHA512 checksum if mistral.gem into the checksums directory
rake clean                    # Remove any temporary products
rake clobber                  # Remove any generated files
rake install                  # Build and install mistral.gem into system gems
rake install:local            # Build and install mistral.gem into system gems without network access
rake release[remote]          # Create tag v0.1.0 and build and push mistral.gem to https://rubygems.org
rake rubocop                  # Run RuboCop
rake rubocop:autocorrect      # Autocorrect RuboCop offenses (only when it's safe)
rake rubocop:autocorrect_all  # Autocorrect RuboCop offenses (safe and unsafe)
rake test                     # Run the test suite
rake test:cmd                 # Print out the test command
rake test:isolated            # Show which test files fail when run in isolation
rake test:slow                # Show bottom 25 tests wrt time

🐞 Issues & Bugs

If you find any issues or bugs, please report them here, I will be happy to have a look at them and fix them as soon as possible.

Please let me know if the client-python introduces any new features, so I can keep this gem in sync with the latest updates.

🤝 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/wilsonsilva/mistral. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

📜 License

The gem is available as open source under the terms of the MIT License.

👔 Code of Conduct

Everyone interacting in the mistral project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

FAQs

Package last updated on 30 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc