| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package embedding
- import (
- "context"
- "errors"
- )
- // ErrEmbeddingNotConfigured 嵌入服务未配置时返回的错误
- var ErrEmbeddingNotConfigured = errors.New("知识库向量模型未配置,请先在「设置 - 知识库向量模型」中配置 API 后再使用")
- // UnconfiguredEmbeddingService 未配置时的占位嵌入服务,实现 EmbeddingService 接口
- // 用于 DB 与 .env 均无有效配置时仍能启动服务;实际调用向量化时会返回 ErrEmbeddingNotConfigured
- type UnconfiguredEmbeddingService struct{}
- // NewUnconfiguredEmbeddingService 创建未配置占位嵌入服务
- func NewUnconfiguredEmbeddingService() *UnconfiguredEmbeddingService {
- return &UnconfiguredEmbeddingService{}
- }
- // EmbedText 向量化单个文本(未配置时返回错误)
- func (s *UnconfiguredEmbeddingService) EmbedText(ctx context.Context, text string) ([]float32, error) {
- return nil, ErrEmbeddingNotConfigured
- }
- // EmbedTexts 批量向量化文本(未配置时返回错误)
- func (s *UnconfiguredEmbeddingService) EmbedTexts(ctx context.Context, texts []string) ([][]float32, error) {
- return nil, ErrEmbeddingNotConfigured
- }
- // GetDimension 返回默认维度,用于创建向量存储(与常见 OpenAI 小模型一致)
- func (s *UnconfiguredEmbeddingService) GetDimension() int {
- return 1536
- }
- // GetModelName 返回占位名称
- func (s *UnconfiguredEmbeddingService) GetModelName() string {
- return "未配置"
- }
|