Skip to content

Version 1.0.0

Compare
Choose a tag to compare
@peterbanda peterbanda released this 25 Apr 21:20
· 454 commits to master since this release

API Updates

  • New functions/endpoints for assistants, threads, messages, and files (thanks @branislav-burdiliak) πŸŽ‰
  • Fine-tuning API updated (checkpoints, explicit dimensions, etc.)
  • Chat completion with images (GPT vision), support for logprobs
  • Audio endpoint updates - transcription, translation, speech
  • New message hierarchy
  • Support for tool calling
  • New token count subproject (thanks @branislav-burdiliak , @piotrkuczko)

New Models and Providers

  • Improved support for Azure OpenAI services
  • Support for Azure AI models
  • Support for Groq, Fireworks, OctoAI, Ollama, and FastChat (with examples) πŸŽ‰
  • New Anthropic client project with OpenAI-compatible chat completion adapter (thanks @branislav-burdiliak) πŸŽ‰
  • NonOpenAIModelId const object holding the most popular non-openai models introduced (e.g. Llama3-70b, Mixtral-8x22B)

Factories and Adapters

  • Full, core, and chat completion factories refactored to support easier and more flexible streaming extension
  • Service wrappers refactored and generalized to adapters
  • Route adapter allowing the use of several providers (e.g., Groq and Anthropic) alongside OpenAI models for chat-completions πŸŽ‰
  • Other adapters that have been added include round robin/random order load balancing, logging, retry, chat-to-completion, and settings/messages adapter

Bug Fixes and Improvements

  • Fixed null bytes handling in TopLogprobInfo JSON format
  • WS request - handling slash at the end of URLs
  • Made "data:" prefix handling in WSStreamRequestHelper more robust
  • MultipartWritable - added extension-implied content type for Azure file upload
  • Fixed chat completion's response_format_type

Examples and Tests

  • New example project demonstrating usage of most of the features, providers, and adapters (more than 50)
  • Tests for token counts and JSON (de)serialization

Breaking Changes/Migrations: ⚠️

  • Instead of the deprecated MessageSpec, use typed {System, User, Assistant, Tool}Message
  • Instead of createChatFunCompletion with FunctionSpec(s), migrate to createChatToolCompletion using ToolSpec(s)
  • Use a new factory OpenAIChatCompletionServiceFactory with a custom URL and auth headers when only chat-completion is supported by a provider
  • Migrate streaming service creation from OpenAIServiceStreamedFactory to OpenAIStreamedServiceFactory or OpenAIServiceFactory.withStreaming() (required import: OpenAIStreamedServiceImplicits._)
  • Note that OpenAIServiceStreamedExtra.listFineTuneEventsStreamed has been removed
  • Migrate OpenAIMultiServiceAdapter.ofRoundRobin and ofRandomOrder to adapters.roundRobin and adapters.randomOrder (where adapter is, e.g., OpenAIServiceAdapters.forFullService)
  • Migrate OpenAIRetryServiceAdapter to adapters.retry
  • CreateImageSettings -> CreateImageEditSettings