All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add the ability to trigger any callable object as stream chunks come through, not just Procs. Big thanks to @obie for this change.
- Add the ability to stream Chat responses from the API! Thanks to everyone who requested this and made suggestions.
- Added instructions for streaming to the README.
- Switch HTTP library from HTTParty to Faraday to allow streaming and future feature and performance improvements.
- [BREAKING] Endpoints now return JSON rather than HTTParty objects. You will need to update your code to handle this change, changing
JSON.parse(response.body)["key"]
andresponse.parsed_response["key"]
to justresponse["key"]
.
- Allow the usage of proxy base URIs like https://www.helicone.ai/. Thanks to @mmmaia for the PR!
- Add much-needed ability to increase HTTParty timeout, and set default to 120 seconds. Thanks to @mbackermann for the PR and to everyone who requested this!
- Add Client#transcribe and Client translate endpoints - Whisper over the wire! Thanks to @Clemalfroy
- Add Client#chat endpoint - ChatGPT over the wire!
- Replace ::Ruby::OpenAI namespace with ::OpenAI - thanks @kmcphillips for this work!
- To upgrade, change
require 'ruby/openai'
torequire 'openai'
and change all references toRuby::OpenAI
toOpenAI
.
- Add Files#content endpoint - thanks @unixneo for raising!
- Add Finetunes#delete endpoint - thanks @lancecarlson for flagging this.
- Add VCR header and body matching - thanks @petergoldstein!
- Update File#upload specs to remove deprecated
answers
purpose.
- Add ability to run the specs without VCR cassettes using
NO_VCR=true bundle exec rspec
. - Add Ruby 3.2 to CircleCI config - thanks @petergoldstein!
- A bit of detail added to the README on DALLE image sizes - thanks @ndemianc!
- Fix finetunes and files uploads endpoints - thanks @chaadow for your PR on this and @petergoldstein for the PR we ultimately went with.
- Fixed Images#generate and Finetunes#create which were broken by a double call of to_json.
- Thanks @konung for spotting this!
- [BREAKING] Remove deprecated answers, classifications, embeddings, engines and search endpoints.
- [BREAKING] Remove ability to pass engine to completions and embeddings outside of the parameters hash.
- Add ability to set access_token via gem configuration.
- Thanks @grjones and @aquaflamingo for raising this and @feministy for the excellent guide to adding config to a gem.
- [BREAKING] Remove ability to include access_token directly via ENV vars.
- [BREAKING] Remove ability to pass API version directly to endpoints.
- Add Images#edit and Images#variations endpoint to modify images with DALL·E.
- Add Organization ID to headers so users can charge credits to the correct organization.
- Thanks @mridul911 for raising this and @maks112v for adding it!
- Add Images#generate endpoint to generate images with DALL·E!
- Deprecate Client#answers endpoint.
- Deprecate Client#classifications endpoint.
- [BREAKING] Remove support for Ruby 2.5.
- [BREAKING] Remove support for passing
query
,documents
orfile
as top-level parameters toClient#search
. - Deprecate Client#search endpoint.
- Deprecate Client#engines endpoints.
- Add Client#models endpoints to list and query available models.
- Add Client#moderations endpoint to check OpenAI's Content Policy.
- Add Client#edits endpoints to transform inputs according to instructions.
- Add Client#engines endpoints to list and query available engines.
- Add Client#finetunes endpoints to create and use fine-tuned models.
- Add Client#embeddings endpoint to get vector representations of inputs.
- Add tests and examples for more engines.
- Add backwards compatibility from Ruby 2.5+.
- Add Client#classifications to predict the most likely labels based on examples or a file.
- Fixed Files#upload which was previously broken by the validation code!
- Add Client#search(parameters:) to allow passing
max_rerank
orreturn_metadata
. - Deprecate Client#search with query, file or document parameters at the top level.
- Thanks @stevegeek for pointing this issue out!
- Add validation of JSONL files to make it easier to debug during upload.
- Add Client#answers endpoint for question/answer response on documents or a file.
- Add Client#files to allow file upload.
- Add Client#search(file:) so you can search a file.
- Remove deprecated method Client#call - use Client#completions instead.
- Rename 'master' branch to 'main' branch.
- Bump dependencies.
- Add Client#completions to allow all parameters.
- Deprecate Client#call.
- Update README.
- Add method to use the search endpoint.
- Bump Rubocop to 3.9.2.
- Bump Webmock to 3.9.1.
- Add ability to change API version in the future.
- Fix README typos.
- Add tests and cached responses for the different engines.
- Add issue templates.
- Add README instructions for using the gem without dotenv.
- Add list of engines to README.
- Run Rubocop on pulls using CircleCI.
- Clean up CircleCI config file.
- Initialise repository.
- Add OpenAI::Client to connect to OpenAI API using user credentials.
- Add spec for Client with a cached response using VCR.
- Add CircleCI to run the specs on pull requests.