| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # coding=utf-8
- """
- 智能体记忆模型
- 存储智能体的长期记忆,支持对话过程中积累和检索
- """
- import uuid_utils.compat as uuid
- from django.db import models
- from common.mixins.app_model_mixin import AppModelMixin
- class ApplicationMemoryType(models.TextChoices):
- """记忆类型"""
- DIALOGUE = 'DIALOGUE', '对话记忆'
- KEYWORD = 'KEYWORD', '关键词记忆'
- SUMMARY = 'SUMMARY', '摘要记忆'
- CUSTOM = 'CUSTOM', '自定义记忆'
- class ApplicationMemory(AppModelMixin):
- """智能体记忆"""
- id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
- application = models.ForeignKey(
- 'application.Application',
- on_delete=models.CASCADE,
- db_constraint=False,
- verbose_name="应用",
- db_index=True
- )
- memory_type = models.CharField(
- max_length=20,
- choices=ApplicationMemoryType.choices,
- default=ApplicationMemoryType.DIALOGUE,
- verbose_name="记忆类型"
- )
- content = models.TextField(verbose_name="记忆内容")
- metadata = models.JSONField(default=dict, verbose_name="元数据")
- is_enabled = models.BooleanField(default=True, verbose_name="是否启用")
- relevance_score = models.FloatField(default=0.0, verbose_name="相关度分数")
- class Meta:
- db_table = "application_memory"
- ordering = ['-relevance_score', '-create_time']
- def __str__(self):
- return f"{self.application_id} - {self.memory_type}: {self.content[:50]}"
|