feat: add localStroage

This commit is contained in:
zhaoweijie 2025-02-24 11:09:29 +08:00
parent c5fa739a95
commit dba196d777
3 changed files with 11 additions and 9 deletions

View File

@ -84,7 +84,7 @@ const columns: TableProps<MeteringEntry>["columns"] = [
dataIndex: "date", dataIndex: "date",
key: "date", key: "date",
render: (date) => { render: (date) => {
return <div>{formatDate(date ?? new Date())}</div> return <div>{formatDate(new Date(date))}</div>
} }
}, },
{ {

View File

@ -194,7 +194,7 @@ export const useMessageOption = () => {
const meter: MeteringEntry = { const meter: MeteringEntry = {
id: generateMessageId, id: generateMessageId,
queryContent: message, queryContent: message,
date: new Date() date: new Date().getTime()
} as MeteringEntry } as MeteringEntry
if (!isRegenerate) { if (!isRegenerate) {
@ -489,20 +489,22 @@ export const useMessageOption = () => {
// Save metering entry // Save metering entry
const { cot, content } = responseResolver(fullText) const { cot, content } = responseResolver(fullText)
setMeteringEntries([ { const _meteringEntries = [{
...meter, ...meter,
modelInputTokenCount: prompt.length, modelInputTokenCount: prompt.length,
modelOutputTokenCount: fullText.length, modelOutputTokenCount: fullText.length,
model: ollama.modelName, model: ollama.modelName ?? ollama.model,
relatedDataCount: iodData?.length ?? 0, relatedDataCount: iodData?.length ?? 0,
timeTaken: new Date().getTime() - meter.date.getTime(), timeTaken: new Date().getTime() - chatStartTime.getTime(),
date: chatStartTime, date: chatStartTime.getTime(),
cot, cot,
responseContent: content, responseContent: content,
modelResponseContent: fullText, modelResponseContent: fullText,
}, },
...meteringEntries, ...meteringEntries,
]) ]
setMeteringEntries(_meteringEntries)
localStorage.setItem("meteringEntries", JSON.stringify(_meteringEntries))
} catch (e) { } catch (e) {
const errorSave = await saveMessageOnError({ const errorSave = await saveMessageOnError({
e, e,

View File

@ -100,7 +100,7 @@ export type MeteringEntry = {
// 大模型输出token数量 // 大模型输出token数量
modelOutputTokenCount: number modelOutputTokenCount: number
// 日期 // 日期
date: Date date: number
// 耗时 // 耗时
timeTaken: number timeTaken: number
// 大模型回答的全部内容 // 大模型回答的全部内容
@ -120,7 +120,7 @@ export const useStoreMessageOption = create<State>((set) => ({
setMessages: (messages) => set({ messages }), setMessages: (messages) => set({ messages }),
history: [], history: [],
setHistory: (history) => set({ history }), setHistory: (history) => set({ history }),
meteringEntries: [], meteringEntries: JSON.parse(localStorage.getItem("meteringEntries") || JSON.stringify([])),
setMeteringEntries: (meteringEntries) => set({ meteringEntries }), setMeteringEntries: (meteringEntries) => set({ meteringEntries }),
streaming: false, streaming: false,
setStreaming: (streaming) => set({ streaming }), setStreaming: (streaming) => set({ streaming }),