使用示例
四种常见长期记忆场景的完整可运行代码:自动持久化、按账户范围的身份、首次会话前的记忆注入,以及有针对性的重置。
长期记忆实战
示例 1:零配置自动持久化
1
2
3
示例 2:用于已认证用户的自定义身份提供器
using System;
using System.Collections.Generic;
using Convai.Domain.Identity;
using Convai.Runtime.Components;
using UnityEngine;
// --- 身份提供器 ---
// 返回服务器分配的账户 ID,它在不同设备和重新登录之间保持稳定。
public class EmployeeIdentityProvider : IEndUserIdentityProvider
{
private readonly string _accountId;
public EmployeeIdentityProvider(string accountId)
{
_accountId = accountId;
}
public string GetEndUserId() => _accountId;
}
// --- 元数据提供器 ---
// 将姓名和部门附加到最终用户记录。
// “name” 键会显示在编辑器的长期记忆选项卡中。
public class EmployeeMetadataProvider : IEndUserMetadataProvider
{
private readonly string _name;
private readonly string _department;
public EmployeeMetadataProvider(string name, string department)
{
_name = name;
_department = department;
}
public IReadOnlyDictionary<string, object> GetEndUserMetadata()
{
return new Dictionary<string, object>
{
{ "name", _name },
{ "department", _department }
};
}
}
// --- 场景设置 ---
public class OnboardingSessionSetup : MonoBehaviour
{
[SerializeField] private ConvaiManager _convaiManager;
// 在你的身份验证层解析出已登录员工后调用。
// 必须在 ConvaiManager 打开会话之前调用。
public void OnEmployeeSignedIn(string accountId, string fullName, string department)
{
_convaiManager.SetEndUserIdentityProvider(
new EmployeeIdentityProvider(accountId));
_convaiManager.SetEndUserMetadataProvider(
new EmployeeMetadataProvider(fullName, department));
}
}示例 3:在首次会话前预置记忆
示例 4:重置用户以进行全新的模拟运行
目标
方法
结论
最后更新于
这有帮助吗?