// Package ai provides AI integration for embeddings and context injection. package ai import ( "context" ) // Config holds AI configuration. type Config struct { Provider string `yaml:"provider"` Model string `yaml:"model"` Dimensions int `yaml:"dimensions"` APIKey string `yaml:"api_key"` BatchSize int `yaml:"batch_size"` BaseURL string `yaml:"base_url"` Temperature float64 `yaml:"temperature"` } // Client provides AI operations. type Client interface { // Embed generates embeddings for texts. Embed(ctx context.Context, texts []string) ([][]float32, error) // QueryWithContext generates a response with context injection. QueryWithContext(ctx context.Context, query string, context []string) (string, error) } // NewClient creates a new AI client based on provider. func NewClient(config *Config) Client { switch config.Provider { case "openai": return NewOpenAIClient(config) case "mock": return NewMockClient(config.Dimensions) default: return NewMockClient(1536) } }