mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-06-14 00:14:22 +00:00
65d0d62acf
- Reject incompatible explicit provider embedding dimensions on create/update - Ignore previously saved incompatible dimensions at runtime, fall back to 1536 - Share RequiredMemoryEmbeddingDimensions constant from store package - Remove dimensions input from provider UI (always 1536 per pgvector schema) - Add HTTP, runtime, and validation unit tests Closes #548 Supersedes #410
28 lines
810 B
Go
28 lines
810 B
Go
package http
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/nextlevelbuilder/goclaw/internal/store"
|
|
)
|
|
|
|
// Provider-level embedding settings are used by the memory system, whose
|
|
// PostgreSQL schema currently stores fixed vector(1536) embeddings.
|
|
func validateProviderEmbeddingSettings(p *store.LLMProviderData) error {
|
|
es := store.ParseEmbeddingSettings(p.Settings)
|
|
if es == nil || !es.Enabled {
|
|
return nil
|
|
}
|
|
if es.Dimensions < 0 {
|
|
return fmt.Errorf("embedding.dimensions must be a positive integer or omitted")
|
|
}
|
|
if es.Dimensions > 0 && es.Dimensions != store.RequiredMemoryEmbeddingDimensions {
|
|
return fmt.Errorf(
|
|
"embedding.dimensions must be %d or omitted because GoClaw memory stores vector(%d)",
|
|
store.RequiredMemoryEmbeddingDimensions,
|
|
store.RequiredMemoryEmbeddingDimensions,
|
|
)
|
|
}
|
|
return nil
|
|
}
|