Files
mistral-go-sdk/models.go
vikingowl 75a726cbe2 feat: Phase 4 models + files — CRUD, multipart upload, signed URLs
Add model and file management:
- model/model.go: ModelCard (unified base/fine-tuned), ModelCapabilities
- file/file.go: File, ListParams, Purpose/SampleType/Source enums
- ListModels, GetModel, DeleteModel service methods
- UploadFile (multipart/form-data), ListFiles (query params), GetFile,
  DeleteFile, GetFileContent (binary stream), GetFileURL (signed URL)
- doMultipart() HTTP helper for file uploads
- 13 new tests covering all endpoints including multipart parsing
2026-03-05 19:41:39 +01:00

35 lines
947 B
Go

package mistral
import (
"context"
"somegit.dev/vikingowl/mistral-go-sdk/model"
)
// ListModels returns a list of available models.
func (c *Client) ListModels(ctx context.Context) (*model.ModelList, error) {
var resp model.ModelList
if err := c.doJSON(ctx, "GET", "/v1/models", 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
}