Add support for O3-mini (#930)

* Add support for O3-mini

- Add support for the o3 mini set of models, including tests that match the constraints in OpenAI's API docs (https://platform.openai.com/docs/models#o3-mini).

* Deprecate and refactor

- Deprecate `ErrO1BetaLimitationsLogprobs` and `ErrO1BetaLimitationsOther`

- Implement `validationRequestForReasoningModels`, which works on both o1 & o3, and has per-model-type restrictions on functionality (eg, o3 class are allowed function calls and system messages, o1 isn't)

* Move reasoning validation to `reasoning_validator.go`

- Add a `NewReasoningValidator` which exposes a `Validate()` method for a given request

- Also adds a test for chat streams

* Final nits
This commit is contained in:
rory malcolm
2025-02-06 14:53:19 +00:00
committed by GitHub
parent 45aa99607b
commit 2054db016c
6 changed files with 431 additions and 92 deletions

View File

@@ -392,7 +392,8 @@ func (c *Client) CreateChatCompletion(
return
}
if err = validateRequestForO1Models(request); err != nil {
reasoningValidator := NewReasoningValidator()
if err = reasoningValidator.Validate(request); err != nil {
return
}