From 11f393eb0f5fed88101b34f00e1b8086b8ce6389 Mon Sep 17 00:00:00 2001 From: Garry Trinder Date: Mon, 28 Jul 2025 15:52:38 +0100 Subject: [PATCH] Add llm-usage sample --- .../llm-usage/.devproxy/azure-ai-prices.json | 13 + samples/llm-usage/.devproxy/devproxyrc.json | 55 ++ samples/llm-usage/.devproxy/feedback-api.json | 13 + .../llm-usage/.devproxy/feedback-data.json | 47 ++ samples/llm-usage/.devproxy/simulate-ai.json | 64 ++ .../llm-usage/.github/copilot-instructions.md | 85 +++ samples/llm-usage/.github/workflows/test.yml | 67 ++ samples/llm-usage/.gitignore | 13 + samples/llm-usage/.vscode/extensions.json | 8 + samples/llm-usage/.vscode/launch.json | 79 +++ samples/llm-usage/.vscode/tasks.json | 43 ++ samples/llm-usage/README.md | 84 +++ samples/llm-usage/assets/llm-usage-github.png | Bin 0 -> 180094 bytes samples/llm-usage/assets/sample.json | 78 +++ samples/llm-usage/css/styles.css | 205 ++++++ samples/llm-usage/index.html | 37 + samples/llm-usage/js/app.js | 253 +++++++ samples/llm-usage/js/env.js | 1 + samples/llm-usage/package-lock.json | 661 ++++++++++++++++++ samples/llm-usage/package.json | 20 + samples/llm-usage/playwright.config.js | 45 ++ .../llm-usage/tests/feedback-analysis.spec.js | 49 ++ 22 files changed, 1920 insertions(+) create mode 100644 samples/llm-usage/.devproxy/azure-ai-prices.json create mode 100644 samples/llm-usage/.devproxy/devproxyrc.json create mode 100644 samples/llm-usage/.devproxy/feedback-api.json create mode 100644 samples/llm-usage/.devproxy/feedback-data.json create mode 100644 samples/llm-usage/.devproxy/simulate-ai.json create mode 100644 samples/llm-usage/.github/copilot-instructions.md create mode 100644 samples/llm-usage/.github/workflows/test.yml create mode 100644 samples/llm-usage/.gitignore create mode 100644 samples/llm-usage/.vscode/extensions.json create mode 100644 samples/llm-usage/.vscode/launch.json create mode 100644 samples/llm-usage/.vscode/tasks.json create mode 100644 samples/llm-usage/README.md create mode 100644 samples/llm-usage/assets/llm-usage-github.png create mode 100644 samples/llm-usage/assets/sample.json create mode 100644 samples/llm-usage/css/styles.css create mode 100644 samples/llm-usage/index.html create mode 100644 samples/llm-usage/js/app.js create mode 100644 samples/llm-usage/js/env.js create mode 100644 samples/llm-usage/package-lock.json create mode 100644 samples/llm-usage/package.json create mode 100644 samples/llm-usage/playwright.config.js create mode 100644 samples/llm-usage/tests/feedback-analysis.spec.js diff --git a/samples/llm-usage/.devproxy/azure-ai-prices.json b/samples/llm-usage/.devproxy/azure-ai-prices.json new file mode 100644 index 0000000..af1d2a4 --- /dev/null +++ b/samples/llm-usage/.devproxy/azure-ai-prices.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.pricesfile.schema.json", + "prices": { + "gpt-4.1-2025-04-14": { + "input": 0.97, + "output": 3.87 + }, + "llama3.2": { + "input": 0.97, + "output": 3.87 + } + } +} \ No newline at end of file diff --git a/samples/llm-usage/.devproxy/devproxyrc.json b/samples/llm-usage/.devproxy/devproxyrc.json new file mode 100644 index 0000000..4f2eb64 --- /dev/null +++ b/samples/llm-usage/.devproxy/devproxyrc.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", + "plugins": [ + { + "name": "LatencyPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "apiLatencyPlugin", + "urlsToWatch": [ + "http://api.ecs.eu/*" + ] + }, + { + "name": "OpenAITelemetryPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "openAITelemetryPlugin" + }, + { + "name": "CrudApiPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "feedbackApi", + "urlsToWatch": [ + "http://api.ecs.eu/feedback" + ] + }, + { + "name": "MarkdownReporter", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" + } + ], + "urlsToWatch": [ + "https://models.github.ai/inference/chat/completions*" + ], + "feedbackApi": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/crudapiplugin.schema.json", + "apiFile": "feedback-api.json" + }, + "apiLatencyPlugin": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/latencyplugin.schema.json", + "minMs": 200, + "maxMs": 500 + }, + "openAITelemetryPlugin": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.schema.json", + "currency": "EUR", + "includeCosts": true, + "pricesFile": "azure-ai-prices.json" + }, + "logLevel": "trace", + "newVersionNotification": "stable", + "showSkipMessages": true +} \ No newline at end of file diff --git a/samples/llm-usage/.devproxy/feedback-api.json b/samples/llm-usage/.devproxy/feedback-api.json new file mode 100644 index 0000000..076331b --- /dev/null +++ b/samples/llm-usage/.devproxy/feedback-api.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/crudapiplugin.apifile.schema.json", + "actions": [ + { + "action": "getAll" + }, + { + "action": "create" + } + ], + "baseUrl": "http://api.ecs.eu/feedback", + "dataFile": "feedback-data.json" +} \ No newline at end of file diff --git a/samples/llm-usage/.devproxy/feedback-data.json b/samples/llm-usage/.devproxy/feedback-data.json new file mode 100644 index 0000000..36b0a13 --- /dev/null +++ b/samples/llm-usage/.devproxy/feedback-data.json @@ -0,0 +1,47 @@ +[ + { + "id": 1, + "feedback": "The presentation slides were very well designed and informative. Would be great to have them shared with all attendees afterward.", + "date": "2025-05-14T15:30:00" + }, + { + "id": 2, + "feedback": "The speaker was excellent but the Q&A session was cut short. Please allocate more time for questions in future events.", + "date": "2025-05-14T16:45:00" + }, + { + "id": 3, + "feedback": "Try to speak more slowly and enunciate more clearly. Some attendees in the back had trouble hearing you.", + "date": "2025-05-14T14:20:00" + }, + { + "id": 4, + "feedback": "The coffee during the break was amazing!", + "date": "2025-05-14T10:15:00" + }, + { + "id": 5, + "feedback": "Include more real-world examples in your next presentation to better illustrate the concepts.", + "date": "2025-05-15T09:30:00" + }, + { + "id": 6, + "feedback": "The room was too cold, please adjust the temperature for tomorrow's sessions.", + "date": "2025-05-15T11:10:00" + }, + { + "id": 7, + "feedback": "I really liked the speaker's tie.", + "date": "2025-05-15T13:45:00" + }, + { + "id": 8, + "feedback": "Your slides had too much text. Consider using more visuals and less text for better audience engagement.", + "date": "2025-05-15T10:20:00" + }, + { + "id": 9, + "feedback": "The session was okay.", + "date": "2025-05-15T13:47:00" + } +] \ No newline at end of file diff --git a/samples/llm-usage/.devproxy/simulate-ai.json b/samples/llm-usage/.devproxy/simulate-ai.json new file mode 100644 index 0000000..6e8d940 --- /dev/null +++ b/samples/llm-usage/.devproxy/simulate-ai.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", + "plugins": [ + { + "name": "LatencyPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "apiLatencyPlugin", + "urlsToWatch": [ + "http://api.ecs.eu/*" + ] + }, + { + "name": "OpenAITelemetryPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "openAITelemetryPlugin" + }, + { + "name": "CrudApiPlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", + "configSection": "feedbackApi", + "urlsToWatch": [ + "http://api.ecs.eu/feedback" + ] + }, + { + "name": "OpenAIMockResponsePlugin", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" + }, + { + "name": "MarkdownReporter", + "enabled": true, + "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" + } + ], + "urlsToWatch": [ + "https://models.github.ai/inference/chat/completions*" + ], + "feedbackApi": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/crudapiplugin.schema.json", + "apiFile": "feedback-api.json" + }, + "apiLatencyPlugin": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/latencyplugin.schema.json", + "minMs": 200, + "maxMs": 500 + }, + "openAITelemetryPlugin": { + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.schema.json", + "currency": "EUR", + "includeCosts": true, + "pricesFile": "azure-ai-prices.json" + }, + "languageModel": { + "enabled": true, + "model": "llama3.2" + }, + "logLevel": "trace", + "newVersionNotification": "stable", + "showSkipMessages": true +} \ No newline at end of file diff --git a/samples/llm-usage/.github/copilot-instructions.md b/samples/llm-usage/.github/copilot-instructions.md new file mode 100644 index 0000000..6c229ef --- /dev/null +++ b/samples/llm-usage/.github/copilot-instructions.md @@ -0,0 +1,85 @@ +# Dev Proxy LLM Usage Test Project + +## Architecture Overview + +This is a **Dev Proxy test application** that demonstrates LLM usage monitoring and cost tracking. The app fetches feedback from a mock API, uses OpenAI's GPT-4.1 to categorize feedback, and displays results with visual "pills" - all while Dev Proxy intercepts and analyzes the LLM calls. + +**Key Components:** +- **Frontend**: Vanilla JavaScript SPA with OpenAI SDK integration (`js/app.js`) +- **Mock API**: Dev Proxy serves feedback data from `.devproxy/feedback-data.json` +- **LLM Integration**: GitHub Models API (models.github.ai) for GPT-4.1 categorization +- **Testing**: Playwright E2E tests that verify the full AI pipeline +- **Monitoring**: Dev Proxy tracks costs, latency, and usage patterns + +## Critical Dev Proxy Integration + +**Dev Proxy Configuration** (`.devproxy/devproxyrc.json`): +- `CrudApiPlugin`: Serves mock feedback API from `feedback-data.json` +- `OpenAITelemetryPlugin`: Tracks LLM costs and usage (EUR pricing in `azure-ai-prices.json`) +- `LatencyPlugin`: Simulates 200-500ms API delays +- `MarkdownReporter`: Generates usage reports + +**Essential Commands:** +```bash +# Start dev server (port 8007) +npm start + +# Run Playwright tests with Dev Proxy +npm test + +# Install Edge browser for testing +npm run install:msedge +``` + +## LLM Integration Pattern + +**Authentication**: Uses GitHub token via `js/env.js` (replaced by CI workflow) +**API Configuration**: +```javascript +const llmUrl = "https://models.github.ai/inference"; +const model = "openai/gpt-4.1"; +``` + +**Retry Logic**: 3 attempts with category validation (`for-organizers`, `for-speakers`, `useless`) +**UI Pattern**: Pills are hidden by default, revealed via `.pills-visible` class after analysis + +## Testing Strategy + +**E2E Test Flow** (`tests/feedback-analysis.spec.js`): +1. Load app and wait for feedback items +2. Click "Analyze Feedback" button +3. Wait for "Analysis Complete" (120s timeout for LLM calls) +4. Verify all pills have valid categories (not all "Unknown") + +**Key Test Configuration**: +- Uses Microsoft Edge browser only +- Network request/response logging enabled +- Slow test timeout for LLM processing +- Base URL: `http://127.0.0.1:8007` + +## CI/CD Integration + +**GitHub Actions Workflow** (`.github/workflows/test.yml`): +- Replaces `env.js` with actual `GITHUB_TOKEN` +- Sets up Dev Proxy with auto-recording +- Installs Chromium certificates for proxy +- Uploads Dev Proxy reports and logs as artifacts + +**Key Workflow Features**: +- Uses `dev-proxy-tools/actions` for setup +- Enables job summary reporting +- Captures complete proxy logs for debugging + +## Development Guidelines + +**Environment Setup**: Always use Dev Proxy - the app expects intercepted APIs +**API Mocking**: Modify `.devproxy/feedback-data.json` to change test data +**Styling**: Uses CSS custom properties with dark mode support +**Error Handling**: LLM failures gracefully degrade to "unknown" category + +**File Structure**: +- `js/app.js`: Core application logic +- `js/env.js`: API key configuration (replaced in CI) +- `.devproxy/`: Complete Dev Proxy configuration +- `tests/`: Playwright E2E tests +- `css/styles.css`: Modern CSS with pill styling diff --git a/samples/llm-usage/.github/workflows/test.yml b/samples/llm-usage/.github/workflows/test.yml new file mode 100644 index 0000000..e9868ea --- /dev/null +++ b/samples/llm-usage/.github/workflows/test.yml @@ -0,0 +1,67 @@ +name: Test Dev Proxy LLM Usage with Playwright + +on: + workflow_dispatch: + +permissions: + models: read + +jobs: + test-llm-usage: + name: Test Dev Proxy LLM Usage with Playwright + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Update env.js + run: | + echo "Updating env.js..." + echo "export const apiKey = '${{ secrets.GITHUB_TOKEN }}';" > ./js/env.js + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install dependencies + run: npm ci + + - name: Install Edge browser + run: npm run install:msedge + + - name: Setup Dev Proxy + uses: dev-proxy-tools/actions/setup@v1 + with: + auto-record: true + version: v1.0.0-beta.8 + report-job-summary: $GITHUB_STEP_SUMMARY + + - name: Install the Dev Proxy certificate for Chromium + uses: dev-proxy-tools/actions/chromium-cert@v1 + + - name: Run Playwright tests + run: npm test + + - name: Stop recording + uses: dev-proxy-tools/actions/record-stop@v1 + + - name: Upload Dev Proxy reports + uses: actions/upload-artifact@v4 + with: + name: Reports + path: ./*Reporter* + + - name: Show logs + if: always() + run: | + echo "Dev Proxy logs:" + cat devproxy.log + + - name: Upload Dev Proxy logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: devproxy.log + path: devproxy.log diff --git a/samples/llm-usage/.gitignore b/samples/llm-usage/.gitignore new file mode 100644 index 0000000..59313b8 --- /dev/null +++ b/samples/llm-usage/.gitignore @@ -0,0 +1,13 @@ +node_modules +*.log +.DS_Store +*Reporter* + +# Playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ + +# act +.artifacts \ No newline at end of file diff --git a/samples/llm-usage/.vscode/extensions.json b/samples/llm-usage/.vscode/extensions.json new file mode 100644 index 0000000..8293909 --- /dev/null +++ b/samples/llm-usage/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "garrytrinder.dev-proxy-toolkit", + "ms-playwright.playwright", + "github.vscode-github-actions", + "SanjulaGanepola.github-local-actions" + ] +} \ No newline at end of file diff --git a/samples/llm-usage/.vscode/launch.json b/samples/llm-usage/.vscode/launch.json new file mode 100644 index 0000000..efa9770 --- /dev/null +++ b/samples/llm-usage/.vscode/launch.json @@ -0,0 +1,79 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "๐Ÿงช Run tests, local AI & API", + "type": "node", + "request": "launch", + "runtimeExecutable": "npm", + "runtimeArgs": [ + "test" + ], + "console": "integratedTerminal", + "preLaunchTask": "devproxy-start-simulate-ai", + "postDebugTask": "devproxy-stop", + "presentation": { + "group": "Playwright Tests", + "order": 1 + } + }, + { + "name": "๐Ÿงช Run tests, cloud AI & local API", + "type": "node", + "request": "launch", + "runtimeExecutable": "npm", + "runtimeArgs": [ + "test" + ], + "console": "integratedTerminal", + "preLaunchTask": "devproxy-start", + "postDebugTask": "devproxy-stop", + "presentation": { + "group": "Playwright Tests", + "order": 2 + } + }, + { + "name": "๐ŸŒ Run web app, local AI & API", + "type": "node", + "request": "launch", + "runtimeExecutable": "npm", + "runtimeArgs": [ + "start" + ], + "console": "integratedTerminal", + "serverReadyAction": { + "pattern": "Available on:", + "uriFormat": "http://127.0.0.1:8007", + "action": "openExternally" + }, + "preLaunchTask": "devproxy-start-simulate-ai", + "postDebugTask": "devproxy-stop", + "presentation": { + "group": "Web App Launch", + "order": 1 + } + }, + { + "name": "๐ŸŒ Run web app, cloud AI & local API", + "type": "node", + "request": "launch", + "runtimeExecutable": "npm", + "runtimeArgs": [ + "start" + ], + "console": "integratedTerminal", + "serverReadyAction": { + "pattern": "Available on:", + "uriFormat": "http://127.0.0.1:8007", + "action": "openExternally" + }, + "preLaunchTask": "devproxy-start", + "postDebugTask": "devproxy-stop", + "presentation": { + "group": "Web App Launch", + "order": 2 + } + } + ] +} \ No newline at end of file diff --git a/samples/llm-usage/.vscode/tasks.json b/samples/llm-usage/.vscode/tasks.json new file mode 100644 index 0000000..4f0b818 --- /dev/null +++ b/samples/llm-usage/.vscode/tasks.json @@ -0,0 +1,43 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "npm install", + "type": "shell", + "command": "npm", + "args": [ + "install" + ], + "group": "build", + }, + { + "label": "devproxy-start", + "type": "devproxy", + "command": "start", + "isBackground": true, + "problemMatcher": "$devproxy-watch", + "dependsOn": "npm install", + "args": [ + "--record" + ], + }, + { + "label": "devproxy-start-simulate-ai", + "type": "devproxy", + "command": "start", + "isBackground": true, + "problemMatcher": "$devproxy-watch", + "args": [ + "-c", + ".devproxy/simulate-ai.json", + "--record" + ], + "dependsOn": "npm install" + }, + { + "label": "devproxy-stop", + "type": "devproxy", + "command": "stop" + } + ] +} \ No newline at end of file diff --git a/samples/llm-usage/README.md b/samples/llm-usage/README.md new file mode 100644 index 0000000..3159f28 --- /dev/null +++ b/samples/llm-usage/README.md @@ -0,0 +1,84 @@ +# Track language model usage and costs + +## Summary + +Sample web app that demonstrates how to use Dev Proxy to monitor and track LLM usage and costs. + +![GitHub Actions summary for 'Test Dev Proxy LLM Usage with Playwright #38' by garrytrinder. Status: Success. Duration: 3m 40s. Includes LLM usage report for gpt-4-1-2025-04-14 showing token usage and cost in development environment.](/assets/llm-usage-github.png) + +The sample showcases: + +- **LLM Cost Tracking**: Monitor token usage and costs for OpenAI API calls +- **Functional API Integration**: Serve test data using CrudApiPlugin +- **Latency Simulation**: Add realistic delays to API responses +- **VS Code Integration**: Use Dev Proxy Toolkit for local development and testing +- **End-to-End Testing**: Playwright tests that verify the complete AI pipeline +- **CI/CD Integration**: GitHub Actions workflow with automated testing + +## Compatibility + +![Dev Proxy v1.0.0-beta.8](https://img.shields.io/badge/devproxy-v1.0.0-green.svg) + +## Contributors + +* [Garry Trinder](https://github.com/garrytrinder) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|July 28, 2025|Initial release + +## Minimal path to awesome + +1. Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/proxy-samples/tree/main/samples/llm-usage) then unzip it) +1. Open the repository in Visual Studio Code +1. Install the [Dev Proxy Toolkit](https://marketplace.visualstudio.com/items?itemName=garrytrinder.dev-proxy-toolkit) extension + +### Run locally (with local AI) + +> [!NOTE] +> +> For Dev Proxy to simulate AI responses, you will need to run a local model on your machine which is accessible via an OpenAI API compatible endpoint, .e.g. Ollama. By default, this sample uses the Llama 3.2 model, change the `languageModel.model` property in the `.devproxy/simulate-ai.json` file to use a different model. Ensure that the model is running before starting Dev Proxy. + +1. Start debug session in Visual Studio Code by pressing F5 +1. Wait for the process to complete +1. Open the markdown file that is created in the root of the project to view the LLM usage report for the run. + +### Run locally (with cloud AI) + +1. Generate a fine-grained personal access token with `models:read` permission granted. +1. Update the `apiKey` variable value in `js/env.js` with your token. +1. Open **Run and Debug** panel and select **๐Ÿงช Run tests, cloud AI & local API** debug configuration +1. Start the debug session by pressing F5 +1. Wait for the process to complete +1. Open the markdown file that is created in the root of the project to view the LLM usage report for the run. + +### Run in GitHub Actions + +> [!NOTE] +> +> Enable GitHub Actions in your repository settings before running the workflow. + +1. Push the **main** branch to your GitHub repository +1. Open a browser and navigate to your repository +1. Open the **Actions** tab in your repository +1. Trigger the **Test Dev Proxy LLM Usage with Playwright** workflow manually +1. Wait for the workflow to complete +1. View the usage report in the job summary + +## Help + +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. + +You can try looking at [issues related to this sample](https://github.com/pnp/proxy-samples/issues?q=label%3A%22sample%3A%20llm-usage%22) to see if anybody else is having the same issues. + +If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/proxy-samples/issues/new). + +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/proxy-samples/issues/new). + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +![](https://m365-visitor-stats.azurewebsites.net/SamplesGallery/proxy-samples-llm-usage) diff --git a/samples/llm-usage/assets/llm-usage-github.png b/samples/llm-usage/assets/llm-usage-github.png new file mode 100644 index 0000000000000000000000000000000000000000..d575dc11e0e9303e5b1b063dc88dbd3f14a2fcfa GIT binary patch literal 180094 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

dH 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 z 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 bIavN5F>8O<_ey + + + + + + Session Evaluations + + + + + + + +

+
+

Session Evaluations

+
+
+
+ +
+
+
+ +
+
+
+
+

© 2025 Event Management

+
+
+ + + + + \ No newline at end of file diff --git a/samples/llm-usage/js/app.js b/samples/llm-usage/js/app.js new file mode 100644 index 0000000..a8aa05e --- /dev/null +++ b/samples/llm-usage/js/app.js @@ -0,0 +1,253 @@ +/** + * Session Evaluations Web App + * + * This script fetches and displays session evaluations with classification + * labels (pills) in a modern UI. + */ + +const llmUrl = "https://models.github.ai/inference"; +const model = "openai/gpt-4.1"; + +// Import OpenAI from CDN +import OpenAI from "https://cdn.jsdelivr.net/npm/openai@4.98.0/+esm"; +import { apiKey } from "./env.js"; // Import API key from env.js + +const openai = new OpenAI({ + baseURL: llmUrl, + apiKey, + dangerouslyAllowBrowser: true, +}); + +/** + * Format a date string into a human-readable format + * @param {string} dateString - ISO date string + * @return {string} Formatted date string + */ +function formatDate(dateString) { + const date = new Date(dateString); + return new Intl.DateTimeFormat("en-US", { + month: "short", + day: "numeric", + hour: "numeric", + minute: "numeric", + }).format(date); +} + +/** + * Get the display name and CSS class for a category + * @param {string} category - The category identifier + * @return {Object} Object containing display name and CSS class + */ +function getCategoryInfo(category) { + switch (category) { + case "for-organizers": + return { display: "For Organizers", cssClass: "pill-organizer" }; + case "for-speakers": + return { display: "For Speakers", cssClass: "pill-speaker" }; + case "useless": + return { display: "Useless", cssClass: "pill-useless" }; + default: + return { display: "Unknown", cssClass: "" }; + } +} + +/** + * Creates HTML for an evaluation item + * @param {Object} evaluation - The evaluation data + * @return {string} HTML string for the evaluation + */ +function createEvaluationHTML(evaluation) { + const categoryInfo = getCategoryInfo(evaluation.category); + + return ` +
+

${evaluation.feedback}

+
+ ${ + categoryInfo.display + } + ${formatDate(evaluation.date)} +
+
+ `; +} + +/** + * Fetches evaluations from the API + * @return {Promise} Promise resolving to array of evaluations + */ +async function fetchEvaluations() { + const response = await fetch("http://api.ecs.eu/feedback"); + return await response.json(); +} + +/** + * Renders the evaluations to the DOM + * @param {Array} evaluations - Array of evaluation objects + */ +function renderEvaluations(evaluations) { + const container = document.getElementById("evaluations-list"); + + // Sort evaluations by date (newest first) + const sortedEvaluations = [...evaluations].sort( + (a, b) => new Date(b.date) - new Date(a.date) + ); + + // Generate HTML for all evaluations + const evaluationsHTML = sortedEvaluations + .map((evaluation) => createEvaluationHTML(evaluation)) + .join(""); + + // Update the DOM + container.innerHTML = evaluationsHTML; +} + +/** + * Retrieves the category of feedback using AI + * @param {string} feedbackText - The feedback text to categorize + * @return {Promise} Promise resolving to the category + */ +async function getEvaluationCategory(feedbackText) { + const validCategories = ["for-organizers", "for-speakers", "useless"]; + const maxRetries = 3; + + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + // Call OpenAI with model + const response = await openai.chat.completions.create({ + model, + messages: [ + { + role: "system", + content: `Classify the following piece of feedback into one of the following categories: ${validCategories.join( + ", " + )}. Respond with the category name only. The feedback is:`, + }, + { + role: "user", + content: feedbackText, + }, + ], + }); + + // Extract the category from the response + const category = response.choices[0].message.content.trim().toLowerCase(); + + // Check if it's a valid category + if (validCategories.includes(category)) { + return category; + } + + console.log( + `Attempt ${attempt}: Invalid category response "${category}". Retrying...` + ); + } catch (error) { + // If we're on the last attempt, rethrow the error + if (attempt === maxRetries) { + throw error; + } + console.log( + `Attempt ${attempt} failed with error: ${error.message}. Retrying...` + ); + } + } + + // If we've exhausted all retries, return a default category + console.warn("Failed to get a valid category after maximum retries"); + return "unknown"; // Default fallback category after all retries fail +} + +/** + * Analyzes feedback content using AI to categorize it + * Shows a loading state and then reveals the pills after analysis is complete + * @param {Array} evaluations - Array of evaluation objects + */ +async function analyzeFeedback(evaluations) { + const button = document.getElementById("analyze-button"); + const evaluationsContainer = document.querySelector(".evaluations-container"); + + // Disable button and show loading state + button.disabled = true; + button.innerHTML = 'Analyzing '; + + // Show pills container immediately + evaluationsContainer.classList.add("pills-visible"); + + // Create a copy of evaluations to work with + const evaluationsCopy = [...evaluations]; + + // Counter to track progress + let processedCount = 0; + const totalCount = evaluations.length; + + try { + // Process each evaluation with OpenAI API + const processingPromises = evaluations.map(async (evaluation, index) => { + try { + // Get category for this evaluation + evaluation.category = await getEvaluationCategory(evaluation.feedback); + + // Update the counter + processedCount++; + + // Update the button text to show progress + button.innerHTML = `Analyzing ${processedCount}/${totalCount} `; + + // Re-render all evaluations with currently available categories + renderEvaluations(evaluationsCopy); + + return evaluation; + } catch (error) { + console.error(`Error processing evaluation #${index}:`, error); + // Set default category for failed analyses + evaluation.category = "unknown"; + return evaluation; + } + }); + + // Wait for all processing to complete + await Promise.all(processingPromises); + + // Final render (should be the same as the last incremental render) + renderEvaluations(evaluationsCopy); + + // Log the analyzed evaluations for reference + console.log("Analyzed evaluations:", evaluationsCopy); + + // Update button state + button.innerHTML = "Analysis Complete"; + // Keep button disabled as analysis is done + } catch (error) { + console.error("Error analyzing feedback:", error); + button.innerHTML = "Analysis Failed"; + setTimeout(() => { + button.disabled = false; + button.innerHTML = "Retry Analysis"; + }, 2000); + } +} + +/** + * Initializes the application + */ +async function initApp() { + try { + // Show loading state (could add a spinner here) + const evaluations = await fetchEvaluations(); + renderEvaluations(evaluations); + + // Add event listener to analyze button + const analyzeButton = document.getElementById("analyze-button"); + analyzeButton.addEventListener("click", () => analyzeFeedback(evaluations)); + } catch (error) { + console.error("Error fetching evaluations:", error); + document.getElementById("evaluations-list").innerHTML = ` +
+

Failed to load evaluations. Please try again later.

+
+ `; + } +} + +// Initialize the app when the DOM is fully loaded +document.addEventListener("DOMContentLoaded", initApp); diff --git a/samples/llm-usage/js/env.js b/samples/llm-usage/js/env.js new file mode 100644 index 0000000..29bf9bc --- /dev/null +++ b/samples/llm-usage/js/env.js @@ -0,0 +1 @@ +export const apiKey = 'steve'; \ No newline at end of file diff --git a/samples/llm-usage/package-lock.json b/samples/llm-usage/package-lock.json new file mode 100644 index 0000000..223ad08 --- /dev/null +++ b/samples/llm-usage/package-lock.json @@ -0,0 +1,661 @@ +{ + "name": "ecs-demo", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ecs-demo", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "http-server": "^14.1.1" + }, + "devDependencies": { + "@playwright/test": "^1.54.0" + } + }, + "node_modules/@playwright/test": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.0.tgz", + "integrity": "sha512-6Mnd5daQmLivaLu5kxUg6FxPtXY4sXsS5SUwKjWNy4ISe4pKraNHoFxcsaTFiNUULbjy0Vlb5HT86QuM0Jy1pQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.54.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/playwright": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.0.tgz", + "integrity": "sha512-y9yzHmXRwEUOpghM7XGcA38GjWuTOUMaTIcm/5rHcYVjh5MSp9qQMRRMc/+p1cx+csoPnX4wkxAF61v5VKirxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.54.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.0.tgz", + "integrity": "sha512-uiWpWaJh3R3etpJ0QrpligEMl62Dk1iSAB6NUXylvmQz+e3eipXHDHvOvydDAssb5Oqo0E818qdn0L9GcJSTyA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/portfinder": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.37.tgz", + "integrity": "sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==", + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "license": "MIT" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/samples/llm-usage/package.json b/samples/llm-usage/package.json new file mode 100644 index 0000000..527924e --- /dev/null +++ b/samples/llm-usage/package.json @@ -0,0 +1,20 @@ +{ + "name": "ecs-demo", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "start": "http-server -c-1 -p 8007", + "test": "playwright test", + "install:msedge": "npx playwright install msedge" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.54.0" + }, + "dependencies": { + "http-server": "^14.1.1" + } +} diff --git a/samples/llm-usage/playwright.config.js b/samples/llm-usage/playwright.config.js new file mode 100644 index 0000000..61f216e --- /dev/null +++ b/samples/llm-usage/playwright.config.js @@ -0,0 +1,45 @@ +// @ts-check +import { defineConfig, devices } from '@playwright/test'; + +/** + * @see https://playwright.dev/docs/test-configuration + */ +export default defineConfig({ + testDir: './tests', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + headless: true, + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: 'http://127.0.0.1:8007', + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + /* Take screenshot on failure */ + screenshot: 'only-on-failure' + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'Microsoft Edge', + use: { ...devices['Desktop Edge'], channel: 'msedge' }, + } + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'npm start', + port: 8007, + reuseExistingServer: !process.env.CI, + timeout: 120 * 1000 + }, +}); diff --git a/samples/llm-usage/tests/feedback-analysis.spec.js b/samples/llm-usage/tests/feedback-analysis.spec.js new file mode 100644 index 0000000..b5157d0 --- /dev/null +++ b/samples/llm-usage/tests/feedback-analysis.spec.js @@ -0,0 +1,49 @@ +// playwright/test-feedback-analysis.spec.js +// Test: Feedback analysis UI end-to-end + +import { test, expect } from '@playwright/test'; + +test.describe('Session Evaluations Analysis', () => { + test('loads feedback, analyzes, and displays pills', async ({ page, baseURL }) => { + + // log network requests for debugging + page.on('request', request => { + console.log(`Request: ${request.method()} ${request.url()}`); + }); + page.on('response', async response => { + console.log(`Response: ${response.status()} ${response.url()}`); + }); + + // increase timeout to handle retries + test.slow(); + + // 1. Load the webpage using its baseUrl + await page.goto(baseURL); + + // 2. Wait for feedback to load (wait for at least one evaluation item) + await page.waitForSelector('.evaluation-item'); + + // 3. When feedback has loaded, press the Analyze button + await page.waitForSelector('#analyze-button'); + const analyzeButton = page.locator('#analyze-button'); + await analyzeButton.click(); + + // 4. Wait for button text to eventually become "Analysis Complete" + await expect(analyzeButton).toHaveText(/Analysis Complete/, { timeout: 120000 }); + + // 5. Verify that all feedbacks contain an evaluation pill that contains a value + const evaluationItems = await page.$$('.evaluation-item'); + const pillTexts = []; + + for (const item of evaluationItems) { + const pill = await item.$('.evaluation-pill'); + const pillText = await pill?.innerText(); + expect(pillText && pillText.trim().length).toBeGreaterThan(0); + pillTexts.push(pillText?.trim()); + } + + // Fail if all pills contain "Unknown" + const allUnknown = pillTexts.every(text => text === 'Unknown'); + expect(allUnknown).toBe(false); + }); +});