Fix monitoring CI regressions

This commit is contained in:
Hyu
2026-07-02 17:22:33 +08:00
parent 0ce382fc8b
commit f85278f98b
9 changed files with 75 additions and 24 deletions
+1
View File
@@ -81,6 +81,7 @@ def fake_monitoring_app():
) )
app.monitoring_service.get_messages = AsyncMock(return_value=([{'id': 'msg-1', 'content': 'test'}], 100)) app.monitoring_service.get_messages = AsyncMock(return_value=([{'id': 'msg-1', 'content': 'test'}], 100))
app.monitoring_service.get_llm_calls = AsyncMock(return_value=([{'id': 'llm-1'}], 50)) app.monitoring_service.get_llm_calls = AsyncMock(return_value=([{'id': 'llm-1'}], 50))
app.monitoring_service.get_tool_calls = AsyncMock(return_value=([{'id': 'tool-1'}], 5))
app.monitoring_service.get_embedding_calls = AsyncMock(return_value=([{'id': 'emb-1'}], 10)) app.monitoring_service.get_embedding_calls = AsyncMock(return_value=([{'id': 'emb-1'}], 10))
app.monitoring_service.get_sessions = AsyncMock(return_value=([{'session_id': 'sess-1'}], 20)) app.monitoring_service.get_sessions = AsyncMock(return_value=([{'session_id': 'sess-1'}], 20))
app.monitoring_service.get_errors = AsyncMock(return_value=([{'id': 'err-1'}], 2)) app.monitoring_service.get_errors = AsyncMock(return_value=([{'id': 'err-1'}], 2))
@@ -534,13 +534,15 @@ const BotSessionMonitor = forwardRef<
message, message,
}), }),
); );
const toolItems: SessionTimelineItem[] = toolCalls.map((toolCall, index) => ({ const toolItems: SessionTimelineItem[] = toolCalls.map(
id: `tool-${toolCall.id}`, (toolCall, index) => ({
type: 'tool', id: `tool-${toolCall.id}`,
timestamp: parseTimestamp(toolCall.timestamp).getTime(), type: 'tool',
order: index * 2 + 1, timestamp: parseTimestamp(toolCall.timestamp).getTime(),
toolCall, order: index * 2 + 1,
})); toolCall,
}),
);
return [...messageItems, ...toolItems].sort( return [...messageItems, ...toolItems].sort(
(a, b) => a.timestamp - b.timestamp || a.order - b.order, (a, b) => a.timestamp - b.timestamp || a.order - b.order,
@@ -813,9 +815,7 @@ const BotSessionMonitor = forwardRef<
)} )}
</div> </div>
<pre className="whitespace-pre-wrap break-words rounded bg-background/80 p-2 font-mono text-[11px] leading-4 text-muted-foreground"> <pre className="whitespace-pre-wrap break-words rounded bg-background/80 p-2 font-mono text-[11px] leading-4 text-muted-foreground">
{truncateToolDetail( {truncateToolDetail(call.arguments)}
call.arguments,
)}
</pre> </pre>
</div> </div>
)} )}
@@ -398,17 +398,15 @@ export default function DynamicFormItemComponent({
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectGroup> <SelectGroup>
{config.options {config.options?.filter(hasUsableOptionName).map((option) => (
?.filter(hasUsableOptionName) <SelectItem
.map((option) => ( key={option.name}
<SelectItem value={option.name}
key={option.name} description={option.name}
value={option.name} >
description={option.name} {extractI18nObject(option.label)}
> </SelectItem>
{extractI18nObject(option.label)} ))}
</SelectItem>
))}
</SelectGroup> </SelectGroup>
</SelectContent> </SelectContent>
</Select> </Select>
@@ -1361,9 +1359,7 @@ export default function DynamicFormItemComponent({
{engineName} {engineName}
</div> </div>
{kbs.map((base) => { {kbs.map((base) => {
const isSelected = tempSelectedKBIds.includes( const isSelected = tempSelectedKBIds.includes(base.uuid);
base.uuid,
);
return ( return (
<div <div
key={base.uuid} key={base.uuid}
+9
View File
@@ -1391,6 +1391,15 @@ const esES = {
avgDuration: 'Duración promedio', avgDuration: 'Duración promedio',
calls: 'Llamadas', calls: 'Llamadas',
}, },
toolCalls: {
title: 'Llamadas de herramientas',
totalCalls: 'Llamadas',
duration: 'Duración de herramientas',
errorCalls: 'Llamadas fallidas',
arguments: 'Argumentos',
result: 'Resultado',
noToolCalls: 'No se registraron llamadas de herramientas',
},
tokens: { tokens: {
totalTokens: 'Tokens totales', totalTokens: 'Tokens totales',
inputTokens: 'Tokens de entrada', inputTokens: 'Tokens de entrada',
+9
View File
@@ -1364,6 +1364,15 @@ const jaJP = {
avgDuration: '平均期間', avgDuration: '平均期間',
calls: '呼び出し', calls: '呼び出し',
}, },
toolCalls: {
title: 'ツール呼び出し',
totalCalls: '呼び出し',
duration: 'ツール時間',
errorCalls: '失敗した呼び出し',
arguments: '引数',
result: '結果',
noToolCalls: 'ツール呼び出しは記録されていません',
},
tokens: { tokens: {
totalTokens: '総トークン数', totalTokens: '総トークン数',
inputTokens: '入力トークン', inputTokens: '入力トークン',
+9
View File
@@ -1367,6 +1367,15 @@ const ruRU = {
avgDuration: 'Средняя длительность', avgDuration: 'Средняя длительность',
calls: 'Вызовы', calls: 'Вызовы',
}, },
toolCalls: {
title: 'Вызовы инструментов',
totalCalls: 'Вызовы',
duration: 'Длительность инструментов',
errorCalls: 'Неудачные вызовы',
arguments: 'Аргументы',
result: 'Результат',
noToolCalls: 'Вызовы инструментов не записаны',
},
tokens: { tokens: {
totalTokens: 'Всего токенов', totalTokens: 'Всего токенов',
inputTokens: 'Входные токены', inputTokens: 'Входные токены',
+9
View File
@@ -1335,6 +1335,15 @@ const thTH = {
avgDuration: 'ระยะเวลาเฉลี่ย', avgDuration: 'ระยะเวลาเฉลี่ย',
calls: 'การเรียก', calls: 'การเรียก',
}, },
toolCalls: {
title: 'การเรียกใช้เครื่องมือ',
totalCalls: 'การเรียก',
duration: 'ระยะเวลาเครื่องมือ',
errorCalls: 'การเรียกที่ล้มเหลว',
arguments: 'อาร์กิวเมนต์',
result: 'ผลลัพธ์',
noToolCalls: 'ยังไม่มีการบันทึกการเรียกใช้เครื่องมือ',
},
tokens: { tokens: {
totalTokens: 'Token ทั้งหมด', totalTokens: 'Token ทั้งหมด',
inputTokens: 'Token อินพุต', inputTokens: 'Token อินพุต',
+9
View File
@@ -1360,6 +1360,15 @@ const viVN = {
avgDuration: 'Thời lượng trung bình', avgDuration: 'Thời lượng trung bình',
calls: 'Cuộc gọi', calls: 'Cuộc gọi',
}, },
toolCalls: {
title: 'Lượt gọi công cụ',
totalCalls: 'Lượt gọi',
duration: 'Thời lượng công cụ',
errorCalls: 'Lượt gọi thất bại',
arguments: 'Tham số',
result: 'Kết quả',
noToolCalls: 'Chưa ghi nhận lượt gọi công cụ',
},
tokens: { tokens: {
totalTokens: 'Tổng số Token', totalTokens: 'Tổng số Token',
inputTokens: 'Token đầu vào', inputTokens: 'Token đầu vào',
+9
View File
@@ -1292,6 +1292,15 @@ const zhHant = {
avgDuration: '平均持續時間', avgDuration: '平均持續時間',
calls: '呼叫次數', calls: '呼叫次數',
}, },
toolCalls: {
title: '工具呼叫',
totalCalls: '呼叫次數',
duration: '工具耗時',
errorCalls: '失敗次數',
arguments: '參數',
result: '結果',
noToolCalls: '未記錄工具呼叫',
},
tokens: { tokens: {
totalTokens: '總 Token 數', totalTokens: '總 Token 數',
inputTokens: '輸入 Token', inputTokens: '輸入 Token',