Docs

المحتوى والفيديو

آخر تحديث: 2026-10-036 دقيقة قراءة

الأدوات الأربع تعمل كمهام: الرد 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 حرفا
lengthshort (افتراضي) أو long؛ وأي قيمة أخرى تُعامل كـ short؛ وlong يحتاج 4 صور على الأقل (code: long_needs_more_photos)
aspect9:16 أو 1:1 أو 16:9؛ وأي قيمة أخرى تعني الافتراضي
languageلغة التعليق: en، ru، ua، de، es، az، ar، fr، zh، tr
narrationtrue (افتراضي): مع تعليق صوتي
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.

مقالات ذات صلة

هل كانت هذه المقالة مفيدة؟