diff --git a/web/app/components/app/overview/appChart.tsx b/web/app/components/app/overview/appChart.tsx index 69894bfd1f..ddf9c9986e 100644 --- a/web/app/components/app/overview/appChart.tsx +++ b/web/app/components/app/overview/appChart.tsx @@ -77,6 +77,8 @@ export type IChartProps = { className?: string basicInfo: { title: string; explanation: string; timePeriod: string } valueKey?: string + isAvg?: boolean + unit?: string yMax?: number chartType: IChartType chartData: AppDailyConversationsResponse | AppDailyEndUsersResponse | AppTokenCostsResponse | { data: Array<{ date: string; count: number }> } @@ -87,6 +89,8 @@ const Chart: React.FC = ({ chartType = 'conversations', chartData, valueKey, + isAvg, + unit = '', yMax, className, }) => { @@ -213,8 +217,7 @@ const Chart: React.FC = ({ }, ], } - - const sumData = sum(yData) + const sumData = isAvg ? (sum(yData) / yData.length) : sum(yData) return (
@@ -223,7 +226,7 @@ const Chart: React.FC = ({
{t('appOverview.analysis.tokenUsage.consumed')} Tokens @@ -238,9 +241,9 @@ const Chart: React.FC = ({ ) } -const getDefaultChartData = ({ start, end }: { start: string; end: string }) => { +const getDefaultChartData = ({ start, end, key = 'count' }: { start: string; end: string; key?: string }) => { const diffDays = dayjs(end).diff(dayjs(start), 'day') - return Array.from({ length: diffDays || 1 }, () => ({ date: '', count: 0 })).map((item, index) => { + return Array.from({ length: diffDays || 1 }, () => ({ date: '', [key]: 0 })).map((item, index) => { item.date = dayjs(start).add(index, 'day').format(commonDateFormat) return item }) @@ -283,9 +286,10 @@ export const AvgSessionInteractions: FC = ({ id, period }) => { const noDataFlag = !response.data || response.data.length === 0 return } @@ -298,9 +302,11 @@ export const AvgResponseTime: FC = ({ id, period }) => { const noDataFlag = !response.data || response.data.length === 0 return } @@ -313,10 +319,12 @@ export const UserSatisfactionRate: FC = ({ id, period }) => { const noDataFlag = !response.data || response.data.length === 0 return } diff --git a/web/i18n/lang/app-overview.en.ts b/web/i18n/lang/app-overview.en.ts index 97136db98c..5df0abd476 100644 --- a/web/i18n/lang/app-overview.en.ts +++ b/web/i18n/lang/app-overview.en.ts @@ -71,6 +71,7 @@ const translation = { }, analysis: { title: 'Analysis', + ms: 'ms', totalMessages: { title: 'Total Messages', explanation: 'Daily AI interactions count; prompt engineering/debugging excluded.', diff --git a/web/i18n/lang/app-overview.zh.ts b/web/i18n/lang/app-overview.zh.ts index 3a045602f9..c590dfa741 100644 --- a/web/i18n/lang/app-overview.zh.ts +++ b/web/i18n/lang/app-overview.zh.ts @@ -71,6 +71,7 @@ const translation = { }, analysis: { title: '分析', + ms: '毫秒', totalMessages: { title: '全部消息数', explanation: '反映 AI 每天的互动总次数,每回答用户一个问题算一条 Message。提示词编排和调试的消息不计入。',