embedding_config_repository.go 903 B

1234567891011121314151617181920212223242526272829303132333435
  1. package repository
  2. import (
  3. "github.com/2930134478/AI-CS/backend/models"
  4. "gorm.io/gorm"
  5. )
  6. // EmbeddingConfigRepository 知识库向量配置仓储(单例)
  7. type EmbeddingConfigRepository struct {
  8. db *gorm.DB
  9. }
  10. // NewEmbeddingConfigRepository 创建仓储实例
  11. func NewEmbeddingConfigRepository(db *gorm.DB) *EmbeddingConfigRepository {
  12. return &EmbeddingConfigRepository{db: db}
  13. }
  14. // Get 获取唯一一条配置(id=1),不存在则返回 nil, nil
  15. func (r *EmbeddingConfigRepository) Get() (*models.EmbeddingConfig, error) {
  16. var m models.EmbeddingConfig
  17. err := r.db.First(&m, 1).Error
  18. if err == gorm.ErrRecordNotFound {
  19. return nil, nil
  20. }
  21. if err != nil {
  22. return nil, err
  23. }
  24. return &m, nil
  25. }
  26. // Save 保存或更新(存在则更新,不存在则插入 id=1)
  27. func (r *EmbeddingConfigRepository) Save(c *models.EmbeddingConfig) error {
  28. c.ID = 1
  29. return r.db.Save(c).Error
  30. }