Documentation
¶
Overview ¶
Package azuremodels provides a client for interacting with the Azure models API.
Index ¶
- Constants
- func FormatIdentifier(publisher, name string) string
- func SortModels(models []*ModelSummary)
- type AzureClient
- func (c *AzureClient) GetChatCompletionStream(ctx context.Context, req ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
- func (c *AzureClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
- func (c *AzureClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
- type AzureClientConfig
- type ChatChoice
- type ChatChoiceMessage
- type ChatCompletion
- type ChatCompletionOptions
- type ChatCompletionResponse
- type ChatMessage
- type ChatMessageRole
- type Client
- type MockClient
- func (c *MockClient) GetChatCompletionStream(ctx context.Context, opt ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
- func (c *MockClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
- func (c *MockClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
- type ModelDetails
- type ModelSummary
- type UnauthenticatedClient
- func (c *UnauthenticatedClient) GetChatCompletionStream(ctx context.Context, opt ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
- func (c *UnauthenticatedClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
- func (c *UnauthenticatedClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
Constants ¶
const NOTICE = "" /* 158-byte string literal not displayed */
NOTICE represents a legal notice to display to the user when they interact with Models.
Variables ¶
This section is empty.
Functions ¶
func FormatIdentifier ¶ added in v0.0.7
FormatIdentifier formats the model identifier based on the publisher and model name.
func SortModels ¶ added in v0.0.5
func SortModels(models []*ModelSummary)
SortModels sorts the given models in place, with featured models first, and then by friendly name.
Types ¶
type AzureClient ¶ added in v0.0.5
type AzureClient struct {
// contains filtered or unexported fields
}
AzureClient provides a client for interacting with the Azure models API.
func NewAzureClient ¶ added in v0.0.5
func NewAzureClient(httpClient *http.Client, authToken string, cfg *AzureClientConfig) *AzureClient
NewAzureClient returns a new Azure client using the given HTTP client, configuration, and auth token.
func NewDefaultAzureClient ¶ added in v0.0.5
func NewDefaultAzureClient(authToken string) (*AzureClient, error)
NewDefaultAzureClient returns a new Azure client using the given auth token using default API URLs.
func (*AzureClient) GetChatCompletionStream ¶ added in v0.0.5
func (c *AzureClient) GetChatCompletionStream(ctx context.Context, req ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
GetChatCompletionStream returns a stream of chat completions using the given options.
func (*AzureClient) GetModelDetails ¶ added in v0.0.5
func (c *AzureClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
GetModelDetails returns the details of the specified model in a particular registry.
func (*AzureClient) ListModels ¶ added in v0.0.5
func (c *AzureClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
ListModels returns a list of available models.
type AzureClientConfig ¶ added in v0.0.5
type AzureClientConfig struct { InferenceRoot string InferencePath string AzureAiStudioURL string ModelsURL string }
AzureClientConfig represents configurable settings for the Azure client.
func NewDefaultAzureClientConfig ¶ added in v0.0.5
func NewDefaultAzureClientConfig() *AzureClientConfig
NewDefaultAzureClientConfig returns a new AzureClientConfig with default values for API URLs.
type ChatChoice ¶
type ChatChoice struct { Delta *chatChoiceDelta `json:"delta,omitempty"` FinishReason string `json:"finish_reason"` Index int32 `json:"index"` Message *ChatChoiceMessage `json:"message,omitempty"` }
ChatChoice represents a choice in a chat completion.
type ChatChoiceMessage ¶ added in v0.0.5
type ChatChoiceMessage struct { Content *string `json:"content,omitempty"` Role *string `json:"role,omitempty"` }
ChatChoiceMessage is a message from a choice in a chat conversation.
type ChatCompletion ¶
type ChatCompletion struct {
Choices []ChatChoice `json:"choices"`
}
ChatCompletion represents a chat completion.
type ChatCompletionOptions ¶
type ChatCompletionOptions struct { MaxTokens *int `json:"max_tokens,omitempty"` Messages []ChatMessage `json:"messages"` Model string `json:"model"` Stream bool `json:"stream,omitempty"` Temperature *float64 `json:"temperature,omitempty"` TopP *float64 `json:"top_p,omitempty"` }
ChatCompletionOptions represents available options for a chat completion request.
type ChatCompletionResponse ¶
type ChatCompletionResponse struct {
Reader sse.Reader[ChatCompletion]
}
ChatCompletionResponse represents a response to a chat completion request.
type ChatMessage ¶
type ChatMessage struct { Content *string `json:"content,omitempty"` Role ChatMessageRole `json:"role"` }
ChatMessage represents a message from a chat thread with a model.
type ChatMessageRole ¶
type ChatMessageRole string
ChatMessageRole represents the role of a chat message.
const ( // ChatMessageRoleAssistant represents a message from the model. ChatMessageRoleAssistant ChatMessageRole = "assistant" // ChatMessageRoleSystem represents a system message. ChatMessageRoleSystem ChatMessageRole = "system" // ChatMessageRoleUser represents a message from the user. ChatMessageRoleUser ChatMessageRole = "user" )
type Client ¶
type Client interface { // GetChatCompletionStream returns a stream of chat completions using the given options. GetChatCompletionStream(context.Context, ChatCompletionOptions, string) (*ChatCompletionResponse, error) // GetModelDetails returns the details of the specified model in a particular registry. GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error) // ListModels returns a list of available models. ListModels(context.Context) ([]*ModelSummary, error) }
Client represents a client for interacting with an API about models.
type MockClient ¶ added in v0.0.5
type MockClient struct { MockGetChatCompletionStream func(context.Context, ChatCompletionOptions, string) (*ChatCompletionResponse, error) MockGetModelDetails func(context.Context, string, string, string) (*ModelDetails, error) MockListModels func(context.Context) ([]*ModelSummary, error) }
MockClient provides a client for interacting with the Azure models API in tests.
func NewMockClient ¶ added in v0.0.5
func NewMockClient() *MockClient
NewMockClient returns a new mock client for stubbing out interactions with the models API.
func (*MockClient) GetChatCompletionStream ¶ added in v0.0.5
func (c *MockClient) GetChatCompletionStream(ctx context.Context, opt ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
GetChatCompletionStream calls the mocked function for getting a stream of chat completions for the given request.
func (*MockClient) GetModelDetails ¶ added in v0.0.5
func (c *MockClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
GetModelDetails calls the mocked function for getting the details of the specified model in a particular registry.
func (*MockClient) ListModels ¶ added in v0.0.5
func (c *MockClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
ListModels calls the mocked function for getting a list of available models.
type ModelDetails ¶
type ModelDetails struct { Description string `json:"description"` Evaluation string `json:"evaluation"` License string `json:"license"` LicenseDescription string `json:"license_description"` Notes string `json:"notes"` Tags []string `json:"tags"` SupportedInputModalities []string `json:"supported_input_modalities"` SupportedOutputModalities []string `json:"supported_output_modalities"` SupportedLanguages []string `json:"supported_languages"` MaxOutputTokens int `json:"max_output_tokens"` MaxInputTokens int `json:"max_input_tokens"` RateLimitTier string `json:"rateLimitTier"` }
ModelDetails includes detailed information about a model.
func (*ModelDetails) ContextLimits ¶
func (m *ModelDetails) ContextLimits() string
ContextLimits returns a summary of the context limits for the model.
type ModelSummary ¶
type ModelSummary struct { ID string `json:"id"` Name string `json:"name"` FriendlyName string `json:"friendly_name"` Task string `json:"task"` Publisher string `json:"publisher"` Summary string `json:"summary"` Version string `json:"version"` RegistryName string `json:"registry_name"` }
ModelSummary includes basic information about a model.
func (*ModelSummary) HasName ¶
func (m *ModelSummary) HasName(name string) bool
HasName checks if the model has the given name.
func (*ModelSummary) IsChatModel ¶ added in v0.0.5
func (m *ModelSummary) IsChatModel() bool
IsChatModel returns true if the model is for chat completions.
type UnauthenticatedClient ¶ added in v0.0.5
type UnauthenticatedClient struct { }
UnauthenticatedClient is for use by anonymous viewers to talk to the models API.
func NewUnauthenticatedClient ¶ added in v0.0.5
func NewUnauthenticatedClient() *UnauthenticatedClient
NewUnauthenticatedClient contructs a new models API client for an anonymous viewer.
func (*UnauthenticatedClient) GetChatCompletionStream ¶ added in v0.0.5
func (c *UnauthenticatedClient) GetChatCompletionStream(ctx context.Context, opt ChatCompletionOptions, org string) (*ChatCompletionResponse, error)
GetChatCompletionStream returns an error because this functionality requires authentication.
func (*UnauthenticatedClient) GetModelDetails ¶ added in v0.0.5
func (c *UnauthenticatedClient) GetModelDetails(ctx context.Context, registry, modelName, version string) (*ModelDetails, error)
GetModelDetails returns an error because this functionality requires authentication.
func (*UnauthenticatedClient) ListModels ¶ added in v0.0.5
func (c *UnauthenticatedClient) ListModels(ctx context.Context) ([]*ModelSummary, error)
ListModels returns an error because this functionality requires authentication.