e_chat_message.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package entity
  2. import (
  3. "context"
  4. "gorm.io/gorm"
  5. "yx-dataset-server/app/schema"
  6. )
  7. // GetChatMessageDB 获取ChatMessage存储
  8. func GetChatMessageDB(ctx context.Context, defDB *gorm.DB) *gorm.DB {
  9. return getDBWithModel(ctx, defDB, ChatMessage{})
  10. }
  11. // SchemaChatMessage ChatMessage对象
  12. type SchemaChatMessage schema.ChatMessage
  13. // ToChatMessage 转换为ChatMessage实体
  14. func (a SchemaChatMessage) ToChatMessage() *ChatMessage {
  15. item := &ChatMessage{
  16. RecordID: a.RecordID,
  17. UserId: a.UserId,
  18. AssistantId: a.AssistantId,
  19. SessionId: a.SessionId,
  20. RagSessionId: a.RagSessionId,
  21. Question: a.Question,
  22. Answer: a.Answer,
  23. CreatorId: a.CreatorId,
  24. }
  25. return item
  26. }
  27. // ToSchemaChatMessage 转换为ChatMessage对象
  28. func (a ChatMessage) ToSchemaChatMessage() *schema.ChatMessage {
  29. item := &schema.ChatMessage{
  30. RecordID: a.RecordID,
  31. UserId: a.UserId,
  32. AssistantId: a.AssistantId,
  33. SessionId: a.SessionId,
  34. RagSessionId: a.RagSessionId,
  35. Question: a.Question,
  36. Answer: a.Answer,
  37. CreatorId: a.CreatorId,
  38. CreatedAt: a.CreatedAt,
  39. }
  40. return item
  41. }
  42. // ChatMessage ChatMessage实体
  43. type ChatMessage struct {
  44. gorm.Model
  45. RecordID string `gorm:"column:record_id;size:32;index;"` // 记录id
  46. UserId string `gorm:"column:user_id;size:32;"` // 用户id
  47. AssistantId string `gorm:"column:assistant_id;size:32;"` // 助手id
  48. SessionId string `gorm:"column:session_id;size:32;index;"` // 会话id
  49. RagSessionId string `gorm:"column:rag_session_id;size:32;"` // rag_session_id
  50. Question string `gorm:"column:question;type:longtext;"` // 对话问题
  51. Answer string `gorm:"column:answer;type:longtext;"` // 对话答案
  52. CreatorId string `gorm:"column:creator_id;size:32;index;"` // 创建者id
  53. }
  54. // ChatMessages ChatMessage列表
  55. type ChatMessages []*ChatMessage
  56. // ToSchemaChatMessages 转换为ChatMessage对象列表
  57. func (a ChatMessages) ToSchemaChatMessages() []*schema.ChatMessage {
  58. list := make([]*schema.ChatMessage, len(a))
  59. for i, item := range a {
  60. list[i] = item.ToSchemaChatMessage()
  61. }
  62. return list
  63. }