From c43bbb0edb430a17f9fca89afa7292086fe5b6ce Mon Sep 17 00:00:00 2001 From: RainbowBird Date: Wed, 9 Apr 2025 11:11:22 +0800 Subject: [PATCH] feat: prompt engineering playground (#121) * feat: prompt engineering playground * chore: lint * feat: pinia store * fix: use pinia * feat: devtools * fix: type error, unocss config * chore: update apps/playground-prompt-engineering/src/assets/main.css --------- Co-authored-by: Neko Ayaka --- apps/playground-prompt-engineering/index.html | 13 + .../package.json | 28 ++ .../playground-prompt-engineering/src/App.vue | 19 + .../src/assets/main.css | 26 ++ .../src/components/ChatSimulator.vue | 337 ++++++++++++++++ .../src/components/ControlPanel.vue | 374 ++++++++++++++++++ .../src/components/HeaderComponent.vue | 10 + .../src/components/Notification.vue | 27 ++ .../src/components/PromptPreview.vue | 117 ++++++ .../src/composables/useCharacterPrompt.ts | 371 +++++++++++++++++ .../src/composables/useChatSimulator.ts | 181 +++++++++ .../playground-prompt-engineering/src/main.ts | 10 + .../tsconfig.json | 38 ++ .../uno.config.ts | 98 +++++ .../vite.config.ts | 19 + pnpm-lock.yaml | 186 ++++++++- 16 files changed, 1835 insertions(+), 19 deletions(-) create mode 100644 apps/playground-prompt-engineering/index.html create mode 100644 apps/playground-prompt-engineering/package.json create mode 100644 apps/playground-prompt-engineering/src/App.vue create mode 100644 apps/playground-prompt-engineering/src/assets/main.css create mode 100644 apps/playground-prompt-engineering/src/components/ChatSimulator.vue create mode 100644 apps/playground-prompt-engineering/src/components/ControlPanel.vue create mode 100644 apps/playground-prompt-engineering/src/components/HeaderComponent.vue create mode 100644 apps/playground-prompt-engineering/src/components/Notification.vue create mode 100644 apps/playground-prompt-engineering/src/components/PromptPreview.vue create mode 100644 apps/playground-prompt-engineering/src/composables/useCharacterPrompt.ts create mode 100644 apps/playground-prompt-engineering/src/composables/useChatSimulator.ts create mode 100644 apps/playground-prompt-engineering/src/main.ts create mode 100644 apps/playground-prompt-engineering/tsconfig.json create mode 100644 apps/playground-prompt-engineering/uno.config.ts create mode 100644 apps/playground-prompt-engineering/vite.config.ts diff --git a/apps/playground-prompt-engineering/index.html b/apps/playground-prompt-engineering/index.html new file mode 100644 index 000000000..080d3b648 --- /dev/null +++ b/apps/playground-prompt-engineering/index.html @@ -0,0 +1,13 @@ + + + + + + + ReLU Prompt Engineering Playground + + +
+ + + diff --git a/apps/playground-prompt-engineering/package.json b/apps/playground-prompt-engineering/package.json new file mode 100644 index 000000000..8f28fdb30 --- /dev/null +++ b/apps/playground-prompt-engineering/package.json @@ -0,0 +1,28 @@ +{ + "name": "@proj-airi/playground-prompt-engineering", + "type": "module", + "version": "0.1.0", + "private": true, + "description": "Prompt Engineering Playground for AI Characters", + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview", + "typecheck": "vue-tsc --noEmit" + }, + "dependencies": { + "@velin-dev/ml": "^1.2.0", + "pinia": "^3.0.1", + "vue": "^3.4.0" + }, + "devDependencies": { + "@iconify/vue": "^4.1.1", + "@types/node": "^22.14.0", + "@vitejs/plugin-vue": "^5.0.0", + "typescript": "~5.8.3", + "unocss": "^66.1.0-beta.10", + "vite": "^6.2.5", + "vite-plugin-vue-devtools": "^7.7.2", + "vue-tsc": "^2.0.0" + } +} diff --git a/apps/playground-prompt-engineering/src/App.vue b/apps/playground-prompt-engineering/src/App.vue new file mode 100644 index 000000000..94554332e --- /dev/null +++ b/apps/playground-prompt-engineering/src/App.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/playground-prompt-engineering/src/assets/main.css b/apps/playground-prompt-engineering/src/assets/main.css new file mode 100644 index 000000000..211eeed4d --- /dev/null +++ b/apps/playground-prompt-engineering/src/assets/main.css @@ -0,0 +1,26 @@ +:root { + --primary: #6366f1; + --primary-dark: #4f46e5; + --primary-light: #c7d2fe; + --secondary: #ec4899; + --secondary-light: #fbcfe8; + --dark: #1e293b; + --light: #f8fafc; + --gray: #64748b; + --bg: #f1f5f9; +} + +body { + line-height: 1.6; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/apps/playground-prompt-engineering/src/components/ChatSimulator.vue b/apps/playground-prompt-engineering/src/components/ChatSimulator.vue new file mode 100644 index 000000000..f57062110 --- /dev/null +++ b/apps/playground-prompt-engineering/src/components/ChatSimulator.vue @@ -0,0 +1,337 @@ + + + + + diff --git a/apps/playground-prompt-engineering/src/components/ControlPanel.vue b/apps/playground-prompt-engineering/src/components/ControlPanel.vue new file mode 100644 index 000000000..2ee642b81 --- /dev/null +++ b/apps/playground-prompt-engineering/src/components/ControlPanel.vue @@ -0,0 +1,374 @@ + + +