Documentation
¶
Overview ¶
Package llmrepo provides a unified facade over LLM backends discovered via runtimestate: prompt, chat, streaming, embedding, and tokenization through a single ModelRepo interface.
External consumers can implement ModelRepo themselves or construct the default implementation with NewModelManager, which selects a concrete backend per call using model/provider hints and runtimestate's view of the available backends.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewModelManager ¶
func NewModelManager(runtime *runtimestate.State, tokenizer ollamatokenizer.Tokenizer, config ModelManagerConfig, tracker libtracker.ActivityTracker) (*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,
messages []libmodelprovider.Message,
opts ...libmodelprovider.ChatArgument,
) (<-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.