Skip to main content

প্রজেক্ট স্থাপনা

কনফিগারেশন এবং কাস্টমাইজেশন

AI Short একটি ওপেন-সোর্স প্রজেক্ট, যা আপনাকে আপনার প্রয়োজন অনুযায়ী সাইটের শিরোনাম, বিবরণ এবং প্রম্পট সংশোধন করার অনুমতি দেয়। নিচে সাধারণ সংশোধনের বিকল্প এবং নির্দেশাবলী দেওয়া হলো:

  • সাইটের শিরোনাম এবং বিবরণ সংশোধন করুন সাইটের শিরোনাম এবং বিবরণ পরিবর্তন করতে, দয়া করে docusaurus.config.js কনফিগারেশন ফাইলটি সম্পাদনা করুন।

  • প্রজেক্ট নির্দেশাবলী এবং পরিচিতি সংশোধন করুন প্রজেক্টের ব্যবহারের নির্দেশাবলী এবং পরিচিতি ফাইলগুলি docs ডিরেক্টরিতে অবস্থিত। প্রয়োজনীয় পরিবর্তন করতে এই ডিরেক্টরির প্রাসঙ্গিক ফাইলগুলি খুলুন।

  • হোমপেজ প্রম্পট সংশোধন করুন হোমপেজ প্রম্পটগুলি src/data/prompt.json ফাইলে সংরক্ষিত আছে। যদি আপনার নির্দিষ্ট কোনো ভাষার (যেমন বাংলা) জন্য প্রম্পট সংশোধন করার প্রয়োজন হয়, তবে আপনি সরাসরি src/data/prompt_bn.json ফাইলটি সম্পাদনা করতে পারেন। নতুন প্রম্পট যোগ করার সময়, ফরম্যাটটি নিম্নরূপ:

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

    নোট: id ৫০০ এর উপরে সেট করার পরামর্শ দেওয়া হয়। নতুন প্রম্পটের নিজস্ব পৃষ্ঠা এবং মন্তব্য বিভাগ থাকবে না। যদি আপনার প্রম্পটের জন্য একটি উত্সর্গীকৃত পৃষ্ঠা যোগ করার প্রয়োজন হয়, তবে আপনি src/data/pages/prompt ডিরেক্টরিতে টেমপ্লেট ফাইলটি অনুলিপি এবং সংশোধন করতে পারেন।

  • কাস্টম ব্যাকএন্ড বর্তমান প্রজেক্ট একটি শেয়ার করা ব্যাকএন্ড সিস্টেমের সাথে সংযুক্ত। আপনি যদি নিজের ব্যাকএন্ড সেট আপ করতে চান, তবে দয়া করে src/api ফোল্ডারের ইন্টারফেস নির্দেশাবলী দেখুন।

    API মডিউল গঠন:

    src/api/
    ├── index.ts # ইউনিফাইড এক্সপোর্ট এন্ট্রি
    ├── config.ts # API URL কনফিগারেশন
    ├── client.ts # Axios ক্লায়েন্ট (অথেন্টিকেশন ইন্টারসেপ্টর সহ)
    ├── auth.ts # অথেন্টিকেশন API (লগইন/রেজিস্টার/OAuth)
    ├── prompts.ts # প্রম্পট CRUD + অনুসন্ধান + ভোটিং
    ├── favorites.ts # পছন্দের অপারেশন
    ├── myspace.ts # আমার স্পেস ডেটা (মূল ডেটা উৎস)
    ├── comments.ts # মন্তব্য সিস্টেম
    └── user.ts # ব্যবহারকারীর তথ্য

    ক্যাশিং মেকানিজম: প্রজেক্ট বুদ্ধিমান ক্যাশিংয়ের জন্য ETag এর সাথে lscache ব্যবহার করে। যখন সার্ভার 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

# `docusaurus.config.js` ফাইলে `defaultLocale` আপডেট করুন, তারপর কাঙ্ক্ষিত ভাষার জন্য বিল্ড করুন।
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 bn ব্যবহার করুন।

Cloudflare Pages স্থাপনা

নিচের বাটন বা লিঙ্কে ক্লিক করুন, এই প্রজেক্টটি Fork করুন, এবং Cloudflare Pages-এ স্থাপন করার জন্য নির্দেশাবলী অনুসরণ করুন:

👉 এই প্রজেক্টটি Fork করুন

স্থাপনার ধাপ:

  1. Cloudflare Pages-এ লগ ইন করুন, এবং "Create a project" নির্বাচন করুন।
  2. যে রিপোজিটরিটি আপনি এইমাত্র Fork করেছেন সেটি বাইন্ড করুন।
  3. বিল্ড কমান্ড কনফিগার করুন:
    • Build command: yarn build --locale zh (স্থাপিত ভাষার জন্য উপযুক্ত locale চয়ন করুন, উদাহরণস্বরূপ: বাংলার জন্য yarn build --locale bn ব্যবহার করুন)।
    • 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 ডিফল্টরূপে আপনার জন্য একটি নতুন প্রজেক্ট তৈরি করে, এই প্রজেক্টটি fork করার পরিবর্তে, যা আপডেটের সঠিক সনাক্তকরণ প্রতিরোধ করে। এই ধাপগুলি অনুসরণ করে পুনরায় স্থাপন করার পরামর্শ দেওয়া হয়:

  1. মূল রিপোজিটরিটি মুছে ফেলুন;
  2. এই প্রজেক্টটি fork করার জন্য পৃষ্ঠার উপরের ডান কোণায় fork বাটন ব্যবহার করুন;
  3. Vercel নতুন প্রজেক্ট পৃষ্ঠা-এ Import Git Repository বিভাগে আপনি যে প্রজেক্টটি এইমাত্র fork করেছেন সেটি পুনরায় নির্বাচন করুন এবং স্থাপন করুন।

স্বয়ংক্রিয় আপডেট চালু করুন

যদি আপনি Upstream Sync ত্রুটির সম্মুখীন হন, তবে দয়া করে ম্যানুয়ালি একবার Sync Fork সম্পাদন করুন!

প্রজেক্টটি fork করার পরে, GitHub বিধিনিষেধের কারণে, আপনাকে আপনার fork করা প্রজেক্টের Actions পৃষ্ঠায় ম্যানুয়ালি Workflows সক্ষম করতে হবে, এবং Upstream Sync Action সক্ষম করতে হবে। একবার সক্ষম হলে, আপডেটগুলি প্রতিদিন স্বয়ংক্রিয়ভাবে সম্পাদিত হবে:

স্বয়ংক্রিয় আপডেট

স্বয়ংক্রিয় আপডেট সক্ষম করুন

ম্যানুয়াল কোড আপডেট

যদি আপনি ম্যানুয়ালি অবিলম্বে আপডেট করতে চান, তবে আপনি GitHub ডকুমেন্টেশন দেখতে পারেন যে কীভাবে fork করা প্রজেক্টকে আপস্ট্রিম কোডের সাথে সিঙ্ক করবেন।

আপনি এই প্রজেক্টটিকে স্টার/ওয়াচ করতে পারেন, অথবা লেখকের অনুসরণ করতে পারেন যাতে নতুন ফিচারের আপডেটের বিজ্ঞপ্তি সময়মতো পাওয়া যায়।