মূল কনটেন্টে যান
এআই টিউটোরিয়াল

ChatGPT2API ব্যবহারের টিউটোরিয়াল: OpenAI-সামঞ্জস্যপূর্ণ ছবি তৈরি ও সম্পাদনা API তৈরি

এই নিবন্ধে ChatGPT2API-এর মূল সক্ষমতা, Docker ও স্থানীয় ডেভেলপমেন্ট ডিপ্লয়মেন্ট পদ্ধতি介绍 করা হবে। curl উদাহরণের মাধ্যমে ছবি তৈরি, ছবি সম্পাদনা, অ্যাঙ্কর মন্তব্য এবং টীকা-চিহ্ন সম্পাদনা দেখানো হবে। পাশাপাশি স্টোরেজ ব্যাকএন্ড, প্রক্সি ও অ্যাকাউন্ট পুল কনফিগারেশন ব্যাখ্যা করা হবে।

ChatGPT2API ব্যবহারের টিউটোরিয়াল: OpenAI-সামঞ্জস্যপূর্ণ ছবি তৈরি ও সম্পাদনা API

প্রকল্পের পরিচিতি ও ব্যবহারের সতর্কতা

ChatGPT2API হলো ChatGPT-এর অফিসিয়াল ওয়েবসাইটের সংশ্লিষ্ট সক্ষমতাগুলোকে রিভার্স ইঞ্জিনিয়ারিংয়ের মাধ্যমে বিশ্লেষণ ও প্যাকেজ করে তৈরি একটি প্রকল্প। এটি ছবি তৈরি, ছবি সম্পাদনা এবং একাধিক ছবি একত্রে সম্পাদনার মতো ব্যবহারের জন্য OpenAI-সামঞ্জস্যপূর্ণ API ও প্রক্সি সরবরাহ করে। প্রকল্পটিতে অনলাইন ছবি আঁকার ওয়ার্কবেঞ্চ, অ্যাকাউন্ট পুল ব্যবস্থাপনা, বিভিন্ন অ্যাকাউন্ট আমদানির পদ্ধতি এবং Docker স্ব-হোস্টেড ডেপ্লয়মেন্ট সুবিধাও একীভূত রয়েছে।

গুরুত্বপূর্ণ সতর্কতা: প্রকল্পটির README-তে স্পষ্টভাবে বলা হয়েছে যে এটি কেবল ব্যক্তিগত শিক্ষা, প্রযুক্তিগত গবেষণা এবং অ-বাণিজ্যিক প্রযুক্তিগত বিনিময়ের জন্য ব্যবহারের উদ্দেশ্যে তৈরি। এটি বাণিজ্যিক কাজে, ব্যাপক পরিমাণে অপারেশন, স্বয়ংক্রিয় অপব্যবহার, বৃহৎ পরিসরে কল করা, অথবা OpenAI-এর পরিষেবার শর্ত ও স্থানীয় আইনকানুন লঙ্ঘন করে এমন কোনো কাজে ব্যবহার করবেন না। পরীক্ষার সময় গুরুত্বপূর্ণ, নিয়মিত ব্যবহৃত বা উচ্চমূল্যের অ্যাকাউন্টও ব্যবহার করা উচিত নয়।

প্রকল্পটিতে অফিসিয়াল ওয়েবসাইটের ইন্টারফেসের রিভার্স ইঞ্জিনিয়ারিং গবেষণা জড়িত। ব্যবহারের সময় অ্যাকাউন্ট সীমাবদ্ধতা, সাময়িক নিষেধাজ্ঞা বা স্থায়ী নিষেধাজ্ঞার ঝুঁকি থাকতে পারে। ব্যবহারের আগে নিশ্চিত করুন যে আপনি সংশ্লিষ্ট ঝুঁকিগুলো বুঝেছেন এবং গ্রহণ করছেন।

ChatGPT2API ছবি ওয়ার্কবেঞ্চ ইন্টারফেস

প্রধান বৈশিষ্ট্য

OpenAI-সামঞ্জস্যপূর্ণ ইন্টারফেস

  • POST /v1/images/generations ছবি তৈরির ইন্টারফেস সমর্থন করে।
  • POST /v1/images/edits ছবি সম্পাদনার ইন্টারফেস সমর্থন করে।
  • ছবি-সংক্রান্ত ব্যবহারের জন্য POST /v1/chat/completions এবং POST /v1/responses সামঞ্জস্যপূর্ণ ইন্টারফেস সরবরাহ করে।
  • GET /v1/models-এর মাধ্যমে ছবি ও সংশ্লিষ্ট মডেলের তালিকা প্রকাশ করে।
  • n প্যারামিটার ব্যবহার করে একাধিক তৈরি করা ফলাফল ফেরত দেওয়া যায়; বর্তমানে ব্যাকএন্ডে সীমা 1 থেকে 4টি।
  • সম্পাদনাযোগ্য PPT ও PSD ফাইল তৈরি সমর্থন করে।

অনলাইন ছবি আঁকা ও সম্পাদনা

অন্তর্নির্মিত ওয়ার্কবেঞ্চে টেক্সট-টু-ইমেজ, রেফারেন্স ছবি সম্পাদনা এবং একাধিক ছবি একত্রে সম্পাদনার সুবিধা রয়েছে। এখানে gpt-image-2, codex-gpt-image-2, auto এবং README-তে তালিকাভুক্ত GPT মডেলের অ্যালিয়াস বেছে নেওয়া যায়। ফ্রন্টএন্ডে ছবি সেশনের ইতিহাস, স্থানীয় সংরক্ষণ, মুছে ফেলা ও সবকিছু পরিষ্কার করা, সার্ভার-সাইড ছবির URL ক্যাশ, তৈরির অগ্রগতি পর্যবেক্ষণ, অলস লোডিং এবং স্ক্রল অবস্থান মনে রাখার সুবিধাও রয়েছে।

অ্যাকাউন্ট পুল ব্যবস্থাপনা

অ্যাকাউন্ট পুলে অ্যাকাউন্টের ইমেইল, ধরন, কোটা এবং পুনরুদ্ধারের সময় অ্যাসিঙ্ক্রোনাসভাবে রিফ্রেশ করা যায়। উপলভ্য অ্যাকাউন্টগুলো পালাক্রমে ব্যবহার করে ছবি তৈরি ও সম্পাদনা করা হয়। Token অকার্যকর হওয়ার ধরনের ত্রুটি দেখা দিলে সিস্টেম স্বয়ংক্রিয়ভাবে অকার্যকর Token বাদ দিতে পারে। সীমারোধী অ্যাকাউন্টগুলোর জন্য নির্ধারিত সময়ে পরীক্ষা, পাসওয়ার্ড দিয়ে পুনরায় লগইন এবং স্বয়ংক্রিয় পুনরুদ্ধারও সমর্থিত।

প্রকল্পটি HTTP, HTTPS, SOCKS5, SOCKS5H প্রক্সির পাশাপাশি WARP, Privoxy এবং FlareSolverr সমন্বয়ে স্থিতিশীল প্রক্সি রানটাইম সমর্থন করে। অ্যাকাউন্ট আমদানির পদ্ধতির মধ্যে রয়েছে স্থানীয় CPA JSON, রিমোট CPA সার্ভার, sub2api সার্ভার এবং access_token।

ChatGPT2API অ্যাকাউন্ট পুল ব্যবস্থাপনা ইন্টারফেস

Docker ব্যবহার করে দ্রুত ডেপ্লয়মেন্ট

1. প্রকল্প সংগ্রহ ও পরিষেবা চালু করা

প্রথমে Docker Compose ব্যবহার করে সম্পূর্ণ পরিষেবা চালু করার পরামর্শ দেওয়া হয়। প্রকল্প ক্লোন করে ব্যাকগ্রাউন্ডে চালাতে নিচের কমান্ডগুলো সম্পাদন করুন:

git clone https://github.com/iamdurant/chatgpt2api-personal.git chatgpt2api
cd chatgpt2api
docker compose pull
docker compose up -d

চালু করার আগে config.json-এ auth-key সেট করতে হবে। চাইলে docker-compose.yml-এ পরিবেশ ভেরিয়েবল CHATGPT2API_AUTH_KEY ব্যবহার করে এই কনফিগারেশন ওভাররাইড করা যায়।

ডিফল্টভাবে Web প্যানেলের ঠিকানা http://localhost:3000, API-এর বেস ঠিকানা http://localhost:3000/v1 এবং ডেটা প্রকল্প ডিরেক্টরির ./data-তে সংরক্ষিত হবে। README-এর কিছু curl উদাহরণে localhost:8000 ব্যবহার করা হয়েছে। বাস্তবে কল করার সময় আপনার Compose পোর্ট ম্যাপিং অনুযায়ী পোর্ট পরিবর্তন করুন।

2. Web প্যানেলে প্রবেশ

পরিষেবা চালু হওয়ার পর ব্রাউজারে http://localhost:3000 খুলুন। প্রথমবার ব্যবহারের সময় আগে অনুমোদন কী, অ্যাকাউন্ট, প্রক্সি এবং অন্যান্য প্রয়োজনীয় কনফিগারেশন সম্পন্ন করুন। এরপর ওয়ার্কবেঞ্চের মাধ্যমে ছবি তৈরি বা সম্পাদনার বৈশিষ্ট্য পরীক্ষা করুন।

3. পরিষেবা আপডেট

পরবর্তীতে ইমেজ আপডেট করতে নিচের কমান্ডগুলো সম্পাদন করা যায়:

docker compose pull
docker compose up -d

WARP ও FlareSolverr স্থিতিশীল প্রক্সি চালু করা

ছবির অনুরোধগুলো যদি প্রায়ই Cloudflare দ্বারা বাধাপ্রাপ্ত হয়, তাহলে প্রকল্পের সঙ্গে দেওয়া WARP, Privoxy ও FlareSolverr ডেপ্লয়মেন্ট সমাধান ব্যবহার করতে পারেন:

cp .env.example .env
docker compose -f docker-compose.warp.yml pull
docker compose -f docker-compose.warp.yml up -d

এই Compose কনফিগারেশন নিচের পরিষেবাগুলো চালু করবে:

  • warp-proxy: WARP SOCKS5 আউটলেট সরবরাহ করে।
  • privoxy: WARP SOCKS5-কে HTTP প্রক্সিতে রূপান্তর করে।
  • flaresolverr: Cloudflare clearance রিফ্রেশ করে।
  • init-config: proxy_runtime-এর ডিফল্ট কনফিগারেশন idempotent পদ্ধতিতে লিখে।
  • app: ChatGPT2API মূল পরিষেবা চালায়।

ডিফল্টভাবে কেবল upstream OpenAI বা ChatGPT অনুরোধগুলো স্থিতিশীল প্রক্সি ব্যবহার করবে; অ্যাকাউন্টের ইমেইল, CPA এবং অন্যান্য সহায়ক লিংক জোর করে এতে যুক্ত হবে না। প্রক্সির অগ্রাধিকার হলো: অ্যাকাউন্টে নিজস্বভাবে কনফিগার করা প্রক্সি, স্থিতিশীল প্রক্সি রানটাইম, স্পষ্টভাবে নির্ধারিত প্রক্সি, পুরোনো গ্লোবাল প্রক্সি। .env-এ পোর্ট ও রানটাইম প্যারামিটার পরিবর্তন করা যায়। ব্যাকএন্ডের সেটিংস পেজ থেকেও প্রক্সি ও clearance পরীক্ষা করা যায়।

স্থানীয় ডেভেলপমেন্ট পরিবেশ

ব্যাকএন্ড চালু করা

প্রকল্পটির README Python নির্ভরতা ব্যবস্থাপনার জন্য uv ব্যবহার করে। ব্যাকএন্ড চালু করতে নিচের কমান্ডগুলো সম্পাদন করুন:

git clone https://github.com/iamdurant/chatgpt2api-personal.git chatgpt2api
cd chatgpt2api
uv sync
uv run main.py

ফ্রন্টএন্ড চালু করা

Web ডিরেক্টরিতে প্রবেশ করে Bun ব্যবহার করে নির্ভরতা ইনস্টল ও ডেভেলপমেন্ট সার্ভার চালু করুন:

cd chatgpt2api/web
bun install
bun run dev

স্টোরেজ ব্যাকএন্ড কনফিগার করা

প্রকল্পটি পরিবেশ ভেরিয়েবল STORAGE_BACKEND-এর মাধ্যমে স্টোরেজ পদ্ধতি নির্বাচন করে:

  • json: স্থানীয় JSON ফাইল, ডিফল্ট পদ্ধতি।
  • sqlite: স্থানীয় SQLite ডেটাবেস।
  • postgres: বাহ্যিক PostgreSQL; DATABASE_URL সেট করতে হবে।
  • git: Git ব্যক্তিগত রিপোজিটরি; GIT_REPO_URL এবং GIT_TOKEN সেট করতে হবে।

উদাহরণস্বরূপ, PostgreSQL ব্যবহার করলে Compose পরিবেশ ভেরিয়েবলে নিচের অংশ যোগ করা যায়:

environment:
  - STORAGE_BACKEND=postgres
  - DATABASE_URL=postgresql://user:password@host:5432/dbname

ছবি তৈরি API কল করা

সব AI ইন্টারফেসে নিচের অনুমোদন রিকোয়েস্ট হেডারটি যুক্ত করতে হবে:

Authorization: Bearer <auth-key>

প্রথমে মডেল তালিকা ইন্টারফেসে কল করলে বর্তমানে প্রকাশিত মডেলগুলো দেখা যাবে:

curl http://localhost:8000/v1/models \
  -H "Authorization: Bearer <auth-key>"

টেক্সট-টু-ইমেজের জন্য POST /v1/images/generations ব্যবহার করুন। নিচের উদাহরণে মহাকাশে ভাসমান একটি বিড়াল তৈরি করা হবে:

curl http://localhost:8000/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <auth-key>" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "মহাকাশে ভাসমান একটি বিড়াল",
    "n": 1,
    "response_format": "b64_json"
  }'

model-এ /v1/models থেকে ফেরত পাওয়া উপলভ্য মান ব্যবহার করা উচিত। README ছবি তৈরির জন্য gpt-image-2 ব্যবহারের পরামর্শ দেয়। n-এ তৈরির সংখ্যা নির্ধারণ করা যায়, তবে বর্তমানে ব্যাকএন্ডে সীমা 1 থেকে 4টি। response_format উদাহরণে b64_json ব্যবহার করা হয়েছে।

ছবি সম্পাদনা API কল করা

multipart ব্যবহার করে স্থানীয় ছবি আপলোড

ছবি সম্পাদনা ইন্টারফেসে স্থানীয় ফাইল আপলোড করে প্রম্পটের মাধ্যমে পরিবর্তনের বিষয়বস্তু বর্ণনা করা যায়:

curl http://localhost:8000/v1/images/edits \
  -H "Authorization: Bearer <auth-key>" \
  -F "model=gpt-image-2" \
  -F "prompt=এই ছবিটিকে সাইবারপাঙ্ক রাতের দৃশ্যের স্টাইলে পরিবর্তন করুন" \
  -F "n=1" \
  -F "image=@./input.png"

ছবির URL ব্যবহার করে সম্পাদনা

JSON ফরম্যাটে ছবির URL-ও পাঠানো যায়:

curl http://localhost:8000/v1/images/edits \
  -H "Authorization: Bearer <auth-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "এই ছবিটিকে সাইবারপাঙ্ক রাতের দৃশ্যের স্টাইলে পরিবর্তন করুন",
    "images": [
      {"image_url": "https://example.com/input.png"}
    ]
  }'

কমেন্ট অ্যাঙ্কর ব্যবহার করে নির্দিষ্ট অঞ্চল সম্পাদনা

comments অ্যারের মাধ্যমে ওয়েব সংস্করণের ছবির কমেন্ট-ভিত্তিক সম্পাদনা অনুকরণ করা যায়। x ও y-তে 0 থেকে 1 পর্যন্ত নরমালাইজড মান, শতাংশের স্ট্রিং অথবা 0 থেকে 100 পর্যন্ত মান ব্যবহার করা যায়:

curl http://localhost:8000/v1/images/edits \
  -H "Authorization: Bearer <auth-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "বাকি অংশ অপরিবর্তিত রাখুন",
    "images": [
      {"image_url": "https://example.com/input.png"}
    ],
    "comments": [
      {"x": "27.5%", "y": "70%", "text": "নীল-সাদা চীনামাটির চা-পাত্রটি সোনালি প্রান্তযুক্ত সাদা চীনামাটির চা-পাত্র দিয়ে প্রতিস্থাপন করুন"},
      {"x": 0.36, "y": 0.315, "text": "খোঁপায় আরও একটি সোনালি চুলের অলংকার গুঁজে দিন"}
    ]
  }'

অনুরোধে comments থাকলে prompt বাদ দেওয়া যায়। প্রতিটি মন্তব্যে সংশ্লিষ্ট ইনপুট ছবি নির্দিষ্ট করতে image_index ব্যবহার করা যায়; ডিফল্ট মান 0।

অ্যানোটেশন স্ট্রোক ব্যবহার করে সম্পাদনা

প্রকল্পটি ওয়েব সংস্করণের অ্যানোটেশন ব্রাশও সমর্থন করে। markup_strokes ব্যবহার করার সময়, points হলো নর্মালাইজড স্থানাঙ্কের পলিলাইন, color-এর ডিফল্ট মান #FF3B30, আর width হলো ছবির ছোট প্রান্তের তুলনায় রেখার প্রস্থের অনুপাত:

curl http://localhost:8000/v1/images/edits \
  -H "Authorization: Bearer <auth-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "বৃত্তের ভেতরের নিয়ন সাইনটি সবুজ দিয়ে প্রতিস্থাপন করুন",
    "images": [
      {"image_url": "https://example.com/input.png"}
    ],
    "markup_strokes": [
      {
        "points": [[0.62, 0.18], [0.78, 0.22], [0.75, 0.42], [0.6, 0.38], [0.62, 0.18]],
        "color": "#FF3B30",
        "width": 0.01
      }
    ]
  }'

মূল ছবির সঙ্গে একই অনুপাতের স্বচ্ছ স্ট্রোকের PNG আগে থেকেই থাকলে, multipart পদ্ধতিতে markup ফাইলও আপলোড করা যায়। প্রকল্পটি স্ট্রোকগুলোকে ইনপুট ছবির সঙ্গে সামঞ্জস্য করে একত্রিত করার পর সম্পাদনা চালাবে।

Chat Completions ও Responses সামঞ্জস্যপূর্ণ ইন্টারফেস ব্যবহার

Chat Completions

POST /v1/chat/completions টেক্সট, ওয়েব সার্চ ও ছবির পরিস্থিতির জন্য সামঞ্জস্যপূর্ণ সুবিধা দেয়, তবে README-তে বিশেষভাবে বলা হয়েছে যে এটি সম্পূর্ণ সাধারণ-উদ্দেশ্যের চ্যাট এজেন্ট নয়। ছবি তৈরির উদাহরণ:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <auth-key>" \
  -d '{
    "model": "gpt-image-2",
    "messages": [
      {
        "role": "user",
        "content": "বৃষ্টিভেজা রাতের টোকিওর রাস্তায় একটি সাইবারপাঙ্ক বিড়াল তৈরি করুন"
      }
    ],
    "n": 1
  }'

এই ইন্টারফেসের messages-এ টেক্সট, সার্চ ও ছবির অনুরোধের বিষয়বস্তু রাখা যায়; tools README-তে তালিকাভুক্ত ওয়েব সার্চ টুলগুলো সমর্থন করে, আর টেক্সট, সার্চ ও ছবির পরিস্থিতিতে stream এখনও পরীক্ষামূলক অবস্থায় রয়েছে।

Responses API

POST /v1/responses ছবি তৈরির টুল কল ও ওয়েব সার্চের সামঞ্জস্যপূর্ণ যুক্তি সমর্থন করে, তবে এটিও সম্পূর্ণ সাধারণ-উদ্দেশ্যের Responses API প্রক্সি নয়:

curl http://localhost:8000/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <auth-key>" \
  -d '{
    "model": "gpt-5",
    "input": "ভবিষ্যৎধর্মী শহরের স্কাইলাইনের একটি ছবি তৈরি করুন",
    "tools": [
      {
        "type": "image_generation"
      }
    ]
  }'

এখানে tools image_generation, web_search, web_search_preview এবং web_search_preview_2025_03_11 সমর্থন করে। স্ট্রিমিং প্রতিক্রিয়া বাস্তবায়িত হয়েছে, তবে এখনও পরীক্ষাধীন।

উন্নত ব্যবহারের পরামর্শ

  1. প্রথমে অনুমোদন ও মডেলের তালিকা যাচাই করুন: স্থাপনের পর প্রথমে /v1/models কল করে auth-key ও পোর্টের কনফিগারেশন সঠিক কি না নিশ্চিত করুন, তারপর ছবির অনুরোধ পাঠান।
  2. উপযুক্ত স্টোরেজ ব্যাকএন্ড বেছে নিন: ব্যক্তিগত পরীক্ষায় ডিফল্ট JSON বা SQLite ব্যবহার করা যায়; বাহ্যিক ডেটাবেস প্রয়োজন হলে PostgreSQL কনফিগার করুন এবং সংযোগের স্ট্রিং যথাযথভাবে সুরক্ষিত রাখুন।
  3. Cloudflare বাধা সামলান: আপস্ট্রিম অনুরোধের স্থিতিশীলতা কম হলে প্রকল্পের দেওয়া WARP Compose পদ্ধতি অনুসারে স্থিতিশীল প্রক্সি কনফিগার করুন এবং ব্যাকএন্ডে প্রক্সি ও clearance পরীক্ষা করুন।
  4. অ্যাকাউন্ট পুলের ঝুঁকি নিয়ন্ত্রণ করুন: নিয়মিত অকার্যকর Token মুছে ফেলুন, সার্চ, ফিল্টার ও ব্যাচ রিফ্রেশ সুবিধা ব্যবহার করে অ্যাকাউন্টের অবস্থা বজায় রাখুন এবং README-তে নিষিদ্ধ ব্যাচ বা অপব্যবহারমূলক কার্যক্রম এড়িয়ে চলুন।
  5. মডেলের উপনাম আলাদা করে বুঝুন: codex-gpt-image-2 Codex-এর ছবি আঁকার পরিস্থিতির জন্য ব্যবহৃত হয় এবং শুধু Plus, Team ও Pro সাবস্ক্রিপশনে উপলভ্য; নির্দিষ্টভাবে কোন মডেল ব্যবহারযোগ্য তা /v1/models-এর প্রতিক্রিয়া অনুযায়ী নির্ধারণ করুন।
  6. ইন্টারফেসের সীমা মনে রাখুন: Chat Completions ও Responses মূলত README-তে উল্লেখিত টেক্সট, সার্চ ও ছবির পরিস্থিতির জন্য; এগুলোকে সম্পূর্ণ সাধারণ-উদ্দেশ্যের প্রক্সি হিসেবে ব্যবহার করা উচিত নয়।

সারসংক্ষেপ

ChatGPT2API ChatGPT-এর ওয়েব সংস্করণের সংশ্লিষ্ট ছবির সুবিধাগুলোকে OpenAI-ধাঁচের ইন্টারফেসে মোড়কবদ্ধ করে এবং অনলাইন ওয়ার্কবেঞ্চ, উন্নত ছবি সম্পাদনা, অ্যাকাউন্ট পুল, প্রক্সি রানটাইম ও বিভিন্ন স্থাপনা পদ্ধতি সরবরাহ করে। প্রথমে Docker দিয়ে মৌলিক স্থাপনা সম্পন্ন করে, প্রয়োজন অনুযায়ী স্টোরেজ ব্যাকএন্ড, স্থিতিশীল প্রক্সি ও অ্যাকাউন্ট আমদানি কনফিগার করুন; এরপর /v1/images/generations ও /v1/images/edits ব্যবহার করে ছবি তৈরি ও সম্পাদনার প্রক্রিয়ায় সংযুক্ত হতে পারেন। ব্যবহারের সময় প্রকল্পের দাবিত্যাগ, আপস্ট্রিম পরিষেবার শর্তাবলি এবং স্থানীয় আইন ও বিধি অবশ্যই মেনে চলুন।