feat: 百科rag

This commit is contained in:
Blizzard
2026-04-23 11:15:58 +08:00
parent b2e6e511cd
commit e9c93d4029
8 changed files with 157 additions and 3 deletions
+48
View File
@@ -0,0 +1,48 @@
package plant
import (
"sundynix-go/global"
plantModel "sundynix-go/model/plant"
)
type AiChatHistoryService struct{}
// SaveHistory 保存一条问答记录
func (s *AiChatHistoryService) SaveHistory(userId, question, answer string) error {
record := plantModel.AiChatHistory{
UserId: userId,
Question: question,
Answer: answer,
}
return global.DB.Create(&record).Error
}
// GetHistoryList 获取用户问答历史(分页,最新在前)
func (s *AiChatHistoryService) GetHistoryList(userId string, current, pageSize int) ([]plantModel.AiChatHistory, int64, error) {
var list []plantModel.AiChatHistory
var total int64
db := global.DB.Model(&plantModel.AiChatHistory{}).Where("user_id = ?", userId)
db.Count(&total)
if current <= 0 {
current = 1
}
if pageSize <= 0 || pageSize > 50 {
pageSize = 20
}
offset := (current - 1) * pageSize
err := db.Order("created_at DESC").Offset(offset).Limit(pageSize).Find(&list).Error
return list, total, err
}
// DeleteHistory 删除单条记录
func (s *AiChatHistoryService) DeleteHistory(userId, id string) error {
return global.DB.Where("id = ? AND user_id = ?", id, userId).Delete(&plantModel.AiChatHistory{}).Error
}
// ClearHistory 清空用户所有历史
func (s *AiChatHistoryService) ClearHistory(userId string) error {
return global.DB.Where("user_id = ?", userId).Delete(&plantModel.AiChatHistory{}).Error
}