(db *gorm.DB)
| 18 | } |
| 19 | |
| 20 | func NewEntityVectorService(db *gorm.DB) *EntityVectorService { |
| 21 | config := vectorstore.LoadFromEnv() |
| 22 | store, err := vectorstore.NewVectorStore(config) |
| 23 | if err != nil { |
| 24 | logger.SysLogf("创建向量存储失败: %v", err) |
| 25 | store = nil |
| 26 | } |
| 27 | if store != nil { |
| 28 | ctx := context.Background() |
| 29 | if err := store.Connect(ctx); err != nil { |
| 30 | logger.SysLogf("连接向量存储失败: %v", err) |
| 31 | store = nil |
| 32 | } |
| 33 | } |
| 34 | return &EntityVectorService{ |
| 35 | db: db, |
| 36 | vectorDB: store, |
| 37 | embedding: NewEmbeddingService(db), |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | func (s *EntityVectorService) IndexEntity(eid int64, entity *model.Entity) error { |
| 42 | if entity == nil || entity.ID <= 0 { |
no test coverage detected