Version 1.0.0
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
withFunctionSpec
(s), migrate tocreateChatToolCompletion
usingToolSpec
(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
toOpenAIStreamedServiceFactory
orOpenAIServiceFactory.withStreaming()
(required import:OpenAIStreamedServiceImplicits._
) - Note that
OpenAIServiceStreamedExtra.listFineTuneEventsStreamed
has been removed - Migrate
OpenAIMultiServiceAdapter.ofRoundRobin
andofRandomOrder
toadapters.roundRobin
andadapters.randomOrder
(where adapter is, e.g.,OpenAIServiceAdapters.forFullService
) - Migrate
OpenAIRetryServiceAdapter
toadapters.retry
CreateImageSettings
->CreateImageEditSettings