Awesome
<div align="center">๐ฅณ Chat Nio
๐ Next Generation AIGC One-Stop Business Solution
"Chat Nio > Next Web + One API"
English ยท ็ฎไฝไธญๆ ยท Docs ยท Discord ยท Deployment Guide
<img alt="Chat Nio Preview" src="./screenshot/chatnio.png" width="100%" style="border-radius: 8px"> </div>๐ Features
- ๐ค๏ธ Rich Model Support: Multi-model service provider support (OpenAI / Anthropic / Gemini / Midjourney and more than ten compatible formats & private LLM support)
- ๐คฏ Beautiful UI Design: UI compatible with PC / Pad / Mobile, following Shadcn UI & Tremor Charts design standards, rich and beautiful interface design and backend dashboard
- ๐ Complete Markdown Support: Support for LaTeX formulas / Mermaid mind maps / table rendering / code highlighting / chart drawing / progress bars and other advanced Markdown syntax support
- ๐ Multi-theme Support: Support for multiple theme switching, including Light Mode for light themes and Dark Mode for dark themes. ๐ Custom Color Scheme
- ๐ Internationalization Support: Support for internationalization, multi-language switching ๐จ๐ณ ๐บ๐ธ ๐ฏ๐ต ๐ท๐บ ๐ Welcome to contribute translations Pull Request
- ๐จ Text-to-Image Support: Support for multiple text-to-image models: OpenAI DALL-Eโ & Midjourney (support for U/V/R operations)โ & Stable Diffusionโ etc.
- ๐ก Powerful Conversation Sync: Zero-cost cross-device conversation sync support for users, support for conversation sharing (link sharing & save as image & share management), no need for WebDav / WebRTC and other dependencies and complex learning costs
- ๐ Model Market & Preset System: Support for customizable model market in the backend, providing model introductions, tags, and other parameters. Site owners can customize model introductions according to the situation. Also supports a preset system, including custom presets and cloud synchronization functions.
- ๐ Rich File Parsing: Out-of-the-box, supports file parsing for all models (PDF / Docx / Pptx / Excel / image formats parsing), supports more cloud image storage solutions (S3 / R2 / MinIO etc.), supports OCR image recognition ๐ See project Chat Nio Blob Service for details (supports Vercel / Docker one-click deployment)
- ๐ Full Model Internet Search: Based on the SearXNG open-source engine, supports rich search engines such as Google / Bing / DuckDuckGo / Yahoo / Wikipedia / Arxiv / Qwant, supports safe search mode, content truncation, image proxy, test search availability, and other functions.
- ๐ Progressive Web App (PWA): Supports PWA applications & desktop support (desktop based on Tauri)
- ๐คฉ Comprehensive Backend Management: Supports beautiful and rich dashboard, announcement & notification management, user management, subscription management, gift code & redemption code management, price setting, subscription setting, custom model market, custom site name & logo, SMTP email settings, and other functions
- ๐ค Multiple Billing Methods: Supports ๐ด Subscription and ๐ด Elastic Billing two billing methods. Elastic billing supports per-request billing / token billing / no billing / anonymous calls and minimum request points detection and other powerful features
- ๐ Innovative Model Caching: Supports enabling model caching: i.e., under the same request parameter hash, if it has been requested before, it will directly return the cached result (hitting the cache will not be billed), reducing the number of requests. You can customize whether to cache models, cache time, multiple cache result numbers, and other advanced cache settings
- ๐ฅช Additional Features (Support Discontinued): ๐ AI Project Generator Function / ๐ Batch Article Generation Function / ๐ฅช AI Card Function (Deprecated)
- ๐ Excellent Channel Management: Self-written excellent channel algorithm, supports โก multi-channel management, supports ๐ฅณpriority setting for channel call order, supports ๐ฅณweight setting for load balancing probability distribution of channels at the same priority, supports ๐ฅณuser grouping, ๐ฅณautomatic retry on failure, ๐ฅณmodel redirection, ๐ฅณbuilt-in upstream hiding, ๐ฅณchannel status management and other powerful enterprise-level functions
- โญ OpenAI API Distribution & Proxy System: Supports calling various large models in OpenAI API standard format, integrates powerful channel management functions, only needs to deploy one site to achieve simultaneous development of B/C-end business๐
- ๐ Quick Upstream Synchronization: Channel settings, model market, price settings, and other settings can quickly synchronize with upstream sites, modify your site configuration based on this, quickly build your site, save time and effort, one-click synchronization, quick launch
- ๐ SEO Optimization: Supports SEO optimization, supports custom site name, site logo, and other SEO optimization settings to make search engines crawl faster, making your site stand out๐
- ๐ซ Multiple Redemption Code Systems: Supports multiple redemption code systems, supports gift codes and redemption codes, supports batch generation, gift codes are suitable for promotional distribution, redemption codes are suitable for card sales, for gift codes of one type, a user can only redeem one code, which to some extent reduces the situation of one user redeeming multiple times in promotions๐
- ๐ฅฐ Business-Friendly License: Adopts the Apache-2.0 open-source license, friendly for commercial secondary development & distribution (please also comply with the provisions of the Apache-2.0 license, do not use for illegal purposes)
โจ Chat Nio Business
- โ Beautiful commercial-grade UI, elegant frontend interface and backend management
- โ Supports TTS & STT, plugin marketplace, RAG knowledge base and other rich features and modules
- โ More payment providers, more billing models and advanced order management
- โ Supports more authentication methods, including SMS login, OAuth login, etc.
- โ Supports model monitoring, channel health detection, fault alarm automatic channel switching
- โ Supports multi-tenant API Key distribution system, enterprise-level token permission management and visitor restrictions
- โ Supports security auditing, logging, model rate limiting, API Gateway and other advanced features
- โ Supports promotion rewards, professional data statistics, user profile analysis and other business analysis capabilities
- โ Supports Discord/Telegram/Feishu and other bot integration capabilities (extension modules)
- ...
๐จ Supported Models
- OpenAI & Azure OpenAI (โ Vision โ Function Calling)
- Anthropic Claude (โ Vision โ Function Calling)
- Google Gemini & PaLM2 (โ Vision)
- Midjourney (โ Mode Toggling โ U/V/R Actions)
- iFlytek SparkDesk (โ Vision โ Function Calling)
- Zhipu AI ChatGLM (โ Vision)
- Alibaba Tongyi Qwen
- Tencent Hunyuan
- Baichuan AI
- Moonshot AI (๐ OpenAI)
- DeepSeek AI (๐ OpenAI)
- ByteDance Skylark (โ Function Calling)
- Groq Cloud AI
- OpenRouter (๐ OpenAI)
- 360 GPT
- LocalAI / Ollama (๐ OpenAI)
๐ป OpenAI Compatible API Proxy
- Chat Completions (/v1/chat/completions)
- Image Generation (/v1/images)
- Model List (/v1/models)
- Dashboard Billing (/v1/billing)
๐ฆ Deployment
[!TIP] After successful deployment, the admin account is
root
, with the default passwordchatnio123456
โจ Zeabur (One-Click)
Zeabur provides a certain free quota, you can use non-paid regions for one-click deployment, and also supports plan subscriptions and elastic billing for flexible expansion.
- Click
Deploy
to deploy, and enter the domain name you wish to bind, wait for the deployment to complete.- After deployment is complete, please visit your domain name and log in to the backend management using the username
root
and passwordchatnio123456
. Please follow the prompts to change the password in the chatnio backend in a timely manner.
๐ณ BTPanel (One-Click)
- Install Baota Panel by visiting BTPanel and install using the stable version script.
- Log in to the panel and click Docker on the left to enter Docker management.
- If prompted that Docker / Docker Compose is not installed, you can install according to the guide above.
- After installation is complete, enter App Store, search for
CoAI
and click Install. - Configure basic application information such as your domain name, port, etc., and click Confirm (default configuration can be used).
- First-time installation may take 1-2 minutes to complete database initialization. If you encounter issues, please check the panel running logs for troubleshooting.
- Visit your configured domain or server
http://[ip]:[port]
, log in to the backend management using usernameroot
and passwordchatnio123456
.
โก Docker Compose Installation (Recommended)
[!NOTE] After successful execution, the host machine mapping address is
http://localhost:8000
git clone --depth=1 --branch=main --single-branch https://github.com/Deeptrain-Community/chatnio.git
cd chatnio
docker-compose up -d # Run the service
# To use the stable version, use docker-compose -f docker-compose.stable.yaml up -d instead
# To use Watchtower for automatic updates, use docker-compose -f docker-compose.watch.yaml up -d instead
Version update (If Watchtower automatic updates are enabled, manual updates are not necessary):
docker-compose down
docker-compose pull
docker-compose up -d
- MySQL database mount directory: ~/db
- Redis database mount directory: ~/redis
- Configuration file mount directory: ~/config
โก Docker Installation (Lightweight runtime, commonly used for external MYSQL/RDS services)
[!NOTE] After successful execution, the host machine address is
http://localhost:8094
.To use the stable version, use
programzmh/chatnio:stable
instead ofprogramzmh/chatnio:latest
docker run -d --name chatnio \
--network host \
-v ~/config:/config \
-v ~/logs:/logs \
-v ~/storage:/storage \
-e MYSQL_HOST=localhost \
-e MYSQL_PORT=3306 \
-e MYSQL_DB=chatnio \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=chatnio123456 \
-e REDIS_HOST=localhost \
-e REDIS_PORT=6379 \
-e SECRET=secret \
-e SERVE_STATIC=true \
programzmh/chatnio:latest
- --network host means using the host machine's network, allowing the Docker container to use the host's network. You can modify this as needed.
- SECRET: JWT secret key, generate a random string and modify accordingly
- SERVE_STATIC: Whether to enable static file serving (normally this doesn't need to be changed, see FAQ below for details)
- -v ~/config:/config mounts the configuration file, -v ~/logs:/logs mounts the host machine directory for log files, -v ~/storage:/storage mounts the directory for additional feature generated files
- MySQL and Redis services need to be configured. Please refer to the information above to modify the environment variables accordingly
Version update (After enabling Watchtower, manual updates are not necessary. After execution, follow the steps above to run again):
docker stop chatnio
docker rm chatnio
docker pull programzmh/chatnio:latest
โ Compile and Install
[!NOTE] After successful deployment, the default port is 8094, and the access address is
http://localhost:8094
Config settings (~/config/config.yaml) can be overridden using environment variables. For example, the
MYSQL_HOST
environment variable can override themysql.host
configuration item
git clone https://github.com/Deeptrain-Community/chatnio.git
cd chatnio
cd app
npm install -g pnpm
pnpm install
pnpm build
cd ..
go build -o chatnio
# e.g. using nohup (you can also use systemd or other service manager)
nohup ./chatnio > output.log & # using nohup to run in background
๐ฆ Tech Stack
- ๐ฅ Frontend: React + Redux + Radix UI + Tailwind CSS
- ๐ Backend: Golang + Gin + Redis + MySQL
- ๐ Application Technology: PWA + WebSocket
๐คฏ Why Create This Project & Project Advantages
-
We found that most AIGC commercial sites on the market are frontend-oriented lightweight deployment projects with beautiful UI interface designs, such as the commercial version of Next Chat. Due to its personal privatization-oriented design, there are some limitations in secondary commercial development, presenting some issues, such as:
- Difficult conversation synchronization, for example, requiring services like WebDav, high user learning costs, and difficulties in real-time cross-device synchronization.
- Insufficient billing, for example, only supporting elastic billing or only subscription-based, unable to meet the needs of different users.
- Inconvenient file parsing, for example, only supporting uploading images to an image hosting service first, then returning to the site to input the URL direct link in the input box, without built-in file parsing functionality.
- No support for conversation URL sharing, for example, only supporting conversation screenshot sharing, unable to support conversation URL sharing (or only supporting tools like ShareGPT, which cannot promote the site).
- Insufficient channel management, for example, the backend only supports OpenAI format channels, making it difficult to be compatible with other format channels. And only one channel can be filled in, unable to support multi-channel management.
- No API call support, for example, only supporting user interface calls, unable to support API proxying and management.
-
Another type is API distribution-oriented sites with powerful distribution systems, such as projects based on One API. Although these projects support powerful API proxying and management, they lack interface design and some C-end features, such as:
- Insufficient user interface, for example, only supporting API calls, without built-in user interface chat. User interface chat requires manually copying the key and going to other sites to use, which has a high learning cost for ordinary users.
- No subscription system, for example, only supporting elastic billing, lacking billing design for C-end users, unable to meet different user needs, and not user-friendly in terms of cost perception for users without a foundation.
- Insufficient C-end features, for example, only supporting API calls, not supporting conversation synchronization, conversation sharing, file parsing, and other functions.
- Insufficient load balancing, the open-source version does not support the weight parameter, unable to achieve balanced load distribution probability for channels at the same priority (New API also solves this pain point, with a more beautiful UI).
Therefore, we hope to combine the advantages of these two types of projects to create a project that has both a powerful API distribution system and a rich user interface design, thus meeting the needs of C-end users while developing B-end business, improving user experience, reducing user learning costs, and increasing user stickiness.
Thus, Chat Nio was born. We hope to create a project that has both a powerful API distribution system and a rich user interface design, becoming the next-generation open-source AIGC project's one-stop commercial solution.
โค Donations
If you find this project helpful, you can give it a Star to show your support!