chore: initialize qiming workspace repository
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>app-platform-memory</artifactId>
|
||||
<groupId>com.xspaceagi</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>app-platform-memory-domain</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.deploy.skip>true</maven.deploy.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.xspaceagi</groupId>
|
||||
<artifactId>app-platform-memory-spec</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 其他原有依赖保持不变 -->
|
||||
<dependency>
|
||||
<groupId>com.xspaceagi</groupId>
|
||||
<artifactId>app-platform-memory-sdk</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.xspaceagi.memory.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 记忆领域模型
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Memory {
|
||||
|
||||
/**
|
||||
* 记忆ID
|
||||
*/
|
||||
private String memoryId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 会话ID
|
||||
*/
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* 记忆类型 (short_term, long_term, working)
|
||||
*/
|
||||
private String memoryType;
|
||||
|
||||
/**
|
||||
* 记忆内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 扩展元数据
|
||||
*/
|
||||
private Map<String, Object> metadata;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private LocalDateTime expireTime;
|
||||
|
||||
/**
|
||||
* 记忆状态 (active, archived, deleted)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 重要性评分 (0.0-1.0)
|
||||
*/
|
||||
private Double importanceScore;
|
||||
|
||||
/**
|
||||
* 访问次数
|
||||
*/
|
||||
private Integer accessCount;
|
||||
|
||||
/**
|
||||
* 最后访问时间
|
||||
*/
|
||||
private LocalDateTime lastAccessTime;
|
||||
|
||||
/**
|
||||
* 标签列表
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 检查记忆是否过期
|
||||
*/
|
||||
public boolean isExpired() {
|
||||
return expireTime != null && LocalDateTime.now().isAfter(expireTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查记忆是否活跃
|
||||
*/
|
||||
public boolean isActive() {
|
||||
return "active".equals(status) && !isExpired();
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加访问次数
|
||||
*/
|
||||
public void incrementAccessCount() {
|
||||
this.accessCount = (this.accessCount == null ? 0 : this.accessCount) + 1;
|
||||
this.lastAccessTime = LocalDateTime.now();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.xspaceagi.memory.domain.repository;
|
||||
|
||||
import com.xspaceagi.memory.domain.model.Memory;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 记忆仓储接口
|
||||
*/
|
||||
public interface MemoryRepository {
|
||||
|
||||
/**
|
||||
* 保存记忆
|
||||
*/
|
||||
Memory save(Memory memory);
|
||||
|
||||
/**
|
||||
* 根据ID查找记忆
|
||||
*/
|
||||
Optional<Memory> findById(String memoryId);
|
||||
|
||||
/**
|
||||
* 根据用户ID和记忆类型查找记忆列表
|
||||
*/
|
||||
List<Memory> findByUserIdAndType(String userId, String memoryType);
|
||||
|
||||
/**
|
||||
* 根据会话ID查找记忆列表
|
||||
*/
|
||||
List<Memory> findBySessionId(String sessionId);
|
||||
|
||||
/**
|
||||
* 查找过期的记忆
|
||||
*/
|
||||
List<Memory> findExpiredMemories(LocalDateTime currentTime);
|
||||
|
||||
/**
|
||||
* 根据重要性分数查找记忆
|
||||
*/
|
||||
List<Memory> findByImportanceScoreGreaterThan(Double minScore);
|
||||
|
||||
/**
|
||||
* 删除记忆
|
||||
*/
|
||||
void deleteById(String memoryId);
|
||||
|
||||
/**
|
||||
* 批量删除记忆
|
||||
*/
|
||||
void batchDelete(List<String> memoryIds);
|
||||
|
||||
/**
|
||||
* 更新记忆状态
|
||||
*/
|
||||
void updateStatus(String memoryId, String status);
|
||||
|
||||
/**
|
||||
* 统计用户记忆数量
|
||||
*/
|
||||
long countByUserIdAndType(String userId, String memoryType);
|
||||
}
|
||||
Reference in New Issue
Block a user