{"id":14964163,"url":"https://github.com/ra-jeev/hub-chat","last_synced_at":"2025-04-07T05:14:31.425Z","repository":{"id":254113728,"uuid":"845470000","full_name":"ra-jeev/hub-chat","owner":"ra-jeev","description":"Cloudflare Workers AI LLM Playground with Nuxt","archived":false,"fork":false,"pushed_at":"2025-01-31T12:31:44.000Z","size":932,"stargazers_count":80,"open_issues_count":0,"forks_count":18,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T04:06:43.367Z","etag":null,"topics":["ai","cloudflare","cloudflare-ai","nuxt","nuxthub","ssr","vue"],"latest_commit_sha":null,"homepage":"https://hub-chat.nuxt.dev","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ra-jeev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-21T10:12:58.000Z","updated_at":"2025-03-27T16:47:15.000Z","dependencies_parsed_at":"2024-08-28T18:47:55.446Z","dependency_job_id":"93d5a64b-451e-49a2-9d2c-6341647464ff","html_url":"https://github.com/ra-jeev/hub-chat","commit_stats":{"total_commits":68,"total_committers":4,"mean_commits":17.0,"dds":"0.11764705882352944","last_synced_commit":"1826dca81d1600dd9154578558b8e473231194b5"},"previous_names":["ra-jeev/hub-chat"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fhub-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fhub-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fhub-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra-jeev%2Fhub-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ra-jeev","download_url":"https://codeload.github.com/ra-jeev/hub-chat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595335,"owners_count":20963943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cloudflare","cloudflare-ai","nuxt","nuxthub","ssr","vue"],"created_at":"2024-09-24T13:32:40.455Z","updated_at":"2025-04-07T05:14:31.403Z","avatar_url":"https://github.com/ra-jeev.png","language":"Vue","funding_links":[],"categories":["Vue","Starter Kits"],"sub_categories":[],"readme":"# Cloudflare Workers AI LLM Playground with Nuxt 💬\n\n[![NuxtHub AI Chat](https://github.com/user-attachments/assets/f393167e-7d21-4d7b-bacf-101103c1d093)](https://hub-chat.nuxt.dev)\n\nDemo: \u003chttps://hub-chat.nuxt.dev\u003e\n\n[![Deploy to NuxtHub](https://hub.nuxt.com/button.svg)](https://hub.nuxt.com/new?template=ai-chat)\n\n## Overview\n\nThis project is a chat interface to interact with various text generation models supported by [Cloudflare Workers AI](https://ai.cloudflare.com). It allows users to set different LLM parameters, toggle response streaming, handle streaming/non-streaming responses, parse markdown in responses, and includes a dark mode.\n\n[Read the blog post on how I created this LLM playground](https://rajeev.dev/create-cloudflare-workers-ai-llm-playground-using-nuxthub-and-nuxtui).\n\n## Features\n\n* Select the text generation model to interact with\n* Set different LLM parameters (temperature, max tokens, system prompt, top_p, top_k, etc.)\n* Toggle LLM response streaming on/off\n* Handle streaming and non-streaming LLM responses on both server and client sides\n* Parse and display markdown in LLM responses\n* Auto-scroll chat container as responses are streamed\n* Dark mode support\n\n## Technologies Used\n\n* [Nuxt](https://nuxt.com): Vue.js framework for the application foundation\n* [Nuxt UI](https://ui.nuxt.com): Module for creating a sleek and responsive interface\n* [Nuxt MDC](https://github.com/nuxt-modules/mdc): For parsing and displaying chat messages\n* [NuxtHub](https://hub.nuxt.com): Deployment and administration platform for Nuxt, powered by Cloudflare\n\n## Prerequisites\n\n* [Cloudflare Account](https://cloudflare.com): Required for using Workers AI models and deploying the project on Cloudflare Pages\n* [NuxtHub Account](https://hub.nuxt.com): For managing NuxtHub apps and using AI in development\n\n\u003e You can deploy and manage this application with a free Cloudflare and free NuxtHub account.\n\n## Setup\n\n1. Clone the repository and install the dependencies with [pnpm](https://pnpm.io/):\n\n```bash\npnpm i\n```\n\n2. Rename `.env.example` to `.env` and update the following environment variables (for NuxtHub project key see point 3):\n\n```bash\n# Directly set your nuxthub project key without running npx nuxthub link\nNUXT_HUB_PROJECT_KEY=your_nuxthub_project_key\n# how to find account id for workers/pages https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/#find-account-id-workers-and-pages\nCLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id\n# How to create PAI token https://developers.cloudflare.com/fundamentals/api/get-started/create-token/\nCLOUDFLARE_API_TOKEN=your_cloudflare_api_token\n```\n\n3. If you didn't set your NuxtHub project key in point 2 above, link your NuxtHub project to use AI models in development (it will ask you to create one if you don't have any)\n\n```bash\nnpx nuxthub link\n```\n\n4. Start the application in development mode\n\n```bash\npnpm dev\n```\n\nOpen \u003chttp://localhost:3000\u003e in your browser.\n\n## Deployment\n\n[![Deploy to NuxtHub](https://hub.nuxt.com/button.svg)](https://hub.nuxt.com/new?template=ai-chat)\n\n### NuxtHub Admin\n\n* Push your code to a GitHub repository.\n* Link the repository with NuxtHub.\n* Deploy from the Admin console.\n\n[Learn more about Git integration](https://hub.nuxt.com/docs/getting-started/deploy#cloudflare-pages-ci)\n  \n### Deploy via NuxtHub CLI\n\n```bash\nnpx nuxthub deploy\n```\n\n[Learn more about CLI deployment](https://hub.nuxt.com/docs/getting-started/deploy#nuxthub-cli)\n\n\u003e [!NOTE]\n\u003e Do not forget to add the environment variables to your project's settings\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra-jeev%2Fhub-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fra-jeev%2Fhub-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra-jeev%2Fhub-chat/lists"}