From dba196d7773040072de7c70c2d92ee3442bd1968 Mon Sep 17 00:00:00 2001 From: zhaoweijie Date: Mon, 24 Feb 2025 11:09:29 +0800 Subject: [PATCH] feat: add localStroage --- src/components/Option/Metering/detail.tsx | 2 +- src/hooks/useMessageOption.tsx | 14 ++++++++------ src/store/option.tsx | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/components/Option/Metering/detail.tsx b/src/components/Option/Metering/detail.tsx index 4709f80..1551f5c 100644 --- a/src/components/Option/Metering/detail.tsx +++ b/src/components/Option/Metering/detail.tsx @@ -84,7 +84,7 @@ const columns: TableProps["columns"] = [ dataIndex: "date", key: "date", render: (date) => { - return
{formatDate(date ?? new Date())}
+ return
{formatDate(new Date(date))}
} }, { diff --git a/src/hooks/useMessageOption.tsx b/src/hooks/useMessageOption.tsx index aefd8ed..9b850a0 100644 --- a/src/hooks/useMessageOption.tsx +++ b/src/hooks/useMessageOption.tsx @@ -194,7 +194,7 @@ export const useMessageOption = () => { const meter: MeteringEntry = { id: generateMessageId, queryContent: message, - date: new Date() + date: new Date().getTime() } as MeteringEntry if (!isRegenerate) { @@ -489,20 +489,22 @@ export const useMessageOption = () => { // Save metering entry const { cot, content } = responseResolver(fullText) - setMeteringEntries([ { + const _meteringEntries = [{ ...meter, modelInputTokenCount: prompt.length, modelOutputTokenCount: fullText.length, - model: ollama.modelName, + model: ollama.modelName ?? ollama.model, relatedDataCount: iodData?.length ?? 0, - timeTaken: new Date().getTime() - meter.date.getTime(), - date: chatStartTime, + timeTaken: new Date().getTime() - chatStartTime.getTime(), + date: chatStartTime.getTime(), cot, responseContent: content, modelResponseContent: fullText, }, ...meteringEntries, - ]) + ] + setMeteringEntries(_meteringEntries) + localStorage.setItem("meteringEntries", JSON.stringify(_meteringEntries)) } catch (e) { const errorSave = await saveMessageOnError({ e, diff --git a/src/store/option.tsx b/src/store/option.tsx index 9cef91c..9d524eb 100644 --- a/src/store/option.tsx +++ b/src/store/option.tsx @@ -100,7 +100,7 @@ export type MeteringEntry = { // 大模型输出token数量 modelOutputTokenCount: number // 日期 - date: Date + date: number // 耗时 timeTaken: number // 大模型回答的全部内容 @@ -120,7 +120,7 @@ export const useStoreMessageOption = create((set) => ({ setMessages: (messages) => set({ messages }), history: [], setHistory: (history) => set({ history }), - meteringEntries: [], + meteringEntries: JSON.parse(localStorage.getItem("meteringEntries") || JSON.stringify([])), setMeteringEntries: (meteringEntries) => set({ meteringEntries }), streaming: false, setStreaming: (streaming) => set({ streaming }),