Files
mistral-go-sdk/models.go
vikingowl 776b693f2d chore: move module path to github.com/VikingOwl91/mistral-go-sdk
Public discoverability on pkg.go.dev. Also fixes stream tool call
test fixture to match real Mistral API responses (finish_reason, usage).
2026-04-03 12:01:11 +02:00

49 lines
1.2 KiB
Go

package mistral
import (
"context"
"net/url"
"github.com/VikingOwl91/mistral-go-sdk/model"
)
// ListModels returns a list of available models.
func (c *Client) ListModels(ctx context.Context, params *model.ListParams) (*model.ModelList, error) {
path := "/v1/models"
if params != nil {
q := url.Values{}
if params.Provider != nil {
q.Set("provider", *params.Provider)
}
if params.Model != nil {
q.Set("model", *params.Model)
}
if encoded := q.Encode(); encoded != "" {
path += "?" + encoded
}
}
var resp model.ModelList
if err := c.doJSON(ctx, "GET", path, nil, &resp); err != nil {
return nil, err
}
return &resp, nil
}
// GetModel retrieves a specific model by ID.
func (c *Client) GetModel(ctx context.Context, modelID string) (*model.ModelCard, error) {
var resp model.ModelCard
if err := c.doJSON(ctx, "GET", "/v1/models/"+modelID, nil, &resp); err != nil {
return nil, err
}
return &resp, nil
}
// DeleteModel deletes a fine-tuned model by ID.
func (c *Client) DeleteModel(ctx context.Context, modelID string) (*model.DeleteModelOut, error) {
var resp model.DeleteModelOut
if err := c.doJSON(ctx, "DELETE", "/v1/models/"+modelID, nil, &resp); err != nil {
return nil, err
}
return &resp, nil
}