
Isingeniso sephrojekthi kanye nezixwayiso zokusetshenziswa
ChatGPT2API iphrojekthi ehlela kabusha futhi ihlanganise amakhono ahlobene newebhusayithi esemthethweni ye-ChatGPT ngokusebenzisa ucwaningo lokuhlehlisa, inikeze ama-API nama-proxy ahambisana ne-OpenAI ezimweni zokukhiqiza izithombe, ukuhlela izithombe nokuhlela izithombe eziningi ndawonye. Iphrojekthi ihlanganisa nendawo yokusebenza yokudweba ku-inthanethi, ukuphathwa kweqoqo lama-akhawunti, izindlela eziningi zokungenisa ama-akhawunti kanye namandla okuzisingatha nge-Docker.
Isikhumbuzi esibalulekile: I-README yephrojekthi isho ngokusobala ukuthi le phrojekthi yenzelwe ukufunda komuntu siqu, ucwaningo lobuchwepheshe kanye nokuxhumana kobuchwepheshe okungekona okokuhweba kuphela. Ungayisebenzisi ngezinjongo zokuhweba, ekusebenzeni ngobuningi, ekusetshenzisweni kabi okuzenzakalelayo, ekubizeni ngezinga elikhulu noma kunoma yikuphi ukwephula imigomo yesevisi ye-OpenAI nemithetho yasekhaya. Ngesikhathi sokuhlola, akufanele usebenzise ama-akhawunti abalulekile, avame ukusetshenziswa noma anenani eliphezulu.
Iphrojekthi ibandakanya ucwaningo lokuhlehlisa izixhumi ezibonakalayo zewebhusayithi esemthethweni, ngakho ukusetshenziswa kwayo kungadala ubungozi bokuvinjelwa kwe-akhawunti, ukuvinjelwa kwesikhashana noma ukuvinjelwa unomphela. Ngaphambi kokuyisebenzisa, qinisekisa ukuthi uyabuqonda futhi uyabemukela lobu bungozi.

Imisebenzi eyinhloko
Isixhumi esibonakalayo esihambisana ne-OpenAI
- Sihambisana nesixhumi esibonakalayo sokukhiqiza izithombe esithi
POST /v1/images/generations. - Sihambisana nesixhumi esibonakalayo sokuhlela izithombe esithi
POST /v1/images/edits. - Sihlinzeka ngezixhumi ezibonakalayo ezihambisana ne-
POST /v1/chat/completionskanye ne-POST /v1/responsesezigxile ezimweni zezithombe. - Siveza uhlu lwamamodeli ezithombe namamodeli ahlobene nge-
GET /v1/models. - Sisekela ukusebenzisa ipharamitha ethi
nukubuyisa imiphumela eminingi ekhiqiziwe, kanti umkhawulo wamanje ongemuva uyizithombe ezingu-1 kuya kwezi-4. - Sisekela ukukhiqiza amafayela e-PPT ne-PSD ahlelekayo.
Ukudweba nokuhlela ku-inthanethi
Indawo yokusebenza eyakhelwe ngaphakathi isekela ukukhiqiza isithombe ngombhalo, ukuhlela ngesithombe esiyireferensi kanye nokuhlela izithombe eziningi ndawonye. Ungakhetha gpt-image-2, codex-gpt-image-2, auto kanye namanye amagama eziteketiso zamamodeli e-GPT abhalwe ku-README. I-frontend iphinde inikeze umlando wezingxoxo zezithombe, ukulondoloza endaweni, ukususa nokusula, ukulondolozwa kwe-URL yezithombe kuseva, ukulandelela inqubekelaphambili yokukhiqiza, ukulayisha ngokuvilapha kanye nokukhumbula indawo yokuskrola.
Ukuphathwa kweqoqo lama-akhawunti
Iqoqo lama-akhawunti lingabuyekeza ngokungavumelani i-imeyili, uhlobo, isabelo nesikhathi sokubuyiselwa sama-akhawunti, bese lijikeleza kuma-akhawunti atholakalayo ukuze lenze ukukhiqiza nokuhlela izithombe. Uma kuvela amaphutha ahlobene nokuphelelwa yisikhathi kwe-Token, isistimu ingasusa ngokuzenzakalelayo ama-Token angasebenzi; kuma-akhawunti akhawulelwe, isekela nokuhlolwa okuhleliwe, ukungena kabusha ngephasiwedi nokubuyiselwa okuzenzakalelayo.
Iphrojekthi isekela ama-proxy e-HTTP, HTTPS, SOCKS5 ne-SOCKS5H, kanye nesikhathi sokusebenza se-proxy esizinzile esakhiwe yi-WARP, Privoxy ne-FlareSolverr. Izindlela zokungenisa ama-akhawunti zifaka i-CPA JSON yendawo, iseva ye-CPA ekude, iseva ye-sub2api kanye ne-access_token.


Ukusebenzisa i-Docker ukuze ufake ngokushesha
1. Thola iphrojekthi bese uqala isevisi
Kuyanconywa ukuthi uqale usebenzise i-Docker Compose ukuqala isevisi ephelele. Sebenzisa imiyalo elandelayo ukuze u-clone iphrojekthi futhi uyiqhube ngemuva:
git clone https://github.com/iamdurant/chatgpt2api-personal.git chatgpt2api
cd chatgpt2api
docker compose pull
docker compose up -dNgaphambi kokuqala, kufanele usethe auth-key ku-config.json. Ungasebenzisa futhi okuguquguqukayo kwemvelo okuthi CHATGPT2API_AUTH_KEY ku-docker-compose.yml ukuze weqe lokhu kulungiselelwa.
Ngokuzenzakalelayo, ikheli lephaneli ye-Web lithi http://localhost:3000, ikheli eliyisisekelo le-API lithi http://localhost:3000/v1, kanti idatha izogcinwa ku-./data ngaphansi kohla lwemibhalo lwephrojekthi. Ezinye izibonelo ze-curl ku-README zisebenzisa localhost:8000; ngesikhathi sokubiza, shintsha imbobo ngokumepha kwezimba zakho ze-Compose.
2. Finyelela iphaneli ye-Web
Ngemva kokuqala isevisi, vula http://localhost:3000 esipheqululini. Ekusetshenzisweni kokuqala, qedela kuqala ukulungiselela ukhiye wokugunyaza, ama-akhawunti nama-proxy, bese usebenzisa indawo yokusebenza ukuhlola imisebenzi yokukhiqiza noma yokuhlela izithombe.
3. Buyekeza isevisi
Uma ubuyekeza izithombe kamuva, ungasebenzisa:
docker compose pull
docker compose up -dVula i-WARP ne-FlareSolverr ukuze uthole i-proxy ezinzile

Uma izicelo zezithombe zivame ukuvinjwa yi-Cloudflare, ungasebenzisa uhlelo lokufaka i-WARP, Privoxy ne-FlareSolverr oluhambisana nephrojekthi:
cp .env.example .env
docker compose -f docker-compose.warp.yml pull
docker compose -f docker-compose.warp.yml up -dLokhu kulungiselelwa kwe-Compose kuzoqala izinsizakalo ezilandelayo:
warp-proxy: Inikeza ukuphuma kwe-WARP SOCKS5.privoxy: Iguqula i-WARP SOCKS5 ibe yi-HTTP proxy.flaresolverr: Ivuselela i-Cloudflare clearance.init-config: Ibhala ngokungaphindi ukucushwa okuzenzakalelayo kwe-proxy_runtime.app: Iqhuba isevisi eyinhloko ye-ChatGPT2API.
Ngokuzenzakalelayo, izicelo eziya ku-OpenAI noma ku-ChatGPT kuphela ezizosebenzisa i-proxy ezinzile; izixhumanisi ezisizayo ezifana ne-imeyili ye-akhawunti ne-CPA ngeke zilawulwe ngenkani. Ukuhamba phambili kwama-proxy kungokulandelayo: i-proxy elungiselelwe yi-akhawunti uqobo, isikhathi sokusebenza se-proxy ezinzile, i-proxy eshiwo ngokusobala, bese kuba i-global proxy yenguqulo endala. Ungalungisa izimbobo namapharamitha esikhathi sokusebenza ku-.env, futhi ungahlola i-proxy ne-clearance ekhasini lezilungiselelo zangemuva.
Indawo yokuthuthukisa yendawo
Qala i-backend
I-README yephrojekthi isebenzisa uv ukuphatha okuncike kukho kwe-Python. Sebenzisa imiyalo elandelayo ukuze uqale i-backend:
git clone https://github.com/iamdurant/chatgpt2api-personal.git chatgpt2api
cd chatgpt2api
uv sync
uv run main.pyQala i-frontend
Ngemva kokungena kuhla lwemibhalo lwe-Web, sebenzisa i-Bun ukufaka okuncike kukho bese uqala iseva yokuthuthukisa:
cd chatgpt2api/web
bun install
bun run dev
Lungiselela i-backend yokugcina
Iphrojekthi ikhetha indlela yokugcina ngokusebenzisa okuguquguqukayo kwemvelo okuthi STORAGE_BACKEND:
json: Ifayela le-JSON lendawo, okuyindlela ezenzakalelayo.sqlite: Isizindalwazi se-SQLite sendawo.postgres: I-PostgreSQL yangaphandle, edinga ukusethwa kwe-DATABASE_URL.git: I-repository yangasese ye-Git, edinga ukusethwa kwe-GIT_REPO_URLne-GIT_TOKEN.
Isibonelo, uma usebenzisa i-PostgreSQL, ungangeza okulandelayo kokuguquguqukayo kwemvelo kwe-Compose:
environment:
- STORAGE_BACKEND=postgres
- DATABASE_URL=postgresql://user:password@host:5432/dbnameBiza i-API yokukhiqiza izithombe
Zonke izixhumi ezibonakalayo ze-AI kumele ziphathe unhlokweni wesicelo wokugunyaza olandelayo:
Authorization: Bearer <auth-key>Qala ngokubiza isixhumi esibonakalayo sohlu lwamamodeli ukuze ubone amamodeli avezwayo njengamanje:
curl http://localhost:8000/v1/models \
-H "Authorization: Bearer <auth-key>"Ukukhiqiza isithombe ngombhalo kusebenzisa POST /v1/images/generations. Isibonelo esingezansi sizokhiqiza ikati elintanta emkhathini:
curl http://localhost:8000/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <auth-key>" \
-d '{
"model": "gpt-image-2",
"prompt": "Ikati elintanta emkhathini",
"n": 1,
"response_format": "b64_json"
}'
model kufanele isebenzise inani elitholakalayo elibuyiswe yi-/v1/models; i-README incoma ukusebenzisa gpt-image-2 ekukhiqizeni izithombe. n ingasetshenziswa ukusetha inani lezithombe ezizokhiqizwa, kodwa i-backend yamanje ikhawulela ku-1 kuya ku-4; isibonelo se-response_format sisebenzisa b64_json.
Biza i-API yokuhlela izithombe
Layisha isithombe sendawo nge-multipart
Isixhumi esibonakalayo sokuhlela izithombe sisekela ukulayisha ifayela lendawo nokusebenzisa umyalo ukuchaza izinguquko:
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer <auth-key>" \
-F "model=gpt-image-2" \
-F "prompt=Shintsha lesi sithombe sibe isitayela sobusuku se-cyberpunk" \
-F "n=1" \
-F "image=@./input.png"Hlela ngesixhumanisi se-URL sesithombe
Ungadlulisa futhi i-URL yesithombe ngefomethi ye-JSON:
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer <auth-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Shintsha lesi sithombe sibe isitayela sobusuku se-cyberpunk",
"images": [
{"image_url": "https://example.com/input.png"}
]
}'Hlela indawo ethile usebenzisa iphoyinti lokuphawula
Uhlu lwe-comments lungasetshenziswa ukulingisa ukuhlela izithombe okusekelwe kumazwana njengakwinguqulo yewebhu. x no-y zisekela amanani ajwayelekile asuka ku-0 kuya ku-1, izintambo zamaphesenti noma amanani asuka ku-0 kuya ku-100:
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer <auth-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Gcina zonke ezinye izingxenye zingashintshiwe",
"images": [
{"image_url": "https://example.com/input.png"}
],
"comments": [
{"x": "27.5%", "y": "70%", "text": "Shintsha ibhodwe letiye le-porcelain eliluhlaza libe ibhodwe letiye le-porcelain elimhlophe elinomphetho wegolide"},
{"x": 0.36, "y": 0.315, "text": "Faka enye i-hairpin yegolide phezu kwesigaxa sezinwele"}
]
}'Uma isicelo siqukethe comments, i-prompt ingashiywa. Amazwana ngamunye angasebenzisa image_index ukuze acacise isithombe sokufaka esihambisanayo; inani elizenzakalelayo ngu-0.

Ukuhlela Ngokusebenzisa Imigqa Yokumaka
Iphrojekthi iphinde isekele ibhulashi lokumaka elikuwebhu. Uma usebenzisa markup_strokes, points iwumugqa wamaphoyinti anezixhumanisi ezijwayelekile, color ezenzakalelayo ngu-#FF3B30, kanti width iyisilinganiso sobubanzi bomugqa uma buqhathaniswa nohlangothi olufushane lwesithombe:
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer <auth-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Shintsha uphawu lwe-neon olungaphakathi kombuthano lube luhlaza",
"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
}
]
}'Uma usunayo i-PNG esobala enemigqa yokumaka elingana nesilinganiso sesithombe sokuqala, ungasebenzisa futhi indlela ye-multipart ukuze ulayishe ifayela le-markup. Iphrojekthi izoqondanisa imigqa yokumaka nesithombe sokufaka, iyihlanganise, bese yenza ukuhlela.
Ukusebenzisa I-Chat Completions Nezindawo Ezihambisana Ne-Responses
Chat Completions
POST /v1/chat/completions inikeza ukuhambisana kwezimo zombhalo, ukusesha kuwebhu nezithombe, kodwa i-README igcizelela ukuthi akuyona i-ejenti yengxoxo evamile ephelele. Isibonelo sokukhiqiza isithombe:
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": "Khiqiza isithombe sekati le-cyberpunk emgwaqweni wase-Tokyo ngobusuku bemvula"
}
],
"n": 1
}'I-messages yale ndawo ingaphatha okuqukethwe kwezicelo zombhalo, ukusesha nezithombe; i-tools isekela amathuluzi okusesha kuwebhu abhalwe ku-README, kanti i-stream isasesigabeni sokuhlolwa ezimweni zombhalo, ukusesha nezithombe.
Responses API
POST /v1/responses isekela ukubizwa kwamathuluzi okukhiqiza izithombe kanye nengqondo ehambisana nokusesha kuwebhu, kodwa nayo akuyona i-ejenti ephelele evamile ye-Responses API:
curl http://localhost:8000/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <auth-key>" \
-d '{
"model": "gpt-5",
"input": "Khiqiza isithombe sesibhakabhaka sedolobha esinokubukeka kwesikhathi esizayo",
"tools": [
{
"type": "image_generation"
}
]
}'Lapha i-tools isekela image_generation, web_search, web_search_preview kanye ne-web_search_preview_2025_03_11. Impendulo esakazwayo isisetshenzisiwe, kodwa isasesigabeni sokuhlolwa.
Iziphakamiso Zokusebenzisa Ezithuthukile
- Qinisekisa kuqala ukugunyazwa nohlu lwamamodeli: Ngemva kokuphakela, qala ngokushayela i-
/v1/modelsukuze uqinisekise ukuthi i-auth-keynezilungiselelo zembobo zilungile, bese wenza izicelo zezithombe. - Khetha ngokufanele i-backend yesitoreji: Ukuhlola komuntu siqu kungasebenzisa i-JSON ezenzakalelayo noma i-SQLite; uma kudingeka isizindalwazi sangaphandle, lungiselela i-PostgreSQL bese uvikela kahle izintambo zokuxhuma.
- Phatha ukuvinjelwa yi-Cloudflare: Uma ukuzinza kwezicelo eziya kusevisi ephezulu kunganele, landela kuqala uhlelo lwe-WARP Compose olunikezwe yiphrojekthi ukuze ulungise ummeleli ozinzile, bese uhlola ummeleli ne-clearance ku-backend.
- Lawula ubungozi be-pool yama-akhawunti: Hlanza njalo ama-Token angasasebenzi, sebenzisa imisebenzi yokusesha, yokuhlunga neyokuvuselela ngobuningi ukuze ugcine isimo sama-akhawunti, futhi ugweme ukwenza imisebenzi yobuningi noma yokusebenzisa kabi evinjelwe yi-README kuma-akhawunti.
- Hlukanisa iziteketiso zamamodeli: I-
codex-gpt-image-2isetshenziselwa izimo zokudweba ze-Codex futhi itholakala kuphela kokubhaliselwe kwe-Plus, Team ne-Pro; amamodeli atholakalayo kufanele anqunywe ngemiphumela ebuyiswa yi-/v1/models. - Qaphela imingcele yezindawo: I-Chat Completions ne-Responses ikakhulu zenzelwe izimo zombhalo, ukusesha nezithombe ezichazwe ku-README; akufanele kusetshenziswe njengama-ejenti aphelele avamile.
Isifinyezo
ChatGPT2API ihlanganisa amakhono ezithombe ahlobene newebhu ye-ChatGPT abe yizindawo ezinesitayela se-OpenAI, futhi inikeza indawo yokusebenza eku-inthanethi, ukuthuthukiswa kokuhlela izithombe, i-pool yama-akhawunti, i-runtime yabameli kanye nezindlela eziningi zokuphakela. Ungaqala ngokuphakela okuyisisekelo usebenzisa i-Docker, bese ulungiselela i-backend yesitoreji, ummeleli ozinzile nokungenisa ama-akhawunti ngokuya ngezidingo, futhi ekugcineni usebenzise /v1/images/generations ne-/v1/images/edits ukuze uhlanganise izinqubo zokukhiqiza nokuhlela izithombe. Lapho usebenzisa lezi zinsiza, kufanele ulandele isitatimende sokuzikhulula somsebenzi, imigomo yesevisi yabahlinzeki abaphezulu kanye nemithetho nemigomo yendawo.
