package llm import ( "context" "errors" ) // ErrEmbeddingsUnsupported is returned by providers that have no embeddings API // (notably Anthropic). Callers degrade to keyword fallback when they see it. var ErrEmbeddingsUnsupported = errors.New("llm: embeddings not supported by provider") // PlatformEmbeddingDims is the single vector dimension baked into the pgvector // columns at migration time (vector(1536)). Embedding endpoints MUST be // configured with a model that produces this dimension; the build runner rejects // mismatched dims rather than corrupting the index. const PlatformEmbeddingDims = 1536 // Embedder is implemented by providers that expose a text-embeddings endpoint. // Embed returns one vector per input, in input order. EmbedDims returns the // vector length the given model produces (used to validate against the fixed // pgvector column dimension before inserting). type Embedder interface { Embed(ctx context.Context, modelID string, inputs []string) ([][]float32, error) EmbedDims(modelID string) int }