chore: initialize qiming workspace repository
This commit is contained in:
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user