长期记忆开放接口

更新时间:
复制 MD 格式

本文档介绍长期记忆的开放接口,用户可以通过接口干预记忆挖掘策略,管理记忆结果。

使用说明

1. 如需使用长期记忆能力,请先在应用配置界面开启长期记忆开关。

2. 开启长期记忆后,默认启用通用记忆配置,记忆用户的个人信息、兴趣爱好、近期行为等,并在后续对话中自动召回,无需额外操作。以userid维度进行记忆的存储。

3. 如需根据业务场景自定义记忆策略,可使用本文档提供的接口。API配置后即时生效,并自动覆盖系统默认的记忆策略。

4. 如需对记忆结果进行查询和修改,可使用本文档提供的接口。

Endpoint: sfmmultimodalapp.cn-beijing.aliyuncs.com

Region: cn-beijing

接入示例

java

第一步:引入sdk

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>sfmmultimodalapp20250909</artifactId>
    <version>1.1.2</version>
</dependency>

第二步:代码示例

        Config config = new Config();
        config.setAccessKeyId("*");
        config.setAccessKeySecret("*");

        config.setEndpoint("********");  
        config.setRegionId("********"); 
        Client client = new Client(config);

        QueryMemoryConfigRequest request = new QueryMemoryConfigRequest();
        request.setWorkspaceId("llm-*"); //百炼的工作空间ID
        request.setAppId("*");  //百炼多模态交互套件APPID
        request.setUserDefinedId("*");

        QueryMemoryConfigResponse queryProfileResponse = client.queryMemoryConfig(request);
        System.out.println(JsonUtils.toJson(queryProfileResponse.getBody()));

python

第一步:安装sdk

pip install -i http://yum.tbsite.net/aliyun-pypi/simple/--extra-index-url http://yum.tbsite.net/pypi/simple/--trusted-host=yum.tbsite.net alibabacloud-sfmmultimodalapp20250909==1.1.2

第二步:代码示例

import sys
from typing import List

from Tea.exceptions import UnretryableException, TeaException
from alibabacloud_sfmmultimodalapp20250909.client import Client as SfmMultiModalApp20250909Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_sfmmultimodalapp20250909 import models as sfm_multi_modal_app_20250909_models


class PopRequest:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> SfmMultiModalApp20250909Client:
        config = open_api_models.Config(
            access_key_id='*',
            access_key_secret='*'
        )

        config.endpoint = f'*******'
        return SfmMultiModalApp20250909Client(config)

    @staticmethod
    def main(
            args: List[str],
    ) -> None:
        client = PopRequest.create_client()
        memory_config_request = sfm_multi_modal_app_20250909_models.QueryMemoryConfigRequest(
            workspace_id='*',
            app_id='*',
            user_defined_id='*'
        )
        headers = {}
        try:
            # 复制代码运行请自行打印 API 的返回值
            res = client.query_memory_config(memory_config_request)
            print('body', res.body)
            if res.body.success:
                print('data', res.body.data)
        except UnretryableException as e:
            # 网络异常
            print(e)
        except TeaException as e:
            # 业务异常
            print(e)
        except Exception as e:
            # 其他异常
            print(e)


if __name__ == '__main__':
    PopRequest.main(sys.argv[1:])

前置条件

  1. 需要首先登录阿里云,进入访问控制,为请求的ram账号分配权限:AliyunSFMMultiModalAppFullAcces,管理阿里云多模态交互开发套件(sfmmultimodalapp)的权限。

  2. ram账号同时必须在百炼有该工作空间id的权限。

接口列表

公共响应参数

参数

类型

必填

描述

requestId

String

请求Id

success

Boolean

是否成功

code

String

返回码

httpStatusCode

Integet

http状态码

message

String

返回消息

data

Object

返回数据

记忆策略配置

用户画像(profile)

用户画像用于设定具体的记忆挖掘策略,例如个人信息、兴趣爱好、行为偏好等。

多模态交互开发套件提供默认的用户画像挖掘规则,基本覆盖个人用户的生活和工作场景。如需自定义,可参考以下接口。支持进行用户级别、应用级别的用户画像配置。

通过接口完成配置后,将覆盖默认的用户画像配置。

1. 创建profile_schema(CreateProfile)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id(用户唯一标识,在工作空间下保持唯一)

workspaceId

varchar

空间id

appId

String

应用id

name

String

profile名称

description

String

profile描述

attributes

Array

属性

[0].name

String

名称,应该尽可能保证在语义中唯一,不然会对抽取效果有一定影响,如[“姓名”、“名称”、“名字”],[“年龄”,“年纪”,“岁数”] 不应该同时出现

[0].description

String

描述

[0].immutable

Boolean

是否不可修改,默认False

[0].defaultValue

String

初始值, 如果immutableTrue则必填

出参:

参数

类型

必填

描述

requestId

String

请求Id

schemaId

String

用户画像Id

name

String

profile名称

description

String

profile描述

2. 更新profile_schema(UpdateProfile)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id(用户唯一标识,在工作空间下保持唯一)

workspaceId

varchar

百炼工作空间id

appId

String

多模态应用id

name

String

profile名称

description

String

profile描述

attributesOperations

Array

属性

[0].op

String

枚举值:"add"表示新增, "update"表示更新, "delete"表示删除

[0].attributeId

String

attribute_id, op为"update"或者"delete"为必填

[0].name

String

名称,add时必填,如果name变更,可能会造成之前的值有异常

[0].description

String

描述

[0].defaultValue

String

默认值

出参:

参数

类型

必填

描述

requestId

String

请求Id

name

String

profile名称

description

String

profile描述

3. 删除profile_schema(DeleteProfile)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

出参:

参数

类型

必填

描述

requestId

String

请求Id

4. 获取profile_schema详情(QueryProfile)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

出参:

参数

类型

必填

描述

name

String

profile名称

description

String

profile描述

attributes

Object

属性

[0.]attributeId

String

属性id

[0.]name

String

名称

[0.]description

String

描述

[0.]immutable

Boolean

不可修改,默认False

[0.]defaultValue

String

初始值, 如果immutableTrue则必填

5. 获取用户画像数据(QueryUserProfile)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

工作空间id

appId

String

应用id

出参:

参数

类型

必填

描述

name

String

profile名称

description

String

profile描述

attributes

Object

属性

[0.]id

String

id

[0.]name

String

名称

[0.]value

String

记忆片段配置(memory config)

记忆片段用于挖掘用户画像之外的零散记忆片段,例如近期行为等。可以通过prompt配置具体的记忆策略。

1. 更新记忆片段配置(PatchMemoryConfig)

不存在就新增,存在就修改

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

String

空间id

appId

String

应用id

prompt

String

自定义指令,影响记忆抽取的效果

autoUpdate

Boolean

记忆合并更新,建议传true,避免数据膨胀

expirationTime

integer

记忆过期时间

topK

integer

最大召回数量

threshold

Double

最低阈值,建议值0.03

出参:

参数

类型

必填

描述

requestId

String

请求id

2. 查询记忆片段配置(QueryMemoryConfig)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

出参:

参数

类型

必填

描述

requestId

String

请求id

prompt

String

自定义指令,影响记忆抽取的效果,对应新增记忆的customInstructions

autoUpdate

Boolean

记忆合并更新,建议传true,避免数据膨胀

expirationTime

integer

记忆过期时间

topK

integer

最大召回数量

threshold

Double

最低阈值,建议值0.03

记忆数据管理

记忆管理(memory)

记忆管理接口,用于查询、编辑单个用户的记忆挖掘结果。

1. 新增记忆内容(CreateMemory)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

String

空间id

appId

String

应用id

content

String

自定义内容,固定会存入记忆数据contentmessagesJson必填一个

projectId

String

用户画像:profile_project

记忆片段:observation_project

messagesJson

String

消息列表,Json字符串,messages[0].role String messages[0].content String|Array 支持多模态,参考Omni入参

prompt

String

自定义指令,影响记忆抽取的效果,比如,”仅关注用户的职业信息,不要关注年龄,性别等隐私信息”

autoUpdate

Boolean

记忆合并更新,建议传true,避免数据膨胀

expirationTime

Integer

过期时间,值域[1-180]

-1 表示不过期

metaData

Object

元信息,(建议传如下字段)

[0].dialog_id

String

对话id,用于记录属于哪轮对话

[0].locationName

String

地理位置(语义)

[0].workspaceId

String

百炼工作空间id

[0].geoCoordinate

String

坐标,格式参考坐标转换 - 高德地图 API

[0].mediaDesc

Array

多模态信息表述

mediaDesc

参数

类型

必填

描述

url

String

多模态文件url

description

String

对应文本描述信息

出参:

参数

类型

必填

描述

requestId

String

请求Id

memoryNodes

Array

变更的记忆列表

[0].memoryNodeId

String

多模态文件url

[0].content

String

对应文本描述信息

[0].event

String

记忆事件,表示新增,更新,删除
"ADD","UPDATE","DELETE"

[0].oldContent

String

过去的内容,仅当event为"UPDATE"时有效

2. 查询记忆列表(QueryMemoryList)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

projectId

String

用户画像:profile_project

记忆片段:observation_project,

多模态应用为必填,语音应用可空

pageSize

Integer

每页大小,默认10

pageNum

Integer

页号,默认1

出参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

memoryNodes

Array

记忆列表

[0].memoryNodeId

String

生成的记忆唯一Id

[0].content

String

生成的记忆内容

[0].timestamp

String

消息时间戳

[0].createdAt

String

创建时间

[0].updatedAt

String

更新时间

[0].projectId

String

add/update时所指定的projectId,可能为空

[0].metaData

Obejct

元信息

total

Integer

总数

pageSize

Integer

每页大小

pageNum

Integer

页号

3. 删除记忆内容(DeleteMemory)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

memoryNodeId

String

生成的记忆唯一Id

出参:

参数

类型

必填

描述

requestId

String

请求Id

4. 修改记忆内容(UpdateMemory)

入参:

参数

类型

必填

描述

userDefinedId

String

用户id

workspaceId

varchar

空间id

appId

String

应用id

memoryNodeId

String

生成的记忆唯一Id

projectId

String

用户画像:profile_project

记忆片段:observation_project

metaData

Object

元信息,建议如下传

[0].dialog_id

String

对话id,用于记录属于哪轮对话

[0].locationName

String

地理位置(语义)

[0].workspaceId

String

工作空间id

[0].geoCoordinate

String

坐标,格式参考坐标转换 - 高德地图 API

[0].mediaDesc

Array

多模态信息表述

mediaDesc

参数

类型

必填

描述

url

String

多模态文件url

description

String

对应文本描述信息

附录

目前,基于用户维度的长期记忆,可挖掘和召回以下内容:

说明

下面表格是默认的用户画像,如果通过接口定义用户画像,这些内容将会被覆盖掉。

profile模块

profile

举例

个人信息

姓名:包括姓名、昵称、英文名等

用户名字叫小白,英文名叫Mike

出生日期:出生年月日、年龄、年龄段、星座、属相等

用户生日是122日,属牛

性别

用户是女生

民族

用户是朝鲜族人,能听懂韩语但不太会讲

身高、体重、血型

用户身高160cm,是O型血

职业

用户之前在金融公司上班,现在自己创业开餐厅

教育背景

用户毕业于清华大学计算机系,毕业时间是2016

重要日期:纪念日等

51日是用户的结婚纪念日

过敏史

用户对鸡蛋过敏,不能食用任何含鸡蛋的食物

用户对花粉过敏,春天尽量不去植物多的地方

地域:所在城市、家庭/公司/学校住址、籍贯等

用户是江苏人,在上海工作

用户的公司地点在陆家嘴

语言:母语、第二语言、方言等

用户会说英文和粤语,最近在学习日语

宗教信仰

用户没有宗教信仰,但偶尔会去寺庙走走

兴趣偏好

饮食偏好:口味、菜系、饮食文化、食物名称、餐厅名称、饮食禁忌、用餐习惯等

用户喜辣,爱吃四川火锅

用户不喜欢吃香菜

用户喜欢研究葡萄酒文化

用户对鸡蛋过敏

旅行偏好:目的地类型、目的地名称、旅行方式、季节偏好、住宿类型等

用户喜欢自然风光类景点

用户喜欢冬天去滑雪

用户偏向选择住民宿

购物偏好:购物方式、偏好品牌、价格敏感度、支付习惯等

用户喜欢双十一在淘宝囤货,喜欢研究各种打折活动

用户爱买xx品牌的衣服

阅读偏好:文学类型、书籍类型、书籍名称、作者名称、阅读习惯等

用户喜欢法国文学

用户喜欢读余华的书

用户倾向于阅读纸质书

收听偏好:音乐/播客/有声书等类型和名称、歌手/主播/创作者的风格和名字、收听平台、收听时段、收听时长等

用户喜欢早晨上班路上听科技播客

用户喜欢听周杰伦的歌

用户喜欢利用碎片时间听英语口语课

观影偏好:内容领域、电影/电视/综艺/纪录片/话剧等的类型和名称、演员/导演/博主等的类型和名字等

用户最近爱看短剧

用户喜欢喜剧片,最爱的演员是xxx

用户最喜欢的探店博主是xxx

运动偏好:运动项目、运动频率、运动场地等

用户最近每周至少晨跑三次

用户喜欢骑行,不擅长打篮球

出行偏好:常用交通工具、座位偏好等

用户短途出行倾向于高铁而不是飞机

用户喜欢靠窗的座位

衣着偏好:着装风格、配色风格、服装材质和图案、服装品牌等

用户喜欢棉质衣服,因为更透气舒适

用户喜欢休闲风格的穿着,尤其是牛仔裤

其他兴趣偏好,具体到细分的类别和名称

用户喜欢摄影,爱拍人像

用户最近对插花很感兴趣

生活习惯和状态

作息:睡眠习惯、生活规律等

用户每天要午睡30分钟

对话风格:喜欢的对话风格

用户希望助手用活泼的语气对话

思考方式:感性/理性,喜欢直接获得答案/通过对话引导思考等

用户希望引导思考而不是直接给出答案

技能水平:语言、运动等的技能水平

用户英语口语一般,希望通过练习快速提升

健康状况

基础指标:BMI、血压、心率等

用户BMI偏低,医生建议适当增重

身体异常状况:生病、感到身体不适等

用户最近有点感冒,喉咙不舒服

心理状况:焦虑、兴奋、疲惫等

用户最近心情不好,因为心爱的小狗去世了

人格特质:MBTI类型等

用户是ESTJ人格

医疗记录:手术/住院记录、长期用药清单、术后恢复计划等

用户刚刚做了阑尾手术,最近每天要服用三次xx药物

生活记录

购物历史:最近购入的商品

用户前两天买了很多清洁用品

浏览历史:影音、文章等浏览和阅读历史

用户今天把甄嬛传看到了30

行程历史:最近去过的城市、地点

用户昨天去了故宫和天安门

设备密码

用户家里的Wi-Fi密码是29283238

个人计划

短期计划:会议安排、购物清单、医院就诊等

用户明天要去超市购买水果和水杯

用户下周一要去牙科复诊

长期计划:职业规划、健身计划、减重目标、学习计划、财务目标等,以及完成进展

用户计划今年内减肥10

家庭相关

家庭成员/朋友基础信息:名字、年龄、职业、生活偏好等

用户的女儿叫小浩,3岁,最近喜欢看绘本

用户最好的朋友是Lily,认识5年了,生日是1015

家庭成员/朋友生活状况:孩子的营养补充计划、喜欢的游戏和玩具、学校班级等,老人的健康状态、饮食习惯等

用户的妈妈有高血压,每天早上要吃降压药

用户的儿子现在三年级,每周要上美术班

宠物相关:品种、昵称、年龄、体重、饮食偏好、性格、身体状况等

用户家里有一只叫旺财的狗,喜欢吃鸡腿