Skip to content

Commit efe4a66

Browse files
committed
feat: expose provider options
1 parent 2931851 commit efe4a66

4 files changed

Lines changed: 23 additions & 23 deletions

File tree

anthropic/anthropic.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func (a languageModel) Provider() string {
118118

119119
func (a languageModel) prepareParams(call ai.Call) (*anthropic.MessageNewParams, []ai.CallWarning, error) {
120120
params := &anthropic.MessageNewParams{}
121-
providerOptions := &providerOptions{}
121+
providerOptions := &ProviderOptions{}
122122
if v, ok := call.ProviderOptions["anthropic"]; ok {
123123
err := ai.ParseOptions(v, providerOptions)
124124
if err != nil {
@@ -217,19 +217,19 @@ func (a languageModel) prepareParams(call ai.Call) (*anthropic.MessageNewParams,
217217
return params, warnings, nil
218218
}
219219

220-
func getCacheControl(providerOptions ai.ProviderOptions) *cacheControlProviderOptions {
220+
func getCacheControl(providerOptions ai.ProviderOptions) *CacheControlProviderOptions {
221221
if anthropicOptions, ok := providerOptions["anthropic"]; ok {
222222
if cacheControl, ok := anthropicOptions["cache_control"]; ok {
223223
if cc, ok := cacheControl.(map[string]any); ok {
224-
cacheControlOption := &cacheControlProviderOptions{}
224+
cacheControlOption := &CacheControlProviderOptions{}
225225
err := ai.ParseOptions(cc, cacheControlOption)
226226
if err != nil {
227227
return cacheControlOption
228228
}
229229
}
230230
} else if cacheControl, ok := anthropicOptions["cacheControl"]; ok {
231231
if cc, ok := cacheControl.(map[string]any); ok {
232-
cacheControlOption := &cacheControlProviderOptions{}
232+
cacheControlOption := &CacheControlProviderOptions{}
233233
err := ai.ParseOptions(cc, cacheControlOption)
234234
if err != nil {
235235
return cacheControlOption
@@ -240,9 +240,9 @@ func getCacheControl(providerOptions ai.ProviderOptions) *cacheControlProviderOp
240240
return nil
241241
}
242242

243-
func getReasoningMetadata(providerOptions ai.ProviderOptions) *reasoningMetadata {
243+
func getReasoningMetadata(providerOptions ai.ProviderOptions) *ReasoningMetadata {
244244
if anthropicOptions, ok := providerOptions["anthropic"]; ok {
245-
reasoningMetadata := &reasoningMetadata{}
245+
reasoningMetadata := &ReasoningMetadata{}
246246
err := ai.ParseOptions(anthropicOptions, reasoningMetadata)
247247
if err != nil {
248248
return reasoningMetadata

anthropic/provider_options.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package anthropic
22

3-
type providerOptions struct {
3+
type ProviderOptions struct {
44
SendReasoning *bool `json:"send_reasoning,omitempty"`
5-
Thinking *thinkingProviderOption `json:"thinking,omitempty"`
5+
Thinking *ThinkingProviderOption `json:"thinking,omitempty"`
66
DisableParallelToolUse *bool `json:"disable_parallel_tool_use,omitempty"`
77
}
88

9-
type thinkingProviderOption struct {
9+
type ThinkingProviderOption struct {
1010
BudgetTokens int64 `json:"budget_tokens"`
1111
}
1212

13-
type reasoningMetadata struct {
13+
type ReasoningMetadata struct {
1414
Signature string `json:"signature"`
1515
RedactedData string `json:"redacted_data"`
1616
}
1717

18-
type cacheControlProviderOptions struct {
18+
type CacheControlProviderOptions struct {
1919
Type string `json:"type"`
2020
}

openai/openai.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (o languageModel) Provider() string {
145145
func (o languageModel) prepareParams(call ai.Call) (*openai.ChatCompletionNewParams, []ai.CallWarning, error) {
146146
params := &openai.ChatCompletionNewParams{}
147147
messages, warnings := toPrompt(call.Prompt)
148-
providerOptions := &providerOptions{}
148+
providerOptions := &ProviderOptions{}
149149
if v, ok := call.ProviderOptions["openai"]; ok {
150150
err := ai.ParseOptions(v, providerOptions)
151151
if err != nil {
@@ -239,13 +239,13 @@ func (o languageModel) prepareParams(call ai.Call) (*openai.ChatCompletionNewPar
239239

240240
if providerOptions.ReasoningEffort != nil {
241241
switch *providerOptions.ReasoningEffort {
242-
case reasoningEffortMinimal:
242+
case ReasoningEffortMinimal:
243243
params.ReasoningEffort = shared.ReasoningEffortMinimal
244-
case reasoningEffortLow:
244+
case ReasoningEffortLow:
245245
params.ReasoningEffort = shared.ReasoningEffortLow
246-
case reasoningEffortMedium:
246+
case ReasoningEffortMedium:
247247
params.ReasoningEffort = shared.ReasoningEffortMedium
248-
case reasoningEffortHigh:
248+
case ReasoningEffortHigh:
249249
params.ReasoningEffort = shared.ReasoningEffortHigh
250250
default:
251251
return nil, nil, fmt.Errorf("reasoning model `%s` not supported", *providerOptions.ReasoningEffort)

openai/provider_options.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package openai
22

3-
type reasoningEffort string
3+
type ReasoningEffort string
44

55
const (
6-
reasoningEffortMinimal reasoningEffort = "minimal"
7-
reasoningEffortLow reasoningEffort = "low"
8-
reasoningEffortMedium reasoningEffort = "medium"
9-
reasoningEffortHigh reasoningEffort = "high"
6+
ReasoningEffortMinimal ReasoningEffort = "minimal"
7+
ReasoningEffortLow ReasoningEffort = "low"
8+
ReasoningEffortMedium ReasoningEffort = "medium"
9+
ReasoningEffortHigh ReasoningEffort = "high"
1010
)
1111

12-
type providerOptions struct {
12+
type ProviderOptions struct {
1313
LogitBias map[string]int64 `json:"logit_bias"`
1414
LogProbs *bool `json:"log_probes"`
1515
TopLogProbs *int64 `json:"top_log_probs"`
1616
ParallelToolCalls *bool `json:"parallel_tool_calls"`
1717
User *string `json:"user"`
18-
ReasoningEffort *reasoningEffort `json:"reasoning_effort"`
18+
ReasoningEffort *ReasoningEffort `json:"reasoning_effort"`
1919
MaxCompletionTokens *int64 `json:"max_completion_tokens"`
2020
TextVerbosity *string `json:"text_verbosity"`
2121
Prediction map[string]any `json:"prediction"`

0 commit comments

Comments
 (0)