Onyesha Kurasa 10,000 kwa Mwezi kwa Picha Halisi — katika Maombi 500 ya API
Tafuta mara moja kwa kila kundi la mada badala ya mara moja kwa kila picha, na maombi 40,000 ya API yanakuwa 500. Mtindo wa kuunda pool na kugawa, mfanyakazi anayestahimili mipaka ya kiwango, na sehemu ya uwazi kuhusu kile ambacho picha haziwezi kurekebisha.
Kuna toleo la tatizo la kuonyesha maudhui ambalo hakuna kiasi cha ladha nzuri kinachoweza kulitatua: hutafuti picha moja, unajaza nafasi 40,000 za picha kwa mwezi katika makundi 800 ya mada, lugha 9 na tovuti 14 za wateja, na kila moja inahitaji leseni, sifa, ukubwa na kuwa tofauti na ile iliyo karibu nayo. Katika kiwango hicho swali linaacha kuwa "picha ipi?" na linakuwa "muundo ni upi?"
Makala haya ni jibu la API: mtindo wa ombi unaopunguza idadi ya miito kwa mara mia, mfanyakazi anayestahimili vikomo vya kiwango, uzuiaji wa marudio unaozuia tovuti ya kurasa 10,000 kutoonekana kama ukuta wa picha ile ile ya hisa — na sehemu ya kweli kuhusu kile picha haziwezi kukufanyia.
Kizuizi halisi katika makala 10,000
Timu zinazochapisha kwa wingi — mali za SEO za kiprogramu, kurasa za jamii za soko, wakusanyaji, mitandao ya washirika, mashirika yanayoendesha maudhui kwa kundi la wateja, mifumo ya utafsiri inayogeuza makala moja kuwa 20 — zote zinagonga kuta zile zile tatu, kwa mfuatano ule ule:
- Idadi ya miito. Utafutaji mmoja kwa kila nafasi ya picha unamaanisha miito 40,000 ya API kwa makala 10,000 zenye picha nne kila moja. Kila mtoa huduma anakutoza bei, anakuzuia na kukukagua kulingana na idadi hiyo.
- Marudio. Karibu ukurasa wa thelathini, picha ile ile huanza kujitokeza tena. Kufikia ukurasa wa elfu tatu, tovuti yako ina saini ya kuona: imezalishwa kwa wingi.
- Uratibu. Makala mia moja katika kundi moja yanapaswa kuonekana kama mfululizo, siyo bao mia moja tofauti ya Pinterest — na lugha inayofuata ya makala yale yale inapaswa kutumia tena picha ile ile, siyo kutafuta tena kwa lugha nyingine.
Angalia kile kisichoko katika orodha hiyo: kutafuta picha nzuri. Injini ya kisemantiki hurejesha ukurasa wa mgombea zinazoweza kutumika ndani ya milisekunde 130 hivi. Utafutaji ulishatatuliwa; ugavi haukutatuliwa. Kila kitu kilicho hapa chini kinahusu ugavi.
Kwa nini picha halisi, hasa katika kiwango hiki
Hoja ya upigaji picha dhidi ya uzalishaji inakuwa imara zaidi kadri wingi unavyoongezeka, kwa sababu ambazo mara nyingi ni za uendeshaji zaidi kuliko za urembo.
| Katika picha 40,000/mwezi | Kuzizalisha | Kuzitafuta |
|---|---|---|
| Muda kwa kila picha | Sekunde hadi dakika, pamoja na majaribio yaliyokataliwa | Ombi moja (~130 ms) linahudumia kundi zima |
| Kinachosukuma gharama | Kwa kila picha, milele | Kwa kila ombi — na ombi moja linahudumia makala ~25 |
| Metadata unayopata | Hakuna. Unaandika maandishi mbadala na vipimo mwenyewe | Vipimo, rangi kuu, blur hash, rasimu ya maelezo, mstari wa sifa |
| Chanzo | Inaalamishwa kimashine kama ya kubuni chini ya EU AI Act tangu 2 Agosti 20261 | Mpiga picha aliyetajwa, tarehe, kiungo cha chanzo msomaji anaweza kufungua |
| Aina ya hitilafu | Maelezo yanayoonekana sahihi lakini si kweli, mtindo mmoja wa nyumba | Hakuna kilicholingana na maelekezo — unapata matokeo sifuri, ambayo unaweza kuyashughulikia |
Safu ya metadata ndiyo inayoamua mifumo. Kila matokeo ya utafutaji tayari yanabeba
width, height, blur_hash, color_hex,
alt_description na mfuatano wa attribution.html tayari — ambao ndio
kile injini ya kiolezo inahitaji kutoa <img> isiyobadilisha mpangilio
ikiwa na nafasi tayari na sifa. Picha zilizozalishwa zinakupa faili tu na
zinakuachia sehemu nyingine sita za kuzitunga.
Pale uzalishaji bado unashinda kwa wingi. Uonyeshaji wa ngazi ya kategoria kwa taksonomia dhahania ("cloud migration", "index funds"), michoro, na mtindo wa nyumba unaotaka kurudiwa katika mali nzima kwa sababu za chapa. Mgawanyo ambao wachapishaji wengi wakubwa hufikia: picha halisi kwa chochote kilichopo duniani, sanaa iliyozalishwa kwa chochote kilichopo tu kwenye hoja. Tulitoa hoja kamili kwa mgawanyo huo katika jinsi ya kuonyesha kila makala unayochapisha.
Ombi moja, picha mia moja
Hii ndiyo mabadiliko pekee yanayounda upya hesabu. Kituo cha utafutaji kinakubali
per_page hadi 100, na uwekaji kurasa wa cursor unakuruhusu kuendelea kupitia
seti ile ile ya matokeo yaliyopangwa. Kwa hivyo kitengo cha kazi si picha, ni rasilimali.
curl -sG "https://api.pexafy.com/api/v1/search/photos" \
-H "X-Api-Key: $PEXAFY_API_KEY" \
--data-urlencode "q=a woman signing paperwork with an insurance agent at a kitchen table in her home" \
--data-urlencode "per_page=100" \
--data-urlencode "orientation=landscape" \
--data-urlencode "score_threshold=0.5" \
--data-urlencode "fields=photo_id,urls,width,height,blur_hash,alt_description,attribution"
# → { "success": true, "data": [ …hadi picha 100… ],
# "pagination": { "per_page": 100, "has_more": true, "next_cursor": "eyJyc…" },
# "meta": { "took_ms": 122.33, "request_id": "7ff1fb9b-…" } }
Vigezo vitatu humo vinafanya kazi kimya kimya kwa wingi:
fields— seti finyu ya sehemu. Omba sehemu saba ambazo kiolezo chako kinachora na jibu litaacha kutuma maelezo marefu ya AI ya kila picha. Kwa picha 40,000 hii ndiyo tofauti kati ya ujenzi unaomiminika na ule unaobadilishana.score_threshold— mkia wa ukurasa wa matokeo 100, kwa ufafanuzi, una umuhimu mdogo kuliko sehemu ya juu. Kuweka kiwango cha chini kinamaanisha kundi hafifu linarejesha picha 34 badala ya picha 100 za wastani, na mfumo wako unaweza kuitikia hilo badala ya kulichapisha.next_cursor— kundi linapohitaji kweli picha 300, pitia seti ile ile iliyopangwa badala ya kupiga maswali matatu tofauti yanayopishana.
Na hii ndiyo hesabu, kwa tovuti inayochapisha kurasa 10,000 kwa mwezi zenye picha nne kila moja:
| Mkakati | Maombi / mwezi | Mzunguko mmoja kwa kikomo cha kiwango cha mpango wa bure20 maombi/dakika | Yanaingia katika kiwango cha mwezi cha bure? |
|---|---|---|---|
| Utafutaji mmoja kwa kila nafasi ya picha | 40,000 | 33 hours | Hapana — mpango wa kulipia |
| Utafutaji mmoja kwa kila makala | 10,000 | 8 hours | Hapana — mpango wa kulipia |
| Utafutaji mmoja kwa kila kundi la makala ~20mtindo katika makala haya | 500 | 25 minutes | Ndiyo |
Picha 40,000 zile zile zilizochapishwa katika safu mlalo zote tatu. Kitu pekee kilichobadilika ni mahali ambapo mzunguko upo.
Kusanya na gawa: mtindo unaokua
Muundo mzima ni awamu mbili zinazoendesha kwa mzunguko tofauti, na jedwali kati yao:
┌─────────── inaendesha kila wiki, maombi ~500 ───────────┐
makundi ya mada ──▶ KUSANYA tafuta mara moja kwa kila kundi, per_page=100
│ └─▶ hifadhi safu 100 za picha kwa kila kundi
└──────────────────┬───────────────────────────────┘
▼
jedwali la image_pool
(cluster, photo_id, urls, blur_hash,
alt, credit, used_by_page, used_at)
│
┌──────────────────┴──── inaendesha kwa kila kuchapisha, maombi 0 ───┐
makala ─────────▶ GAWA chagua safu bora isiyotumika kwa
│ kundi hili, iweke alama kuwa imetumika, chora
└────────────────────────────────────────────────────────┘
Hiki ndicho unachopata, kwa mpangilio wa umuhimu kwa wingi:
- Uchapishaji hausubiri API kamwe. Ugawaji ni usomaji wa hifadhidata. Mchakato wa uhifadhi wa CMS yako, ujenzi wako tuli na uingizaji wako wa wingi wa saa 3 asubuhi vyote vinaendesha kwa kasi ya ndani, bila mtandao, bila kikomo chochote cha kiwango popote katika njia hiyo.
- Uzuiaji wa marudio ni bure na sahihi.
used_by_page IS NULLndiyo kipengele kizima. Kurasa mbili haziwezi kuchota picha ile ile, kwa sababu ugawaji ni muamala, siyo hesabu ya upangaji. - Kuendesha upya ni gharama nafuu na kisicho na madhara ya kurudia. Onyesha upya rasilimali ya kundi inapopungua
au unapotaka picha mpya (
after_date, ausort_by=newest) — ombi moja, na hakuna kilichokwisha kuchapishwa kinachohamishwa. - Lugha zinapatikana bure. Tafsiri 20 za makala moja ni ukurasa mmoja katika
mfumo wako wenye michoro 20; zinashiriki
photo_idiliyogawiwa na huwezi kamwe kutafuta mara mbili. Unapotaka mwonekano wa picha zilizopigwa mahali husika, endesha swali la rasilimali kwa kundi hilo kwa lugha lengwa — injini inakubali sentensi kwa zaidi ya lugha 100.
Mfanyakazi, katika msimbo
Takribani mistari sitini. Kijazaji cha rasilimali ndicho kipengele pekee kinachozungumza na mtandao, kwa hivyo ndicho
pekee kinachohitaji uangalifu — ushindani wa wakati mmoja umepunguzwa, 429 unaheshimiwa, matokeo
yaliyoandikwa katika muamala mmoja.
import asyncio, os, time, httpx
SEARCH = "https://api.pexafy.com/api/v1/search/photos"
KEY = os.environ["PEXAFY_API_KEY"]
FIELDS = "photo_id,urls,width,height,blur_hash,alt_description,attribution"
# Free = 20 maombi/dakika. Baki chini ya moja. Kipima muda ni WA JUMLA: usingizi kwa kila kazi
# ndani ya lango la ushindani ungeruhusu wafanyakazi N kupiga N× kiwango.
PER_MIN = 19
gate = asyncio.Semaphore(4) # miunganisho inayoendelea
_lock = asyncio.Lock()
_slot = 0.0 # wakati ujao huru katika ratiba ya pamoja
async def pace():
"""Toa nafasi moja ya ombi kila sekunde 60/PER_MIN, kwa fleet nzima."""
global _slot
async with _lock:
now = time.monotonic()
_slot = max(now, _slot) + 60 / PER_MIN
wait = _slot - now
if wait > 0:
await asyncio.sleep(wait)
class QuotaExhausted(Exception): ... # kila mwezi: kujaribu tena hakusaidii
async def fill_pool(client, cluster) -> list[dict]:
"""Ombi moja → hadi picha 100 zenye sifa kwa kundi moja la mada."""
for attempt in range(4):
await pace()
async with gate:
r = await client.get(
SEARCH,
headers={"X-Api-Key": KEY},
params={
"q": cluster["camera_brief"], # tukio, siyo neno kuu
"per_page": 100,
"orientation": "landscape",
"score_threshold": 0.5,
"fields": FIELDS,
},
timeout=15,
)
if r.status_code == 429:
retry_after = r.headers.get("Retry-After")
if retry_after is None: # hakuna Retry-After ⇒ kiwango cha mwezi,
raise QuotaExhausted(cluster["id"]) # simamisha mzunguko mzima
await asyncio.sleep(int(retry_after)) # kwa dakika: kinaisha
continue
r.raise_for_status()
return r.json()["data"]
return [] # andika kumbukumbu; rasilimali inabaki na safu zake za zamani
async def refill(clusters):
async with httpx.AsyncClient(http2=True) as client:
pools = await asyncio.gather(*(fill_pool(client, c) for c in clusters))
for cluster, photos in zip(clusters, pools):
db.upsert_pool(cluster["id"], photos) # ON CONFLICT DO NOTHING kwa photo_id
Maelezo mawili humo ndiyo tofauti kati ya mfanyakazi anayeendesha bila kusimamiwa na mmoja anayekuamsha.
Kipima muda ni cha jumla, siyo cha kila kazi: kuweka usingizi ndani ya
lango la ushindani ni kosa la kawaida — wafanyakazi wanne kila mmoja akisimama sekunde 3 baada ya ombi lake
mwenyewe hutoa maombi manne kila sekunde 3, takribani 75 kwa dakika, na mpango wa bure
huanza kurejesha 429 mara moja. Na 429 mbili hizo si mnyama mmoja:
ile ya kwa dakika hubeba Retry-After na inajiondoa yenyewe, ile ya kiwango-cha-mwezi
haibebi hilo na haitawahi — kujaribu tena hilo ni mzunguko dhidi ya ukuta.
Ugawaji, sehemu inayoendesha kwa kila kuchapisha, haiguzi mtandao kamwe:
# Upekee unatekelezwa na muundo, siyo kwa swali kuwa makini.
# Picha inaweza kukaa katika rasilimali kadhaa za makundi; inaweza KUCHAPISHWA mara moja tu.
# CREATE UNIQUE INDEX one_use_per_photo ON image_pool (photo_id)
# WHERE used_by_page IS NOT NULL;
def assign_hero(page_id: str, cluster_id: str) -> dict | None:
for _ in range(5): # mashindano yaliyopotea huchukua tu picha inayofuata
try:
return db.query_one("""
UPDATE image_pool p SET used_by_page = %s, used_at = NOW()
WHERE p.id = (
SELECT c.id FROM image_pool c
WHERE c.cluster_id = %s AND c.used_by_page IS NULL
AND NOT EXISTS ( -- imetumika na kundi lingine LOLOTE?
SELECT 1 FROM image_pool u
WHERE u.photo_id = c.photo_id
AND u.used_by_page IS NOT NULL
)
ORDER BY c.rank ASC
LIMIT 1 FOR UPDATE SKIP LOCKED -- salama na wafanyakazi wa sambamba
)
RETURNING photo_id, urls, width, height, blur_hash, alt, credit
""", [page_id, cluster_id])
except UniqueViolation: # makundi mawili yaliidai katika milisekunde ile ile
continue
return None # rasilimali imekauka → panua maelekezo, jaza tena
# Kuchora: kila sifa inatoka kwenye safu — hakuna mabadiliko ya mpangilio, hakuna kubahatisha.
# <img src="{urls[regular]}" width="{width}" height="{height}"
# alt="{alt}" loading="lazy" style="background:{blur_placeholder}">
# <figcaption>{credit}</figcaption>
Aina mbili za hitilafu, mifumo miwili, na zote zinahitajika. FOR UPDATE SKIP LOCKED
hushughulikia ushindani ndani ya kundi: zalisha kurasa kwa sambamba — na kwa wingi huu
utafanya hivyo — na wafanyakazi wawili wanafikia picha ile ile ya juu ya orodha katika milisekunde ile ile.
Kielezo cha kipekee kisicho kamili kinashughulikia kile ambacho kila mtu husahau: picha ile ile inaweza kutokea kihalali
katika rasilimali za makundi kadhaa, kwa sababu makundi ya jirani ("bima ya nyumba kwa
wapangaji", "…kwa wamiliki wa nyumba") yanarejesha matokeo yanayopishana. Ukaguzi wa
used_by_page IS NULL wa kila kundi haujali hilo — kila kundi linaamini picha ni
huru. NOT EXISTS inaweka swali kuwa la kweli, na kielezo kinafanya iwe haiwezekani
kupata kosa chini ya ushindani: mshindwa wa mashindano anapata ukiukaji, anajaribu tena, na anachukua picha
inayofuata. Bila hilo, "hakuna kurasa mbili zinazoshiriki picha kuu" ni dai, siyo dhamana.
Rasilimali inapokauka katikati ya ujenzi, njia ya kurudi inayofanya vizuri zaidi ni kupanua badala ya kurudia: ondoa kishazi cha mwisho cha maelekezo ya kamera, endesha tena swali la rasilimali mara moja, na kisha tu tumia tena picha iliyogawiwa zamani zaidi — kwa sheria kali kwamba haitawahi kutua kwenye ukurasa katika kundi lile lile.
Kundi moja, rasilimali moja: swali halisi
Chukua mali ya kulinganisha: bima ya nyumba, kurasa ishirini — "bima ya nyumba kwa wapangaji", "…kwa wamiliki wa nyumba", "sera inavyofunika kwa hakika", kurasa kumi na mbili za miji, miongozo mitatu ya madai. Maelekezo moja ya kamera kwa kundi, ombi moja, na hii ndiyo sehemu ya juu ya rasilimali, iliyorejeshwa katika 122 ms:
per_page=100 na linahifadhi zilizobaki.
Endesha utafutaji huu halisi →
Maelekezo yana umuhimu zaidi kuliko msimbo. Sheria mbili zinaishi baada ya kugusana na mali halisi ya makundi:
andika maelekezo kwa ajili ya kundi, siyo kwa ukurasa (majina ya kurasa yanafanana karibu kabisa
katika seti za kiprogramu, hivyo maelekezo ya kila ukurasa yanarejesha picha zinazofanana karibu kabisa),
na eleza tukio ambalo kamera ingeweza kupiga badala ya mada — bima ya nyumba hurejesha
picha za karibu za hati na hakuna kingine. Tulichapisha maelekezo yanayoweza kubandikwa yanayozalisha
maelekezo haya katika
makala kuhusu kuonyesha kila chapisho.
Kuweka mfululizo wa kurasa 200 sawia kimwonekano
Hitilafu kinyume cha marudio ni kutokuwiana: kurasa ishirini katika kundi moja, kila moja ikiwa na picha
yenye usahihi kiufundi, katika rejista ishirini tofauti za kuona. Suluhisho ni kituo kimoja —
GET /photos/{id}/similar — kinachoendeshwa mara moja kwenye picha uliyoikubali kwa ukurasa mkuu:
Vishikizo viwili zaidi vinavyofaa kuunganishwa katika swali la rasilimali wakati uwiano wa chapa ni sharti:
color_hex pamoja na color_tolerance huweka mali nzima ndani ya
paleti, na photographer hufunga kundi kwa kazi za mpiga picha mmoja. Zote
ni vigezo vya kawaida vya swali — hakuna kizuizi cha mpango kwenye vichujio vya utafutaji.
Vikomo vya kiwango, viwango vya mwezi na gharama halisi
Chagua mpango kulingana na msukumo wa haraka, siyo kwa wingi. Ukishaanza kukusanya rasilimali, kiwango cha mwezi kinaacha kuwa kizuizi kwa karibu kila mtu; kinachoamua mpango wako ni kasi ambayo onyesho kamili la upya linahitaji kukamilika.
| Mpango | Maombi / mwezi= makundi yanayoweza kuonyeshwa upya | Kikomo cha kiwango | Funguo za API | Onyesha upya makundi 1,000saa halisi, mzunguko mmoja |
|---|---|---|---|---|
| Free — $0 | 5,000 | 20 / dakika | 1 | 50 min |
| Starter — $5 | 25,000 | 30 / dakika | 3 | 34 min |
| Pro — $19 | 100,000 | 60 / dakika | 5 | 17 min |
| Team — $99mashirika: funguo kwa kila mteja | 500,000 | 200 / dakika | 25 | 5 min |
| Business — $249 | 1,000,000 | 300 / dakika | unlimited | 4 min |
| Enterprise — $599 | 2,000,000 | 500 / dakika | unlimited | 2 min |
Soma safu wima ya kwanza kama makundi: ombi moja la kukusanya rasilimali linajaza kundi moja, hivyo kiwango cha mwezi ni idadi ya makundi unayoweza kuonyesha upya, na safu wima ya mwisho ni muda gani mzunguko kamili wa mali ya makundi 1,000 unachukua kwa kikomo cha kiwango cha mpango huo. Zote ni thamani hai kutoka katalogi ya bei — ukurasa wa bei unaeleza vikomo vile vile vya kiwango kwa saa badala ya kwa dakika.
Kwa hivyo mali ya kurasa 10,000-kwa-mwezi kwenye mtindo wa kukusanya rasilimali inatumia maombi ~500 na kulipa hakuna kitu. Kinachosukuma timu juu ya jedwali si mara nyingi wingi — ni moja ya mambo matatu: onyesho jipya kamili la mali iliyopo katika usiku mmoja, utengano wa funguo kwa kila mteja (shirika linataka funguo moja kwa kila mteja ili matumizi yaweze kuhesabiwa bila mchezo wa siri za pamoja), au dirisha la ujenzi linalopimwa kwa dakika badala ya masaa.
Maelezo mawili ya uendeshaji yanayookoa usiku wa kutafuta hitilafu. Kila jibu linabeba
X-RateLimit-Limit na X-RateLimit-Remaining, hivyo mfanyakazi anaweza kujidhibiti
badala ya kubahatisha. Na 429 iliyo kikomo halisi cha kiwango cha dakika inabeba
Retry-After, wakati kizuizi cha kiwango cha mwezi kwa makusudi hakibebi hilo — kujaribu tena
hakutaondoa hilo, na mfanyakazi anayetofautisha hizo mbili anaacha kupiga endelea kituo
ambacho hakina kilichobaki kutoa.
Wakati wakala ndiye anayechapisha
Ikiwa maudhui yako yanazalishwa na wakala — na katika wingi huu, hilo linazidi kutokea — safu ya
kukusanya rasilimali haipotei, inahamia tu. Mpe wakala zana za utafutaji naye atajaza rasilimali huku
akiwa bado na maelekezo ya kundi katika muktadha, akitumia seva ya
Model Context Protocol katika mcp.pexafy.com/mcp: zana tatu,
search_photos (sentensi), search_photos_by_image (picha ya rejea,
ikiwa na hiari sentensi pia) na get_similar_photos (ile ya mfululizo-uwiano kutoka hapo juu).
# Claude Code / CI runner
claude mcp add --transport http pexafy https://mcp.pexafy.com/mcp \
--header "Authorization: Bearer $PEXAFY_API_KEY"
# au weka .mcp.json ili kila mfanyakazi katika fleet aurithi
{
"mcpServers": {
"pexafy": {
"type": "http",
"url": "https://mcp.pexafy.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Maelekezo yanayofanya kazi kwa wingi ni maelekezo ya kundi, siyo ya kila makala — na yanalingana moja kwa moja na awamu mbili zilizo hapo juu:
You Hapa kuna makundi 12 ya mada kutoka kalenda ya maudhui. Kwa kila moja,
andika maelekezo moja ya kamera, chukua picha 100 za mlalo, na andika
rasilimali kwenye Postgres. Onyesha kundi lolote linalorejesha chini ya 40
matokeo juu ya 0.5 — maelekezo hayo yanahitaji kuandikwa upya.
Agent → search_photos(q="a woman signing paperwork with an insurance
agent at a kitchen table in her home", orientation="landscape")
← picha 100 · 122 ms · 87 juu ya kiwango
… makundi mengine 11 …
✓ rasilimali 11 zimeandikwa (picha 1,043, zote zenye sifa)
⚠ "index fund rebalancing" → matokeo 12. Maelekezo ni dhahania;
pendekezo: "mtu mezani jikoni akikagua tarakimu kwenye
laptop akiwa na daftari na kahawa kando yake"
Mstari huo wa mwisho ndiyo sababu ya kumweka wakala katika mzunguko huu badala ya hati: hitilafu ya uonyeshaji wa kiprogramu ni maelekezo mabaya, na maelekezo mabaya ni exactly kitu ambacho modeli ya lugha inaweza kutambua na kuandika upya. Hati zinabaki kusimamia ugawaji, ambapo uthabiti unahitajika na ubunifu hauhitajiki.
Kile picha haziwezi kurekebisha
Sehemu ya kweli, kwa sababu hitilafu inayoelezea ni ghali. Upigaji picha halisi wenye sifa unaboresha ukurasa. Haugeuzi maudhui hafifu kuwa maudhui mazuri, na hakuna mfumo wa picha unaobadilisha jinsi injini za utafutaji zinavyoshughulikia kurasa zilizozalishwa kwa wingi zinazokusudia kupanda daraja badala ya kusaidia. Sera za taka za Google zinaeleza hili moja kwa moja: matumizi mabaya ya maudhui ya kiwango hufunika kutengeneza kurasa nyingi zenye thamani ndogo iwe otomatiki inahusika au la, na michoro katika kurasa hizo haihusiani na hukumu hiyo.2
Kwa hivyo mfumo muhimu ni finyu na wa kweli: upigaji picha ni ishara ya ubora unayodhibiti katika kurasa ambazo tayari zinastahili kuwepo. Mahali panapoonekana kulipa:
- Chanzo msomaji anaweza kuthibitisha. Mstari wa sifa wenye jina la mpiga picha na kiungo cha chanzo ni dai linaloweza kukaguliwa — kinyume cha picha isiyo na sifa kwenye ukurasa wenye mwandishi asiyetajwa.
- Ufikivu na Core Web Vitals.
width/heightkutoka kwenye jibu huondoa mabadiliko ya mpangilio,blur_hashhutoa nafasi halisi tayari, naalt_descriptionni rasimu ya maandishi mbadala ambayo kiolezo chako kinaweza kuboresha badala ya kuvumbua. Zidisha kwa nafasi 40,000 na hii ndiyo hadithi nzima ya ubora wa picha ya tovuti. - Kutoonekana kuzalishwa kwa wingi. Uzuiaji wa marudio na uwiano wa mfululizo ndicho kinachozuia mali kuwa na saini ya kuona. Hiyo ni gharama halisi ya utambuzi yenye madhara halisi, na inaangukia kabisa chini ya udhibiti wako.
Na leseni bado inasimamia picha. Sifa haihitajiki na masharti ya API ya Pexafy —
kila matokeo linatoa attribution.html na attribution.plain tayari
kuchora — lakini leseni iliyoambatanishwa na maktaba asili inatumika kwenye matumizi yako ya picha hiyo, na
kwa picha 40,000 kwa mwezi, kuchora sifa kiotomatiki ni gharama nafuu kuliko kukagua baadaye.
Pa kuanzia Jumatatu
- Gawanya orodha yako iliyorundikana katika makundi ya kurasa 15–30 ambazo zingeweza kwa uhalisia kushiriki kikao cha kupiga picha. Hii ndiyo hatua pekee ya kweli ya kufanywa kwa mikono, na ni jedwali la kuhesabu, siyo mradi.
- Andika maelekezo moja ya kamera kwa kila kundi — tukio, maneno 12 hadi 25. Yazalishe kwa modeli, kisha uyasome; maelekezo yanayotaja mada badala ya tukio yanaonekana kwa mtazamo wa haraka.
- Jaza rasilimali moja kwa ombi moja la
per_page=100na uangalie sehemu ya juu yake. Ikiwa kumi za juu haziwezi kutumika, maelekezo ndiyo yasiyo sahihi — siyo injini. - Ongeza safu wima ya
used_by_pagekabla ya kuchapisha chochote. Ni dakika tano sasa na uhamishaji katika kurasa 3,000 hai baadaye. - Endesha kila kitu kwenye mpango wa bure mpaka dirisha la ujenzi likulazimishe kupanda. Katika maombi 500 kwa mwezi, itachukua muda.
Marejeleo na maelezo ya chini
1 EU AI Act, Kifungu cha 50 — wajibu wa uwazi unaotumika kuanzia 2 Agosti 2026: watoa huduma wa mifumo inayozalisha picha, sauti, video au maandishi ya kubuni lazima waweke alama kwenye matokeo kwa muundo unaosomeka na mashine na kuyafanya yatambulike kama yaliyozalishwa kiholela. Inawabana watoa huduma na wapelekaji wa AI; siyo sheria kuhusu picha zipi tovuti inaweza kuchapisha.
2 Sera za taka za Google Search — matumizi mabaya ya maudhui ya kiwango: kutengeneza kurasa nyingi hasa kwa lengo la kudanganya upangaji na kutoa thamani ndogo kwa watumiaji, iwe zimeundwa kwa otomatiki, juhudi za binadamu au mchanganyiko wa hivyo. Ubora wa uonyeshaji si sababu katika tathmini hiyo, ndiyo maana hasa makala haya yanatenganisha mambo hayo mawili.
Vyanzo vilivyokaguliwa tarehe 17 Agosti 2026: Sera za taka za Google Search · AI Act Kifungu cha 50 · Nyaraka za Pexafy API na MCP. Vikomo vya mpango ni thamani hai kutoka jedwali la bei la Pexafy; muda wa utafutaji (122 ms, 48 ms) na kila picha iliyoonyeshwa ni majibu halisi ya API yaliyonaswa siku ile ile.
Maswali yanayoulizwa mara kwa mara
Ninawezaje kupata picha kwa maelfu ya kurasa za SEO za kiprogramu?
GET /api/v1/search/photos lenye per_page=100 hurejesha hadi picha 100 zenye sifa kwa kundi moja; unazihifadhi kwenye jedwali la pool na kugawa moja kwa kila ukurasa wakati wa kuchapisha. Mfumo wa kurasa 10,000 kwa mwezi wenye picha nne kwa kila ukurasa unahitaji takribani maombi 500 badala ya 40,000, jambo ambalo linaingia ndani ya mpango wa bure (maombi 5,000/mwezi).Ni API gani bora ya picha za hisa kwa uzalishaji wa maudhui kwa wingi mkubwa?
Ninawezaje kuzuia picha ile ile ya hisa isionekane kwenye kurasa kadhaa?
photo_id ya kila picha unayochapisha na dai picha kutoka kwenye pool kwa njia ya muamala — katika SQL, UPDATE … WHERE used_by_page IS NULL … FOR UPDATE SKIP LOCKED. Kuondoa nakala basi kunakuwa sahihi kabisa badala ya kwa uwezekano, na wafanyakazi wa ujenzi wanaofanya kazi sambamba hawawezi kushindania picha ile ile iliyo juu ya orodha. Ni safu moja tu, na kuiongeza baadaye kwenye maelfu ya kurasa zilizo hai ni ghali zaidi kuliko kuiweka siku ya kwanza.Ombi moja la API linaweza kurejesha picha ngapi?
per_page=100, na uwekaji kurasa wa cursor unakuruhusu kuendelea kupitia matokeo yale yale yaliyopangwa kwa pool za kina zaidi. Changanya na score_threshold ili kundi lenye picha chache lirejeshe picha 40 zenye ulinganifu mkubwa badala ya picha 100 zisizolingana vizuri, na na fields ili kurejesha tu sifa ambazo kiolezo chako kinaonyesha, jambo linalofanya majibu kuwa madogo kwa wingi mkubwa.Je, picha halisi husaidia kurasa zinazozalishwa kwa wingi kupanda daraja vizuri zaidi?
Je, wakala wa AI anaweza kujaza pool ya picha kiotomatiki?
mcp.pexafy.com/mcp, ambayo inatoa search_photos, search_photos_by_image na photo_similar. Mpe wakala orodha ya makundi naye ataandika maelekezo moja ya kamera kwa kila kundi, achukue pool na abainishe maelekezo yaliyorejesha ulinganifu mchache sana wenye nguvu — ambayo ndiyo hitilafu halisi ya vielelezo vya kiprogramu. Ugawaji unabaki kwenye script zako, ambapo uthabiti ni muhimu zaidi kuliko ubunifu.