Spaces:
Running
Running
| /** | |
| * Example Plugin: Analytics | |
| * | |
| * Dieses Plugin tracked User-Behavior und sammelt Stats | |
| */ | |
| const analytics = { | |
| sessionStart: null, | |
| messagesCount: 0, | |
| totalTokens: 0, | |
| totalTime: 0, | |
| averageResponseTime: 0, | |
| messageHistory: [], | |
| } | |
| export function onPluginInit(context) { | |
| analytics.sessionStart = new Date() | |
| context.log('📊 Analytics Plugin started') | |
| context.log(`Session ID: ${analytics.sessionStart.getTime()}`) | |
| } | |
| export function onMessageSent(context, { message, systemPrompt }) { | |
| analytics.messagesCount++ | |
| analytics.messageHistory.push({ | |
| type: 'user', | |
| content: message, | |
| timestamp: new Date(), | |
| }) | |
| context.log(`Message #${analytics.messagesCount}`) | |
| } | |
| export function onResponseReceived(context, { content, stats }) { | |
| analytics.totalTokens += stats.tokens | |
| analytics.totalTime += stats.time | |
| analytics.averageResponseTime = analytics.totalTime / analytics.messagesCount | |
| analytics.messageHistory.push({ | |
| type: 'assistant', | |
| content: content.substring(0, 100), | |
| timestamp: new Date(), | |
| tokens: stats.tokens, | |
| responseTime: stats.time, | |
| }) | |
| context.log(`📈 Stats:`) | |
| context.log(` Messages: ${analytics.messagesCount}`) | |
| context.log(` Total Tokens: ${analytics.totalTokens}`) | |
| context.log(` Avg Time: ${analytics.averageResponseTime.toFixed(2)}s`) | |
| // Mache diese Daten global verfügbar | |
| window.analytics = analytics | |
| } | |