Hər iki alət faylı multipart/form-data kimi qəbul edir.
Foto yaxşılaşdırma
POST /photo/enhance - tools:photo icazəsi, tapşırıq. Hər sorğuda bir foto.
Formanın hissələri:
| Hissə | Təsvir |
|---|---|
image | foto - məcburi; 25 MB-a qədər JPEG, PNG və ya WebP |
mask | yalnız cleanup üçün: PNG maska, ağ rəng dəyişdiriləcək sahəni göstərir |
data | bir JSON sətri kimi parametrlər - məcburi |
data daxilindəki parametrlər:
| Sahə | Təsvir |
|---|---|
mode | enhance - işıq, rəng, kəskinlik; cleanup - əşyaları silmək; staging - boş otağı mebelləşdirmək. Standart cleanup |
prompt | cleanup və staging üçün məcburi (3-500 simvol): nəyi silmək və ya necə mebelləşdirmək; enhance üçün istəyə bağlı |
intensity | light, medium (standart), strong |
roomType | living, bedroom, kitchen, bathroom, dining, office, outdoor |
furnitureStyle | staging üçün: modern, scandinavian, industrial, luxury, minimalist, coastal |
autoMask | öz maskanız olmadan cleanup: sahəni avtomatik tapmaq |
seed | təkrarlana bilən nəticə üçün rəqəm |
negativePrompt | nədən qaçmaq lazımdır, 300 simvola qədər |
objectId, objectType | fotonun aid olduğu obyektiniz (property və ya complex) |
curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
-H "Authorization: Bearer gsk_live_xxx" \
-F 'data={"mode":"cleanup","prompt":"remove the chair and the boxes"}' \
-F "image=@room.jpg"
enhance və ya staging ilə maska rədd edilir - orada işləmir və ödəniş tutulmur. Qiymət rejimdən asılıdır. İmtinalar: cleanup xaricində maska - code: MASK_NOT_SUPPORTED ilə 422; başqa fayl növü və ya 25 MB-dan böyük fayl - code: JOB_CREATE_FAILED ilə 422; data daxilində naməlum açar - 400. Başlanğıc cavabında sku və priceMinor var - çağırış üçün tutulacaq məbləğ (tarif kvotası onu əhatə edirsə, olmur).
jobId ilə 202. Bitmiş tapşırıq (GET /photo/enhance/jobs/{id}):
| Sahə | Təsvir |
|---|---|
results | nəticə variantları |
results[].variant | variantın nömrəsi |
results[].url | şəklin ünvanı |
results[].width, results[].height | ölçü |
metadata.error | uğursuz tapşırıq üçün: səbəb, ümumi mətn kimi |
Variant faylı: GET /artifacts/v1/ai/photo-enhancement/jobs/{jobId}/download/{variant}. Hadisələr - photo.completed / photo.failed.
Mərtəbə planının təmizlənməsi
POST /floorplan/create - tools:floorplan icazəsi. Planın fotosu və ya skanı otaq adları və sahələri olan təmiz plana çevrilir. Dərhal emal olunur: 202 cavabında artıq nəticə olur.
| Hissə | Təsvir |
|---|---|
file | planın şəkli (JPEG, PNG, WebP, HEIC; 20 MB-a qədər) - məcburi; image adı da qəbul olunur |
objectId | nəticəni obyektinizə bağlamaq |
objectType | property, rental və ya complex |
curl -X POST https://developers.grem.capital/api/v1/floorplan/create \
-H "Authorization: Bearer gsk_live_xxx" \
-F "file=@plan.jpg"
Cavab:
| Sahə | Təsvir |
|---|---|
jobId | tapşırığın identifikatoru |
status | done - yazılar avtomatik qəbul edilib; review - nəticə hazırdır, yazıları yoxlamaq məsləhətdir; rejected - şəkil plan deyil; failed - xəta |
state | done və review üçün completed, rejected və failed üçün failed |
rooms | otaqlar: label, area (m², yazılıbsa), stable (yazı bütün keçidlərdə eyni oxunub), placement (yazının təmizlənmiş planda yeri) |
totalArea | ümumi sahə, m², planda sahələr yazılıbsa |
cleanedFileId | təmizlənmiş planın şəkli |
sourceFileId | yüklədiyiniz plan |
Hesabat: GET /artifacts/v1/ai/floor-plan/jobs/{id}/report.pdf. Nəticəni yenidən almaq - GET /floorplan/create/jobs/{id}. Hadisələr - floorplan.completed / floorplan.failed. Şəkil plan deyilsə, ödəniş tutulmur.
Yüklənmiş faylın emalı bir dəqiqədən çox çəkə bilər, API-nin qarşısındakı şəbəkə isə ~100 saniyə ərzində başlamayan cavabı 524 ilə kəsir. Buna görə Idempotency-Key və Prefer: respond-async başlığını göndərin: fayl yüklənən kimi sorğu tapşırığı ilə 202 gəlir (areq_… kimi jobId, Preference-Applied: respond-async, Location və Retry-After başlıqları). Həmin identifikatorla GET /floorplan/create/jobs/{id} sorğusunu (pulsuz) state dəyəri completed (result sahəsində başlıqsız haldakı kimi, yuxarıda təsvir olunan cavabın eynisi olur) və ya failed olana qədər göndərin. code: interrupted (xidmətin yenidən başladılması) ilə uğursuz olan tapşırıq üçün ödəniş tutulmur və açar azad edilir: eyni sorğunu eyni açarla yenidən göndərin - fayl yenidən yüklənəcək. floorplan.completed / floorplan.failed hadisələri sorğu tapşırığının identifikatorunu daşıyır. Başlıq olmadan cavab əvvəlki kimidir.