Skip to main content

Развертывание проекта

Настройка и персонализация

AI Short — это проект с открытым исходным кодом, который позволяет вам свободно изменять название веб-сайта, описание, подсказки и другой контент в соответствии с вашими потребностями. Ниже приведены общие параметры модификации и инструкции по эксплуатации:

  • Изменить название и описание веб-сайта Чтобы изменить название и описание веб-сайта, отредактируйте файл конфигурации docusaurus.config.js.

  • Изменить инструкции по использованию и введение в проект Инструкции по использованию и файлы введения в проект находятся в директории docs. Откройте соответствующие файлы в этой директории, чтобы внести необходимые изменения.

  • Изменить подсказки на главной странице Подсказки на главной странице хранятся в файле src/data/prompt.json. Если вам нужно изменить подсказки для определенного языка, например китайского, вы можете напрямую отредактировать файл src/data/prompt_zh.json. При добавлении новой подсказки формат следующий:

    {
    "zh": {
    "title": "custom prompt",
    "prompt": "custom prompt",
    "description": "custom description",
    "remark": "custom mark"
    },
    "website": null,
    "tags": ["music"],
    "id": 500,
    "weight": 1
    }

    Примечание: Рекомендуется устанавливать id равным 500 или выше. Новые добавленные подсказки не будут иметь отдельной страницы или раздела комментариев. Если вам нужно добавить отдельную страницу для подсказки, вы можете скопировать файл шаблона в директории src/data/pages/prompt для его изменения.

  • Пользовательский бэкенд Текущий проект подключен к общей системе бэкенда. Если вы хотите создать свой собственный бэкенд, вы можете ознакомиться с инструкциями интерфейса в папке src/api.

    Структура модуля API:

    src/api/
    ├── index.ts # Единый вход экспорта
    ├── config.ts # Конфигурация URL API
    ├── client.ts # Клиент Axios (включая перехватчики аутентификации)
    ├── auth.ts # API аутентификации (Вход/Регистрация/OAuth)
    ├── prompts.ts # CRUD подсказок + Поиск + Голосование
    ├── favorites.ts # Операции с избранным
    ├── myspace.ts # Данные Моего Пространства (Основной источник данных)
    ├── comments.ts # Система комментариев
    └── user.ts # Информация о пользователе

    Механизм кэширования: Проект использует lscache в сочетании с ETag для реализации интеллектуального кэширования. Когда сервер возвращает 304 Not Modified, локальные кэшированные данные используются повторно напрямую для уменьшения передачи данных.

  • Многоязычная поддержка и развертывание После завершения многоязычных изменений вы можете использовать скрипт CodeUpdateHandler.py для пакетной обработки. Выполните следующую команду:

    python CodeUpdateHandler.py

    Этот скрипт разделит файл prompt.json в соответствии с предустановленными правилами и синхронно обновит главную страницу и страницы рекомендуемых подсказок для каждой языковой версии.

Инструкции по развертыванию

Системные требования:

  • Node.js 20.0 или новее.
  • macOS, Windows (включая WSL) и Linux поддерживаются.

Локальное развертывание

Убедитесь, что у вас установлен Node.js.

# Установка
yarn

# Локальная разработка
yarn start

# Сборка: Эта команда генерирует статический контент в директории `build`
yarn build

# Обновите `defaultLocale` в файле `docusaurus.config.js`, затем выполните сборку для желаемого языка.
yarn build --locale zh
yarn build --locale en
yarn build --locale ja
yarn build --locale ko
yarn build --locale es
yarn build --locale fr
yarn build --locale de
yarn build --locale it
yarn build --locale ru
yarn build --locale pt
yarn build --locale hi
yarn build --locale ar
yarn build --locale bn

# Развертывание для нескольких языков
yarn build --locale zh && yarn build --locale en

Развертывание на Vercel

Нажмите кнопку ниже, чтобы развернуть ChatGPT-Shortcut на платформе Vercel в один клик:

Vercel

Примечание: Бесплатная версия Vercel может сообщить об ошибке из-за нехватки памяти. Если вы столкнулись с этой ситуацией, вы можете выбрать развертывание на одном языке. Конкретные операции следующие:

  1. Войдите в проект Vercel, который вы только что развернули, и откройте Settings.
  2. В разделе Build & Deployment найдите Build Command, затем нажмите Override справа.
  3. Измените команду развертывания. Например, если вам нужно развернуть китайскую версию, вы можете использовать yarn build --locale zh; если вам нужно развернуть португальскую версию, используйте yarn build --locale pt.

Развертывание на Cloudflare Pages

Нажмите кнопку или ссылку ниже, чтобы сделать Fork этого проекта, затем следуйте инструкциям для развертывания на Cloudflare Pages:

👉 Сделать Fork этого проекта

Шаги развертывания:

  1. Войдите в Cloudflare Pages и выберите "Create a project".
  2. Привяжите репозиторий, который вы только что форкнули.
  3. Настройте команды сборки:
    • Build command: yarn build --locale zh (Выберите подходящую локаль в зависимости от языка развертывания, например: для португальского используйте yarn build --locale pt).
    • Output directory: build.
  4. Нажмите Deploy и дождитесь завершения сборки и развертывания Cloudflare Pages.

Cloudflare Pages также будет автоматически запускать сборку и развертывание каждый раз, когда вы отправляете новый код.

Развертывание Docker

Если вы знакомы с Docker, вы можете быстро развернуть, используя следующую команду:

# ghcr.io
docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest

# docker hub
docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest

В качестве альтернативы вы также можете использовать docker-compose:

services:
chatgpt-shortcut:
container_name: chatgpt-shortcut
image: ghcr.io/rockbenben/chatgpt-shortcut:latest
ports:
- "3000:3000"
restart: unless-stopped

Включение синхронизированных обновлений

Если вы развернули свой проект на Vercel в один клик, вы можете столкнуться с проблемой, когда всегда указывается, что доступны обновления. Это связано с тем, что Vercel создает новый проект для вас по умолчанию вместо того, чтобы форкнуть этот проект, что приводит к сбою обнаружения обновлений. Рекомендуется повторно развернуть, следуя этим шагам:

  1. Удалите исходный репозиторий;
  2. Используйте кнопку fork в правом верхнем углу страницы, чтобы форкнуть этот проект;
  3. Повторно выберите проект, который вы только что форкнули, в разделе Import Git Repository на странице нового проекта Vercel и разверните.

Включить автоматическое обновление

Если вы столкнулись с ошибкой выполнения Upstream Sync, пожалуйста, выполните Sync Fork вручную один раз!

После форка проекта из-за ограничений GitHub вам необходимо вручную включить Workflows на странице Actions вашего форкнутого проекта и включить действие Upstream Sync. После включения обновления будут выполняться автоматически каждый день:

Автоматическое обновление

Включить автоматическое обновление

Ручное обновление кода

Если вы хотите немедленно выполнить обновление вручную, вы можете ознакомиться с документацией GitHub, чтобы узнать, как синхронизировать форкнутый проект с исходным кодом.

Вы можете поставить звезду (star)/следить (watch) за этим проектом или подписаться на автора, чтобы вовремя получать уведомления о новых обновлениях функций.