mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-04-24 03:00:15 -04:00
### CHANGES - Introduce `cmd` directory for all main application binaries. - Move all Go packages into the `internal` directory. - Rename the `restapi` package to `server` for clarity. - Consolidate patterns and strategies into a new `data` directory. - Group all auxiliary scripts into a new `scripts` directory. - Move all documentation and images into a `docs` directory. - Update all Go import paths to reflect the new structure. - Adjust CI/CD workflows and build commands for new layout.
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package azure
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/danielmiessler/fabric/internal/plugins"
|
|
"github.com/danielmiessler/fabric/internal/plugins/ai/openai"
|
|
openaiapi "github.com/openai/openai-go"
|
|
"github.com/openai/openai-go/option"
|
|
)
|
|
|
|
func NewClient() (ret *Client) {
|
|
ret = &Client{}
|
|
ret.Client = openai.NewClientCompatible("Azure", "", ret.configure)
|
|
ret.ApiDeployments = ret.AddSetupQuestionCustom("deployments", true,
|
|
"Enter your Azure deployments (comma separated)")
|
|
ret.ApiVersion = ret.AddSetupQuestionCustom("API Version", false,
|
|
"Enter the Azure API version (optional)")
|
|
|
|
return
|
|
}
|
|
|
|
type Client struct {
|
|
*openai.Client
|
|
ApiDeployments *plugins.SetupQuestion
|
|
ApiVersion *plugins.SetupQuestion
|
|
|
|
apiDeployments []string
|
|
}
|
|
|
|
func (oi *Client) configure() (err error) {
|
|
oi.apiDeployments = strings.Split(oi.ApiDeployments.Value, ",")
|
|
opts := []option.RequestOption{option.WithAPIKey(oi.ApiKey.Value)}
|
|
if oi.ApiBaseURL.Value != "" {
|
|
opts = append(opts, option.WithBaseURL(oi.ApiBaseURL.Value))
|
|
}
|
|
if oi.ApiVersion.Value != "" {
|
|
opts = append(opts, option.WithQuery("api-version", oi.ApiVersion.Value))
|
|
}
|
|
client := openaiapi.NewClient(opts...)
|
|
oi.ApiClient = &client
|
|
return
|
|
}
|
|
|
|
func (oi *Client) ListModels() (ret []string, err error) {
|
|
ret = oi.apiDeployments
|
|
return
|
|
}
|
|
|
|
func (oi *Client) NeedsRawMode(modelName string) bool {
|
|
return false
|
|
}
|