on main help sign in
chore: improve azure support (#1351)
c467d13Kujtim Hoxha
go.mod+1−1
@@ -3,7 +3,7 @@ module github.com/charmbracelet/crush
3go 1.25.0
3go 1.25.0
4
4
5require (
5require (
6− charm.land/fantasy v0.1.4
6+ charm.land/fantasy v0.1.5
7 github.com/JohannesKaufmann/html-to-markdown v1.6.0
7 github.com/JohannesKaufmann/html-to-markdown v1.6.0
8 github.com/MakeNowJust/heredoc v1.0.0
8 github.com/MakeNowJust/heredoc v1.0.0
9 github.com/PuerkitoBio/goquery v1.10.3
9 github.com/PuerkitoBio/goquery v1.10.3
go.sum+2−2
@@ -1,5 +1,5 @@
1−charm.land/fantasy v0.1.4 h1:H/l2GfMy6Pon0GcXoj4/kuHKZ0jm//xDe2Got0eF3AU=
1+charm.land/fantasy v0.1.5 h1:7sta5yC+cSU32Kb+cNQb4b/3fyn13tYOgXsnXhdMlX0=
2−charm.land/fantasy v0.1.4/go.mod h1:GT1Y8uYNmmu7OkUxWEiOyzdAf1jYopPJfpWvoDRzGiM=
2+charm.land/fantasy v0.1.5/go.mod h1:GT1Y8uYNmmu7OkUxWEiOyzdAf1jYopPJfpWvoDRzGiM=
3cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
3cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
4cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
4cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
5cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4=
5cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4=
internal/agent/coordinator.go+2−11
@@ -193,7 +193,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
193 }
193 }
194
194
195 switch providerCfg.Type {
195 switch providerCfg.Type {
196− case openai.Name:
196+ case openai.Name, azure.Name:
197 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
197 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
198 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
198 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
199 mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
199 mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
@@ -250,16 +250,6 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
250 if err == nil {
250 if err == nil {
251 options[google.Name] = parsed
251 options[google.Name] = parsed
252 }
252 }
253− case azure.Name:
254− _, hasReasoningEffort := mergedOptions["reasoning_effort"]
255− if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
256− mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
257− }
258− // azure uses the same options as openaicompat
259− parsed, err := openaicompat.ParseOptions(mergedOptions)
260− if err == nil {
261− options[azure.Name] = parsed
262− }
263 case openaicompat.Name:
253 case openaicompat.Name:
264 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
254 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
265 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
255 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
@@ -566,6 +556,7 @@ func (c *coordinator) buildAzureProvider(baseURL, apiKey string, headers map[str
566 opts := []azure.Option{
556 opts := []azure.Option{
567 azure.WithBaseURL(baseURL),
557 azure.WithBaseURL(baseURL),
568 azure.WithAPIKey(apiKey),
558 azure.WithAPIKey(apiKey),
559+ azure.WithUseResponsesAPI(),
569 }
560 }
570 if c.cfg.Options.Debug {
561 if c.cfg.Options.Debug {
571 httpClient := log.NewHTTPClient()
562 httpClient := log.NewHTTPClient()