From bebe32fa18e1408081fe23c1c3d5b005446a9b5a Mon Sep 17 00:00:00 2001 From: kagami Date: Mon, 8 Jul 2024 19:04:16 +0800 Subject: [PATCH] Get logs of a topic via client --- src/handler/historyMessagesBase.ts | 43 +++++++++++++++++++++++------- src/toolwrapper/devchatClient.ts | 29 ++++++++++++++++++++ 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/handler/historyMessagesBase.ts b/src/handler/historyMessagesBase.ts index dd4d0ce..eb2161b 100644 --- a/src/handler/historyMessagesBase.ts +++ b/src/handler/historyMessagesBase.ts @@ -1,4 +1,17 @@ -import DevChat, { LogEntry, LogOptions } from '../toolwrapper/devchat'; +import { DevChatClient, ShortLog } from '../toolwrapper/devchatClient'; + +export interface LogEntry { + hash: string; + parent: string | null; + user: string; + date: string; + request: string; + response: string; + context: Array<{ + content: string; + role: string; + }>; +} export interface LoadHistoryMessages { command: string; @@ -41,18 +54,28 @@ OPENAI_API_KEY is missing from your environment or settings. Kindly input your O } as LogEntry; } -export async function loadTopicHistoryLogs(topicId: string | undefined): Promise | undefined> { +async function loadTopicHistoryLogs(topicId: string | undefined): Promise | undefined> { if (!topicId) { return undefined; } - - const devChat = new DevChat(); - const logOptions: LogOptions = { - skip: 0, - maxCount: 10000, - topic: topicId - }; - const logEntries = await devChat.log(logOptions); + + const dcClient = new DevChatClient(); + const shortLogs: ShortLog[] = await dcClient.getTopicLogs(topicId, 10000, 0); + + const logEntries: Array = []; + for (const shortLog of shortLogs) { + const logE: LogEntry = { + hash: shortLog.hash, + parent: shortLog.parent, + user: shortLog.user, + date: shortLog.date, + request: shortLog.request, + response: shortLog.responses[0], + context: shortLog.context, + }; + + logEntries.push(logE); + } return logEntries; } diff --git a/src/toolwrapper/devchatClient.ts b/src/toolwrapper/devchatClient.ts index 56094f9..5f01616 100644 --- a/src/toolwrapper/devchatClient.ts +++ b/src/toolwrapper/devchatClient.ts @@ -289,6 +289,35 @@ export class DevChatClient { return res; } + @timeThis + async getTopicLogs( + topicRootHash: string, + limit: number, + offset: number + ): Promise { + const data = { + limit: limit, + offset: offset, + workspace: UiUtilWrapper.workspaceFoldersFirstPath(), + }; + const response = await axios.get( + `${this.baseURL}/topics/${topicRootHash}/logs`, + { + params: data, + } + ); + + const logs: ShortLog[] = response.data; + logs.reverse(); + + logger + .channel() + ?.debug(`getTopicLogs response data: ${JSON.stringify(logs)}`); + + return logs; + } + + stopAllRequest(): void { this.cancelMessage(); // add other requests here if needed