الأدوات الأربع تعمل كمهام: الرد 202، والنتيجة عبر الاستعلام أو webhook (المهام والنتائج). الصوت والموسيقى والعبارة الختامية والأفاتار تُختار من القوائم المرجعية (البيانات المرجعية).
حزمة المحتوى
POST /content/generate: النطاق tools:contentgen. من بيانات العقار وصوره يصنع GREM أوصافا ومنشورات للشبكات الاجتماعية وفيديو بتعليق صوتي وصفحة هبوط وملف PDF، في مهمة واحدة. تُنشأ للحزمة مسودة عقار.
يلزم 4 صور على الأقل، كعناوين عامة في form.media.photos. ارفع ملفاتك أولا عبر POST /uploads ومرر قيم url المعادة (الملفات).
| الحقل | النوع | الوصف |
|---|---|---|
form.language | نص | لغة النتيجة: eng، rus، ukr، deu، spa، aze، arb، fra، zho، tur |
form.media.photos | مصفوفة | من 4 إلى 20 عنوان صورة (نصوص أو { "url": "..." }): إلزامي |
form.objectId | نص | إنشاء الحزمة لعقارك الموجود |
form.objectType | نص | property أو rental أو complex |
form.propertyCategory | نص | نوع العقار: apartment، house، penthouse، land، warehouse ... |
form.dealType | نص | sale أو rent |
form.title | نص | العنوان |
form.description | نص | وصفك: يُستخدم مصدرا للحقائق |
form.customDirection | نص | رغبات بشأن النبرة والتركيز، حتى 500 حرف |
form.totalArea | رقم | م² |
form.rooms، form.floor، form.buildingFloors | رقم | الغرف، الطابق، الطوابق |
form.landPlotArea | رقم | الأرض، م² (المنازل) |
form.price | رقم | السعر |
form.priceCurrency | نص | عملة السعر |
form.addressCountry، form.addressCity، form.street، form.streetNumber | نص | العنوان |
form.voiceId | نص | صوت التعليق من GET /voices |
form.enableSubtitles | نعم/لا | ترجمة نصية في الفيديو، مفعلة افتراضيا |
form.showPhone | نعم/لا | إظهار الهاتف؛ الرقم في form.contactPhone |
form.options.music.trackId | نص | مقطوعة من GET /video/music؛ form.options.music.enabled: false دون موسيقى |
form.options.endCard.style | نص | البطاقة الختامية: photo أو solid أو split |
لا حاجة إلى الحقل user: تُنشأ الحزمة باسم حساب المفتاح.
curl -X POST https://developers.grem.capital/api/v1/content/generate \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 0c0e3a5b-7d1e-4b8a-9b2f-1e6d4c3a2b10" \
-d '{
"form": {
"language": "arb",
"propertyCategory": "apartment", "dealType": "sale",
"title": "شقة مضيئة من غرفتين قرب الحديقة",
"totalArea": 64, "rooms": 2, "price": 320000, "priceCurrency": "EUR",
"addressCountry": "Germany", "addressCity": "Berlin",
"media": { "photos": ["https://example.com/1.jpg", "https://example.com/2.jpg",
"https://example.com/3.jpg", "https://example.com/4.jpg"] }
}
}'
الرد 202: jobId (معرّف المهمة) وpropertyId (مسودة العقار). المهمة المنتهية (GET /content/generate/jobs/{id}) تحتوي على:
| الحقل | الوصف |
|---|---|
artifacts | معرّفات الملفات المُنشأة |
artifactsSummary | سجل لكل ملف: النوع، والصيغة، والحجم |
bundle | صفحة الهبوط وPDF الحزمة، إن أُنشئا |
progress | تقدم التوليد أثناء تنفيذ المهمة |
masterProfile | الإطار القصصي الذي بُنيت عليه النصوص والتعليق الصوتي |
error | في المهمة الفاشلة: السبب بنص عام |
الملف: GET /artifacts/v1/ai/assistant/announcement/jobs/{jobId}/artifacts/{artifactId}/download. الأحداث: content.completed، content.partial (فشلت بعض الملفات)، content.failed. أقل من 4 صور: 400.
نصوص الإعلان
POST /text/generate: النطاق tools:text. وصف، وعرض تقديمي، ومنشور للشبكات الاجتماعية. يلزم إما objectId أو واحد على الأقل من description وcity وtotalArea، وإلا فالرد 422 مع code: not_enough_input.
| الحقل | النوع | الوصف |
|---|---|---|
objectId | نص | عقارك (أو عقار وكالتك) |
title | نص | حتى 120 حرفا |
description | نص | وصفك، حتى 2000 حرف |
city | نص | المدينة |
totalArea | رقم | م² |
rooms | رقم | الغرف |
price | رقم | السعر |
currency | نص | عملة السعر |
propertyCategory | نص | نوع العقار |
language | نص | en (افتراضي)، ru، ua، de، es، az، ar، fr، zh، tr |
customDirection | نص | رغبات بشأن النبرة والتركيز؛ النص الأطول يُقص إلى 500 حرف |
curl -X POST https://developers.grem.capital/api/v1/text/generate \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"city":"Berlin","totalArea":64,"rooms":2,"propertyCategory":"apartment","language":"ar","description":"مجددة، فناء هادئ، 5 دقائق إلى المترو."}'
202 مع jobId. النصوص في ملفات المهمة كما في حزمة المحتوى؛ وتحمل المهمة أيضا progress وmasterProfile وerror. الأحداث: text.completed / text.failed.
فيديو من الصور
POST /video/create: النطاق tools:video. فيديو قصير بتعليق صوتي من صورك أو من صور عقار.
الجسم: multipart/form-data، كل خيار حقل نموذج مستقل (لا JSON في حقل data):
| الحقل | الوصف |
|---|---|
photos | ملفات الصور من 1 إلى 8، جزء لكل ملف؛ لا حاجة إليها مع objectId؛ JPEG أو PNG أو WebP أو HEIC حتى 20 ميغابايت لكل صورة؛ والصور بعد الثامنة لا تُستخدم |
objectId | أخذ الصور والبيانات من عقارك |
prompt | موضوع المقطع، حتى 500 حرف؛ إلزامي دون objectId؛ والنص الأطول يُقصّ |
title | العنوان، حتى 120 حرفا |
length | short (افتراضي) أو long؛ وأي قيمة أخرى تُعامل كـ short؛ وlong يحتاج 4 صور على الأقل (code: long_needs_more_photos) |
aspect | 9:16 أو 1:1 أو 16:9؛ وأي قيمة أخرى تعني الافتراضي |
language | لغة التعليق: en، ru، ua، de، es، az، ar، fr، zh، tr |
narration | true (افتراضي): مع تعليق صوتي |
voiceId | صوت من GET /voices |
enableSubtitles | ترجمة نصية |
musicEnabled | مع موسيقى |
musicTrackId | مقطوعة من GET /video/music |
musicVolume | مستوى صوت الموسيقى من 0 إلى 100 |
music | ملف موسيقى خاص بك بدلا من مقطوعة |
endCardEnabled، endCardStyle | البطاقة الختامية: photo أو solid أو split |
ctaMode | العبارة الختامية: auto (افتراضي) تُختار للعقار؛ manual تُستخدم ctaIntent أو ctaText |
ctaIntent | عبارة ختامية جاهزة: إحدى قيم intent من GET /video/endings |
ctaText | عبارتك الختامية الخاصة، حتى 60 حرفا |
ctaMarket | لمن يتوجه الفيديو: local أو remote أو international؛ يضبط عبارة auto |
curl -X POST https://developers.grem.capital/api/v1/video/create \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]" -F "[email protected]" -F "[email protected]" \
-F "prompt=شقة مشمسة من غرفتين في Berlin Mitte، فناء هادئ" \
-F "length=short" -F "aspect=9:16" -F "language=ar"
202 مع jobId؛ والفيديو في ملفات المهمة. وتحمل المهمة أيضا progress وmasterProfile وerror كما في حزمة المحتوى. السعر يعتمد على length. الأحداث: video.completed / video.failed.
فيديو الأفاتار
POST /avatar/video: النطاق tools:avatar. مقدم يتحدث عن عقارك.
| الحقل | النوع | الوصف |
|---|---|---|
avatarId | نص | إلزامي: أفاتار بحالة ready من GET /avatar/avatars |
objectId | نص | إلزامي: عقارك |
scriptText | نص | إلزامي: نص المقدم، 100 حرف على الأقل؛ وبحد أقصى 1200 |
voiceId | نص | صوت من GET /voices |
language | نص | اللغة |
background.type | نص | الخلفية: color أو photo أو slideshow |
background.color | نص | لون الخلفية #RRGGBB |
background.photoUrl | نص | صورة الخلفية |
dimension.width، dimension.height | رقم | حجم الإطار من 100 إلى 4096 بكسل؛ أرسل الاثنين معا أو لا شيء |
enableSubtitles | نعم/لا | ترجمة نصية |
curl -X POST https://developers.grem.capital/api/v1/avatar/video \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"avatarId":"AVATAR_ID","objectId":"OBJECT_ID","voiceId":"VOICE_ID","scriptText":"..."}'
202 مع jobId. الفيديو: GET /artifacts/v1/ai/assistant/avatar/jobs/{jobId}/artifacts/{artifactId}/download، وartifactId من artifacts في المهمة المكتملة. الأحداث: avatar.completed / avatar.failed. غياب avatarId أو objectId أو قِصر النص: 400 مع الحقول في errors.
مقالات ذات صلة
- البيانات المرجعية: الأصوات، والأفاتارات، والموسيقى، والعبارات الختامية.
- المهام والنتائج: الحالات والملفات.
- الملفات: رفع الصور.