Y Gui

Y Gui

By luohy15 GitHub

A web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.

y-gui ai-chat
Overview

what is Y Gui?

Y Gui is a web-based graphical interface designed for AI chat interactions, supporting multiple AI models and Model Context Protocol (MCP) servers.

how to use Y Gui?

To use Y Gui, clone the repository from GitHub, install the necessary dependencies, configure environment variables, and start the development server.

key features of Y Gui?

  • Interactive chat interface with AI models
  • Support for multiple bot configurations
  • MCP client support with various server configurations
  • Secure authentication with Auth0 and Google login
  • Dark/light theme support
  • Real-time updates and responsive design

use cases of Y Gui?

  1. Building custom AI chatbots for various applications.
  2. Integrating multiple AI models for enhanced user interactions.
  3. Developing a secure chat application with user authentication.

FAQ from Y Gui?

  • Can I use my own AI models with Y Gui?

Yes! Y Gui supports multiple bot configurations allowing you to use any base_url/api_key/model combination.

  • Is Y Gui free to use?

Yes! Y Gui is open-source and free to use.

  • What technologies are used in Y Gui?

Y Gui is built with React, TypeScript, and Cloudflare Workers.

Content

y-gui 🚀

A web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.

✨ Features

  • 💬 Interactive chat interface with AI models
  • 🤖 Support for multiple bot configurations (any base_url/api_key/model combination)
  • 🔗 MCP (Model Context Protocol) client support with multiple server configurations
  • 🔒 Secure authentication with Auth0 and Google login
  • 🌓 Dark/light theme support
  • 📝 All chat data stored in Cloudflare KV/R2 for easy access and sync
  • 🔄 Real-time updates with SWR
  • 📱 Responsive design for all devices

Demo

chat history

Architecture

y-gui consists of two main components:

  1. Frontend: React application with TypeScript, Tailwind CSS, and SWR for data fetching
  2. Backend: Cloudflare Workers with KV and R2 storage
flowchart TD
    Client[React Client] --> Worker[Cloudflare Worker]
    Worker --> KV[Cloudflare KV]
    Worker --> R2[Cloudflare R2]
    Worker --> AI[AI Providers]

    subgraph "Frontend"
        Client --> Components[React Components]
        Components --> State[SWR State]
        State --> API[API Layer]
    end

    subgraph "Backend"
        Worker --> Auth[Auth Middleware]
        Worker --> Storage[Storage Layer]
        Worker --> Provider[Provider Layer]
    end

⚡ Quick Start

Prerequisites

  1. Node.js and npm
  2. Cloudflare account
  3. Auth0 account
  4. API keys for AI providers

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/y-gui.git
    cd y-gui
    
  2. Install dependencies:

    npm install
    
  3. Configure environment variables:

    • Create a .env file in the frontend directory with Auth0 configuration
    • Configure Cloudflare Worker settings in wrangler.toml
  4. Start the development server:

    npm run dev
    

🛠️ Development

Project Structure

y-gui/
├── frontend/               # React frontend application
│   ├── src/
│   │   ├── components/     # React components
│   │   ├── contexts/       # React contexts
│   │   ├── utils/          # Utility functions
│   │   └── index.tsx       # Entry point
├── backend/                # Cloudflare Worker backend
│   ├── src/
│   │   ├── api/            # API endpoints
│   │   ├── middleware/     # Middleware
│   │   ├── repository/     # Data access
│   │   └── index.ts        # Worker entry
├── shared/                 # Shared code between frontend and backend
│   └── types/              # TypeScript type definitions
└── memory-bank/            # Project documentation

Available Scripts

  • npm run dev: Start both frontend and backend development servers
  • npm run dev:frontend: Start only the frontend development server
  • npm run dev:backend: Start only the backend development server
  • npm run build: Build both frontend and backend
  • npm run deploy: Deploy the backend to Cloudflare Workers
  • npm run test: Run tests

🔒 Authentication

y-gui uses Auth0 for authentication with the following features:

  • Universal Login
  • Google social login
  • Token-based session management
  • Secure API access

🤖 Bot Configuration

y-gui supports multiple bot configurations with the following properties:

  • Name
  • Model
  • Base URL
  • API Key
  • Print Speed
  • MCP Servers
  • API Type
  • Custom API Path
  • Max Tokens
  • Reasoning Effort

🔗 MCP Server Configuration

MCP (Model Context Protocol) servers can be configured with:

  • Name
  • Command
  • Arguments
  • Environment Variables
  • URL
  • Token

🌐 API Endpoints

The backend provides RESTful API endpoints for:

  • Chat operations
  • Bot configuration management
  • MCP server configuration management
  • Authentication

🔄 Data Storage

  • Chat data is stored in Cloudflare KV
  • Backup data is stored in Cloudflare R2
  • Bot and MCP server configurations are stored in Cloudflare R2

🧩 Technologies Used

  • Frontend: React, TypeScript, Tailwind CSS, SWR, Auth0
  • Backend: Cloudflare Workers, KV, R2
  • Build Tools: Vite, Wrangler, TypeScript

📚 Documentation

For more detailed documentation, see the memory-bank directory.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

No tools information available.
HiveChat
HiveChat by HiveNexus

-

hivechat ai-chat
View Details