Skip to content

Commit

Permalink
expose llm_metrics in frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
Tingxi Lin committed Feb 23, 2025
1 parent 21eabba commit 108aa37
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 35 deletions.
20 changes: 20 additions & 0 deletions frontend/src/services/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,31 @@ const messageActions = {
},
};

function showLLMMetricsAlert(message: ActionMessage) {
const metrics = message.llm_metrics;
const usage = message.tool_call_metadata?.model_response?.usage;

if (!metrics && !usage) return;

alert([
'LLM Information',
metrics ? `Accumulated Cost: $${metrics.accumulated_cost.toFixed(4)}` : '',
usage ? `Prompt Tokens: ${usage.prompt_tokens}` : '',
usage ? `Completion Tokens: ${usage.completion_tokens}` : '',
usage ? `Total Tokens: ${usage.total_tokens}` : ''
].filter(line => line !== '').join('\n'));
}

export function handleActionMessage(message: ActionMessage) {
if (message.args?.hidden) {
return;
}

// Handle LLM metrics display
if (message.llm_metrics || message.tool_call_metadata?.model_response?.usage) {
showLLMMetricsAlert(message);
}

if (message.action === ActionType.RUN) {
store.dispatch(appendInput(message.args.command));
}
Expand Down
16 changes: 0 additions & 16 deletions frontend/src/services/observations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,6 @@ import {
export function handleObservationMessage(message: ObservationMessage) {
console.log("Processing observation message:", message);

// Handle llm_metrics and usage together
if (message.llm_metrics || message.tool_call_metadata?.model_response?.usage) {
const usage = message.tool_call_metadata?.model_response?.usage;
const metrics = message.llm_metrics;
console.log("Processing metrics:", metrics);
console.log("Processing usage:", usage);

alert([
'LLM Information',
metrics ? `Accumulated Cost: $${metrics.accumulated_cost.toFixed(4)}` : '',
usage ? `Prompt Tokens: ${usage.prompt_tokens}` : '',
usage ? `Completion Tokens: ${usage.completion_tokens}` : '',
usage ? `Total Tokens: ${usage.total_tokens}` : ''
].filter(line => line !== '').join('\n')); // Filter out empty lines
}

switch (message.observation) {
case ObservationType.RUN:
if (message.extras.hidden) break;
Expand Down
37 changes: 18 additions & 19 deletions frontend/src/types/message.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,24 @@ export interface ActionMessage {

// The timestamp of the message
timestamp: string;

// Add LLM-related fields
tool_call_metadata?: {
model_response?: {
usage?: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
};
};
llm_metrics?: {
accumulated_cost: number;
response_latencies: Array<{
latency: number;
timestamp: string;
}>;
};
}

export interface ObservationMessage {
Expand All @@ -38,25 +56,6 @@ export interface ObservationMessage {

// The timestamp of the message
timestamp: string;

// 添加 tool_call_metadata 字段
tool_call_metadata?: {
model_response?: {
usage?: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
};
};

llm_metrics?: {
accumulated_cost: number;
response_latencies: Array<{
latency: number;
timestamp: string;
}>;
};
}

export interface StatusMessage {
Expand Down

0 comments on commit 108aa37

Please sign in to comment.