chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
<?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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xspaceagi</groupId>
<artifactId>app-platform-memory</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>app-platform-memory-sdk</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Swagger注解 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,13 @@
package com.xspaceagi.memory.sdk.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class MemoryDeleteDto {
@Schema(description = "记忆ID列表")
private List<Long> memoryIds;
}

View File

@@ -0,0 +1,42 @@
package com.xspaceagi.memory.sdk.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 记忆数据DTO
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemoryMetaData {
/**
* 租户ID
*/
private Long tenantId;
/**
* 用户ID
*/
private Long userId;
/**
* 代理ID
*/
private Long agentId;
/**
* 上下文
*/
private String context;
/**
* 用户输入
*/
private String userInput;
}

View File

@@ -0,0 +1,62 @@
package com.xspaceagi.memory.sdk.dto;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* API Key 数据传输对象
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemorySaveDto {
@Schema(description = "更新、新增、追加memoryId对应记忆中的键值对")
private List<UpdateUnitWithID> updateMemoryKeyValues;
@Schema(description = "生成新的记忆")
private List<InsertUnit> insertMemories;
@Data
public static class UpdateUnitWithID {
@Schema(description = "记忆ID")
private Long memoryId;
@Schema(description = "更新替换原有内容比如手机号变更等、新增、追加在原有内容后面追加新的内容比如之前个人形象身高180现在又获取到了新的数据为皮肤黝黑新内容为“身高180皮肤黝黑”对应记忆中的键值对")
private Map<String, String> keyValues;
@JsonPropertyDescription("关键词标签列表")
private List<String> tags;
@JsonPropertyDescription("是否为敏感信息")
private Boolean isSensitive;
}
@Data
public static class InsertUnit {
@Schema(description = "一级分类")
private String category;
@Schema(description = "二级分类")
private String subCategory;
@Schema(description = "记忆中的键值对")
private Map<String, String> keyValues;
@JsonPropertyDescription("关键词标签列表")
private List<String> tags;
@JsonPropertyDescription("是否为敏感信息")
private Boolean isSensitive;
}
}

View File

@@ -0,0 +1,24 @@
package com.xspaceagi.memory.sdk.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* 记忆单元创建DTO
*/
@Data
@ApiModel(value = "记忆单元创建DTO", description = "创建记忆单元")
public class MemoryUnitCreateDTO {
private Long tenantId;
private Long userId;
private Long agentId;
private String category;
private String subCategory;
private Map<String, String> keyValues;
private List<String> tags;
private Boolean isSensitive;
}

View File

@@ -0,0 +1,54 @@
package com.xspaceagi.memory.sdk.dto;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 记忆单元DTO
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "记忆单元DTO", description = "记忆单元数据传输对象")
public class MemoryUnitDTO {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "代理ID")
private Long agentId;
@ApiModelProperty(value = "一级分类")
private String category;
@ApiModelProperty(value = "二级分类")
private String subCategory;
@ApiModelProperty(value = "内容JSON")
private String contentJson;
@ApiModelProperty(value = "是否敏感信息(0:否 1:是)")
private Boolean isSensitive;
@ApiModelProperty(value = "状态active、deleted")
private String status;
@ApiModelProperty(value = "创建时间")
private Date created;
@ApiModelProperty(value = "修改时间")
private Date modified;
}

View File

@@ -0,0 +1,34 @@
package com.xspaceagi.memory.sdk.dto;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 记忆单元查询DTO
*/
@Data
@ApiModel(value = "记忆单元查询DTO", description = "记忆单元查询条件")
public class MemoryUnitQueryDTO {
private Long tenantId;
private Long userId;
private Long agentId;
@JsonPropertyDescription("必须严格从上述一级分类中选择,不能自创")
private List<String> categories;
@JsonPropertyDescription("必须严格从上述二级分类中选择,不能自创")
private List<String> subCategories;
@JsonPropertyDescription("关键词标签列表,分词可以细粒度一点,尽量多生成有助于更精确查找")
private List<String> tags;
@JsonPropertyDescription("是否需要记忆的历史变更记录如果问题不需要requiresHistory 设为 false")
private Boolean requiresHistory;
@JsonPropertyDescription("查询范围可选值为today|yesterday|recent|long-term|all")
private String queryType;
@JsonPropertyDescription("时间范围非必填格式为2023-01-01 00:00:00-2023-01-01 23:59:59")
private String timeRange;
@JsonPropertyDescription("限制返回的记忆数量,默认为 10")
private Integer limit;
boolean justKeywordSearch;
}

View File

@@ -0,0 +1,22 @@
package com.xspaceagi.memory.sdk.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 记忆单元标签创建DTO
*/
@Data
@ApiModel(value = "记忆单元标签创建DTO", description = "创建记忆单元标签")
public class MemoryUnitTagCreateDTO {
@ApiModelProperty(value = "用户ID", required = true)
private Long userId;
@ApiModelProperty(value = "记忆ID", required = true)
private Long memoryId;
@ApiModelProperty(value = "标签名称", required = true)
private String tagName;
}

View File

@@ -0,0 +1,42 @@
package com.xspaceagi.memory.sdk.dto;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 记忆单元标签DTO
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "记忆单元标签DTO", description = "记忆单元标签数据传输对象")
public class MemoryUnitTagDTO {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "记忆ID")
private Long memoryId;
@ApiModelProperty(value = "标签名称")
private String tagName;
@ApiModelProperty(value = "创建时间")
private Date created;
@ApiModelProperty(value = "修改时间")
private Date modified;
}

View File

@@ -0,0 +1,32 @@
package com.xspaceagi.memory.sdk.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 记忆单元更新DTO
*/
@Data
public class MemoryUnitUpdateDTO {
private Long id;
private Long userId;
@ApiModelProperty(value = "一级分类")
private String category;
@ApiModelProperty(value = "二级分类")
private String subCategory;
@ApiModelProperty(value = "内容JSON")
private String contentJson;
@ApiModelProperty(value = "是否敏感信息")
private Boolean isSensitive;
@ApiModelProperty(value = "状态")
private String status;
private List<String> tags;
}

View File

@@ -0,0 +1,20 @@
package com.xspaceagi.memory.sdk.service;
import com.xspaceagi.memory.sdk.dto.MemoryMetaData;
import com.xspaceagi.memory.sdk.dto.MemorySaveDto;
import com.xspaceagi.memory.sdk.dto.MemoryUnitQueryDTO;
import java.util.List;
public interface IMemoryRpcService {
void createMemory(MemoryMetaData memoryData);
String searchMemoriesMd(Long tenantId, Long userId, Long agentId, String inputMessage, String context, boolean justKeywordSearch, boolean filterSensitive);
String queryMemoriesMd(MemoryUnitQueryDTO memoryUnitQueryDTO, boolean filterSensitive);
void saveMemories(Long tenantId, Long userId, Long agentId, MemorySaveDto memorySaveDto);
void deleteMemories(Long tenantId, Long userId, List<Long> memoryIds);
}