Documentation
¶
Overview ¶
Package models provides AI model management functionality
internal/models/manager.go
Index ¶
- Variables
- func GetRecommendedModels() []struct{ ... }
- func IsEmbeddingModel(modelName string) bool
- type EmbeddingModel
- type Manager
- func (m *Manager) CheckModelType(modelName string) string
- func (m *Manager) DetectProvider() Provider
- func (m *Manager) GetActiveModel(configDefault string) (string, error)
- func (m *Manager) GetAvailableEmbeddingModels() ([]Model, error)
- func (m *Manager) GetModelDetails(modelName string) (map[string]interface{}, error)
- func (m *Manager) IsOllamaAvailable() bool
- func (m *Manager) List() ([]Model, error)
- func (m *Manager) ListEmbeddingModels() (installed []Model, available []EmbeddingModel, err error)
- func (m *Manager) Pull(modelName string, progress chan<- PullProgress) error
- func (m *Manager) Remove(modelName string) error
- func (m *Manager) SetActiveModel(modelName string) error
- type Model
- type Provider
- type PullProgress
Constants ¶
This section is empty.
Variables ¶
var PredefinedEmbeddingModels = []EmbeddingModel{
{
Name: "nomic-embed-text",
Size: "274MB",
Dimensions: 768,
Family: "bert",
},
{
Name: "mxbai-embed-large",
Size: "670MB",
Dimensions: 1024,
Family: "bert",
},
{
Name: "all-minilm",
Size: "46MB",
Dimensions: 384,
Family: "bert",
},
{
Name: "bge-base",
Size: "420MB",
Dimensions: 768,
Family: "bert",
},
{
Name: "bge-large",
Size: "1.3GB",
Dimensions: 1024,
Family: "bert",
},
{
Name: "e5-base",
Size: "438MB",
Dimensions: 768,
Family: "bert",
},
{
Name: "e5-large",
Size: "1.3GB",
Dimensions: 1024,
Family: "bert",
},
}
PredefinedEmbeddingModels contains known embedding models
Functions ¶
func GetRecommendedModels ¶
GetRecommendedModels returns a list of recommended models
func IsEmbeddingModel ¶
IsEmbeddingModel checks if a model is an embedding model
Types ¶
type EmbeddingModel ¶
EmbeddingModel represents an embedding model
func GetEmbeddingModelInfo ¶
func GetEmbeddingModelInfo(modelName string) *EmbeddingModel
GetEmbeddingModelInfo returns information about an embedding model
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles AI model operations
func NewManager ¶
NewManager creates a new model manager
func (*Manager) CheckModelType ¶
CheckModelType determines the type of a model (llm, embedding, etc)
func (*Manager) DetectProvider ¶
DetectProvider detects which AI provider is available
func (*Manager) GetActiveModel ¶
GetActiveModel returns the currently active model from config
func (*Manager) GetAvailableEmbeddingModels ¶
GetAvailableEmbeddingModels returns all installed embedding models
func (*Manager) GetModelDetails ¶
GetModelDetails fetches detailed information about a model from Ollama
func (*Manager) IsOllamaAvailable ¶
IsOllamaAvailable checks if Ollama service is running
func (*Manager) ListEmbeddingModels ¶
func (m *Manager) ListEmbeddingModels() (installed []Model, available []EmbeddingModel, err error)
ListEmbeddingModels returns both installed and available embedding models
func (*Manager) Pull ¶
func (m *Manager) Pull(modelName string, progress chan<- PullProgress) error
Pull downloads a model with progress updates
func (*Manager) SetActiveModel ¶
SetActiveModel sets the active model
type Model ¶
type Model struct {
Name string `json:"name"`
Model string `json:"model"`
Size int64 `json:"size"`
Digest string `json:"digest"`
ModifiedAt time.Time `json:"modified_at"`
Description string `json:"description,omitempty"`
}
Model represents an AI model