stub.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package embedding
  2. import (
  3. "context"
  4. "errors"
  5. )
  6. // ErrEmbeddingNotConfigured 嵌入服务未配置时返回的错误
  7. var ErrEmbeddingNotConfigured = errors.New("知识库向量模型未配置,请先在「设置 - 知识库向量模型」中配置 API 后再使用")
  8. // UnconfiguredEmbeddingService 未配置时的占位嵌入服务,实现 EmbeddingService 接口
  9. // 用于 DB 与 .env 均无有效配置时仍能启动服务;实际调用向量化时会返回 ErrEmbeddingNotConfigured
  10. type UnconfiguredEmbeddingService struct{}
  11. // NewUnconfiguredEmbeddingService 创建未配置占位嵌入服务
  12. func NewUnconfiguredEmbeddingService() *UnconfiguredEmbeddingService {
  13. return &UnconfiguredEmbeddingService{}
  14. }
  15. // EmbedText 向量化单个文本(未配置时返回错误)
  16. func (s *UnconfiguredEmbeddingService) EmbedText(ctx context.Context, text string) ([]float32, error) {
  17. return nil, ErrEmbeddingNotConfigured
  18. }
  19. // EmbedTexts 批量向量化文本(未配置时返回错误)
  20. func (s *UnconfiguredEmbeddingService) EmbedTexts(ctx context.Context, texts []string) ([][]float32, error) {
  21. return nil, ErrEmbeddingNotConfigured
  22. }
  23. // GetDimension 返回默认维度,用于创建向量存储(与常见 OpenAI 小模型一致)
  24. func (s *UnconfiguredEmbeddingService) GetDimension() int {
  25. return 1536
  26. }
  27. // GetModelName 返回占位名称
  28. func (s *UnconfiguredEmbeddingService) GetModelName() string {
  29. return "未配置"
  30. }