Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewModelManager ¶
func NewModelManager(runtime *runtimestate.State, tokenizer ollamatokenizer.Tokenizer, config ModelManagerConfig) (*modelManager, error)
Types ¶
type EmbedRequest ¶
type EmbedRequest struct {
ModelName string
ProviderType string
Tracker libtracker.ActivityTracker
}
type ModelConfig ¶
type ModelManagerConfig ¶
type ModelManagerConfig struct {
DefaultPromptModel ModelConfig
DefaultEmbeddingModel ModelConfig
DefaultChatModel ModelConfig
}
type ModelRepo ¶
type ModelRepo interface {
Tokenize(ctx context.Context, modelName string, prompt string) ([]int, error)
CountTokens(ctx context.Context, modelName string, prompt string) (int, error)
PromptExecute(
ctx context.Context,
req Request,
systeminstruction string, temperature float32, prompt string,
) (string, Meta, error)
Chat(
ctx context.Context,
req Request,
Messages []libmodelprovider.Message, opts ...libmodelprovider.ChatArgument,
) (libmodelprovider.ChatResult, Meta, error)
Embed(
ctx context.Context,
embedReq EmbedRequest,
prompt string,
) ([]float64, Meta, error)
Stream(
ctx context.Context,
req Request,
prompt string,
) (<-chan *libmodelprovider.StreamParcel, Meta, error)
}
type Request ¶
type Request struct {
ProviderTypes []string // Optional: if empty, uses all default providers
ModelNames []string // Optional: if empty, any model is considered
ContextLength int // Minimum required context length
Tracker libtracker.ActivityTracker
}
Unified Request type for all operations
Click to show internal directories.
Click to hide internal directories.