mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-10-15 12:15:32 +00:00
fix: AIAgentService getContext(this) 改为外部传入,Index 添加 aboutToDisappear 释放 display 监听
- AIAgentService: 添加 appContext 字段,构造函数接收 Context 参数 - ChatPage: 创建 AIAgentService 时传入 getContext(this) - Index: 添加 displayCallback 字段和 aboutToDisappear 释放监听
This commit is contained in:
@ -15,7 +15,7 @@ export struct ChatPage {
|
|||||||
async aboutToAppear() {
|
async aboutToAppear() {
|
||||||
// 初始化图记忆服务和 Agent
|
// 初始化图记忆服务和 Agent
|
||||||
const memoryService = new GraphMemoryService(this.db);
|
const memoryService = new GraphMemoryService(this.db);
|
||||||
this.agentService = new AIAgentService(memoryService);
|
this.agentService = new AIAgentService(memoryService, getContext(this));
|
||||||
|
|
||||||
// 加载历史消息(兼容旧数据:无 session_id 时加载全部)
|
// 加载历史消息(兼容旧数据:无 session_id 时加载全部)
|
||||||
const rawHistory = await this.db.getChatHistory(50, this.agentService.getSessionId());
|
const rawHistory = await this.db.getChatHistory(50, this.agentService.getSessionId());
|
||||||
|
|||||||
@ -8,11 +8,18 @@ import { ImmersiveTabNavigation } from '../components/ImmersiveTabNavigation';
|
|||||||
struct Index {
|
struct Index {
|
||||||
@State currentIndex: number = 0;
|
@State currentIndex: number = 0;
|
||||||
private db: GraphDatabase = new GraphDatabase();
|
private db: GraphDatabase = new GraphDatabase();
|
||||||
|
private displayCallback?: (data: display.Display) => void;
|
||||||
|
|
||||||
aboutToAppear() {
|
aboutToAppear() {
|
||||||
this.db.init(getContext(this));
|
this.db.init(getContext(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aboutToDisappear() {
|
||||||
|
if (this.displayCallback) {
|
||||||
|
display.off('change', this.displayCallback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
tabContentBuilder() {
|
tabContentBuilder() {
|
||||||
Column() {
|
Column() {
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
import http from '@ohos.net.http';
|
import http from '@ohos.net.http';
|
||||||
import dataPreferences from '@ohos.data.preferences';
|
import dataPreferences from '@ohos.data.preferences';
|
||||||
|
import { Context } from '@ohos.app.ability.UIAbility';
|
||||||
import { GraphMemoryService, EntityInfo, RelationInfo, TaskInfo, MemoryRecallParams, MemoryCommitParams, MemoryPurgeParams, TimeRangeParams, PurgeCriteriaParams, NewRelationParams, PersonaUpdateParams, TaskCreateParams, TaskSetStateParams, TaskDeleteParams, TaskLinkInfoParams, TaskArchiveParams, TaskQueryParams, TripletInput, PersonaQueryResult, TaskQueryResult, MemoryRecallResult } from './GraphMemoryService';
|
import { GraphMemoryService, EntityInfo, RelationInfo, TaskInfo, MemoryRecallParams, MemoryCommitParams, MemoryPurgeParams, TimeRangeParams, PurgeCriteriaParams, NewRelationParams, PersonaUpdateParams, TaskCreateParams, TaskSetStateParams, TaskDeleteParams, TaskLinkInfoParams, TaskArchiveParams, TaskQueryParams, TripletInput, PersonaQueryResult, TaskQueryResult, MemoryRecallResult } from './GraphMemoryService';
|
||||||
|
|
||||||
export interface ChatMessage {
|
export interface ChatMessage {
|
||||||
@ -382,8 +383,11 @@ export class AIAgentService {
|
|||||||
private currentSessionId: string;
|
private currentSessionId: string;
|
||||||
private turnCounter: number = 0;
|
private turnCounter: number = 0;
|
||||||
|
|
||||||
constructor(memoryService: GraphMemoryService, sessionId?: string) {
|
private appContext: Context;
|
||||||
|
|
||||||
|
constructor(memoryService: GraphMemoryService, appContext: Context, sessionId?: string) {
|
||||||
this.memoryService = memoryService;
|
this.memoryService = memoryService;
|
||||||
|
this.appContext = appContext;
|
||||||
this.currentSessionId = sessionId || `session-hm-${Date.now()}`;
|
this.currentSessionId = sessionId || `session-hm-${Date.now()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +417,7 @@ export class AIAgentService {
|
|||||||
const taskResult = await this.memoryService.memoryRecall(recallParams);
|
const taskResult = await this.memoryService.memoryRecall(recallParams);
|
||||||
|
|
||||||
// === 读取 API 配置 ===
|
// === 读取 API 配置 ===
|
||||||
const context = getContext(this);
|
const context = this.appContext;
|
||||||
const pref = await dataPreferences.getPreferences(context, 'trulymem_config');
|
const pref = await dataPreferences.getPreferences(context, 'trulymem_config');
|
||||||
const baseUrl: string = String(await pref.get('base_url', 'https://api.deepseek.com'));
|
const baseUrl: string = String(await pref.get('base_url', 'https://api.deepseek.com'));
|
||||||
const model: string = String(await pref.get('model', 'deepseek-chat'));
|
const model: string = String(await pref.get('model', 'deepseek-chat'));
|
||||||
|
|||||||
Reference in New Issue
Block a user