TL;DR: Kenerate AI عبارة عن مساحة عمل إبداعية تجمع قدرات الصور والفيديو والتحرير والصوت وثلاثي الأبعاد والوكلاء.
يجمع Kenerate AI أدوات إبداعية في مساحة عمل واحدة. ينبغي للمطورين أولاً التمييز بين خيارات الوصول الأصلية، بما في ذلك MCP/CLI ووصول واجهة برمجة تطبيقات المؤسسات، وبين تكامل CometAPI المنفصل. يغطي هذا الدليل التخطيط للوصول والتكلفة، إعداد البيئة، توليد الصور، التعامل مع الاستجابة، تحرير الصور وإنشاء الفيديو غير المتزامن. اتبع الأمثلة لحفظ صورة أصلية، ومتغير مُحرَّر، ومقطع مكتمل باستخدام Python 3.10+ ومفتاح CometAPI ورصيد كافٍ.
أهم النقاط المستفادة
- Kenerate AI خدمة إبداعية متعددة النماذج وليست نموذجاً أساسياً واحداً.
- يقدّم Kenerate وصول MCP/CLI وكذلك تأهيلاً لوصول واجهة برمجة التطبيقات للمؤسسات؛ اختر المسار الذي يناسب تطبيقك وحسابك.
- استخدم معرّفات نماذج دقيقة ومعلمات خاصة بالمسار عند بناء تكامل CometAPI منفصل.
- احفظ بايتات الصورة بعد التوليد؛ واحتفظ بمعرّف مهمة الفيديو حتى يمكن استئناف الاستطلاع دون تقديم مهمة جديدة.
- يقدّم CometAPI تكاملاً للمطورين بشكل منفصل لنماذج الصور/الفيديو المدعومة، مع بيانات اعتماد وفوترة منفصلة.
ما هو Kenerate AI؟
استخدم استوديوهات Kenerate للإبداع التفاعلي. يمكن للمطورين أيضاً استخدام أدوات MCP/CLI الرسمية الخاصة به أو التواصل مع الدعم بشأن وصول واجهة برمجة التطبيقات للمؤسسات. يشرح قسم الوصول أدناه هذه الخيارات؛ تستدعي أمثلة Python لاحقاً في هذا الدليل CometAPI بشكل منفصل.
Kenerate AI وCometAPI خدمتان منفصلتان.
يستدعي الكود أدناه CometAPI مباشرة. لا يُسجّل الدخول إلى Kenerate، ولا يُؤتمت استوديو Kenerate، ولا يستهلك أرصدة Kenerate. إنه يعيد تنفيذ مهمة إبداعية محددة على نحو ضيق باستخدام نموذج مدعوم، ولا يدّعي التطابق مع إعدادات الاستوديو أو مخرجاته.
مثال رسمي لصورة منتج من معرض Kenerate. يوضّح حالة استخدام إبداعية؛ وليس مخرجات واجهة برمجة التطبيقات في الكود أدناه.
كيف يؤثر تسعير Kenerate AI على تخطيط تكلفة واجهة برمجة التطبيقات؟
يعلن Kenerate عن 25 رصيداً كبداية وحِزَم أرصدة لمرة واحدة بدءاً من $15. تفيد أسئلة الفوترة الشائعة بأن الأرصدة المشتراة لا تنتهي صلاحيتها وأن توليد الفيديو يحتاج إلى حزمة أرصدة مشتراة. هذه شروط فوترة للاستوديو، وليست عرض أسعار لوصول واجهة برمجة التطبيقات للمؤسسات.
يستخدم CometAPI بيانات اعتماد وفوترة منفصلة. قبل الاختبار أو الدفعات، تحقّق من النموذج المحدد وإعدادات الطلب مقابل تقدير التكلفة، واضبط حدّاً للمهام، وتفحّص الاستخدام المسجّل. لا تحدد أرصدة Kenerate تكلفة طلبات CometAPI.
كيف تصل إلى Kenerate AI؟
الاتصال عبر MCP أو CLI
توفر صفحة إعداد MCP/CLI الرسمية الخاصة بـ Kenerate (https://kenerateai.com/app/mcp) مساراً أصلياً للمطورين. خادم MCP البعيد هو https://mcp.kenerateai.com/mcp. أضِف الخادم في عميل متوافق وأكمل تسجيل الدخول إلى Kenerate حيثما كان مدعوماً؛ اتبع صفحة الإعداد لتثبيت CLI والمصادقة. تستخدم هذه الأدوات حساب Kenerate الخاص بك، وليس مفتاح CometAPI.
طلب وصول واجهة برمجة التطبيقات للمؤسسات عند الحاجة
تصف الأسئلة الشائعة الرسمية أيضاً وصول واجهة برمجة التطبيقات لشركاء المؤسسات عبر الدعم. لذلك المسار، اطلب توثيق نقاط النهاية، والمصادقة، والعمليات المدعومة، والحصص، وشروط الفوترة. لا ينبغي تقديم انضمام المؤسسات كخيار التكامل الأصلي الوحيد.
كيف تُعِدّ سير عمل CometAPI منفصلاً؟
الحساب وبيانات الاعتماد
أنشئ حساب CometAPI وولّد مفتاحاً باستخدام إرشادات إعداد مفتاح واجهة برمجة التطبيقات. احتفظ بالمفتاح على خادمك أو جهاز التطوير. تثبّت أوامر Bash التالية عميل HTTP وتقرأ المفتاح دون طباعته. يمكن لمستخدمي Windows تشغيلها في WSL أو Git Bash.
python -m pip install requests
read -rsp "CometAPI API key: " COMETAPI_KEY
export COMETAPI_KEY
printf '\n'
طلب أول صغير ومحدد
ابدأ بمطالبة واحدة ومخرج واحد قبل إضافة الضوابط الاختيارية. لسير عمل الصور، يمكن للمطورين الوصول إلى GPT Image 2 API في CometAPI. يستخدم سير عمل الفيديو Kling Video API في CometAPI مع قيمة model_name الخاصة بالمسار من الدليل السريع للمطور. تسمية الاستوديو ليست بديلاً عن معرّف واجهة برمجة التطبيقات.
قارن أمثلة CometAPI
| تفصيل التكامل | توليد الصور عبر CometAPI | فيديو Kling عبر CometAPI |
|---|---|---|
| المصادقة | Bearer COMETAPI_KEY | Bearer COMETAPI_KEY |
| مسار الإنشاء | /v1/images/generations | /kling/v1/videos/text2video |
| محدد النموذج | model | model_name |
| الإتمام | استجابة متزامنة | مهمة غير متزامنة؛ الاستطلاع عبر المسار المطابق |
| المخرجات | Decode data[0].b64_json | Download task_result.videos[0].url after success |
يوثّق CometAPI طلب الصور وحقول المخرجات ومسارات إرسال الفيديو والاستطلاع بشكل منفصل. عامل بيانات الاعتماد والمسار ونص الطلب وتحليل النتيجة على أنه تكامل مكتمل واحد.
هل يمكنك استخدام OpenAI SDK مع CometAPI؟
نعم، للمسارات المتوافقة مع OpenAI والمدعومة. يستخدم دليل SDK الخاص بـ CometAPI مفتاح CometAPI وعنوان الأساس https://api.cometapi.com/v1. يدعم OpenAI Python SDK base_url مخصصاً. ثبّت SDK بشكل منفصل إذا اخترته؛ السكربتات القابلة للتشغيل للصور والفيديو أدناه تستخدم requests.
python -m pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
)
Client configuration only: no generation request is submitted here.
تنطبق التوافقية على نقطة النهاية الموثقة والحقول وشكل الاستجابة. لا يجعل ذلك كل مسارات المزوّد قابلة للاستبدال. يدعم دليل بدء الصور client.images.generate؛ مثال Kling أدناه يستخدم مسار المزود الخاص به /kling/v1/videos/text2video وعقدة المهمة. اتبع [دليل الصور](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) أو [دليل Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) المطابق بدلاً من استبدال نداء فيديو عام في SDK.
## كيف تولّد وتُحفظ صورة عبر CometAPI؟
### اختيار إعدادات الصورة
لأول اختبار للصور، استخدم gpt-image-2 وsize="1024x1024" وquality="low" وoutput_format="jpeg". احفظ النتيجة بامتداد ملف مطابق. صِف المنتج والخلفية والإضاءة بوضوح. يستخدم مسار الصور هذا الحقل model ويعيد بايتات الصورة في data[0].b64_json.
### توليد الصورة وحفظها
يوثّق CometAPI توليد الصور عبر [gpt-image-2](https://apidoc.cometapi.com/quickstarts/image/gpt-image-api) ومخرجات base64. يرسل هذا المثال طلباً متزامناً ويحفظ البايتات المعادة كملف JPEG. احفظه باسم generate_image.py وشغّل python generate_image.py بعد ضبط متغير البيئة.
import base64
import os
from pathlib import Path
import requests
response = requests.post(
"https://api.cometapi.com/v1/images/generations",
headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
json={
"model": "gpt-image-2",
"prompt": "A ceramic cup on marble, realistic product lighting",
"quality": "low",
"size": "1024x1024",
"output_format": "jpeg",
},
timeout=(10, 180),
)
response.raise_for_status()
payload = response.json()
items = payload.get("data", [])
if not items or not items[0].get("b64_json"):
raise RuntimeError("No image bytes returned; inspect the response schema.")
image_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not image_bytes:
raise RuntimeError("The returned image is empty.")
output = Path("product-image.jpeg")
output.write_bytes(image_bytes)
print(f"Saved {output} ({len(image_bytes)} bytes)")
### التحقق من الصورة المحفوظة
تحقق أولاً من وجود الملف `product-image.jpeg` وأنه يُفتح في عارض صور. ثم تحقّق مما إذا كان الموضوع والتكوين وتفاصيل المنتج تطابق المطالبة. افحص الموضوع والتكوين قبل تعديل المطالبة. تأكيد استجابة HTTP 200 يعني نجاح الطلب، لكنك لا تزال بحاجة إلى التحقق من البيانات المعادة وفحص الصورة. إذا احتوت الاستجابة على خطأ أو مخطط مختلف، فافحصه قبل تغيير المُفكِّك؛ لا تحفظ نص JSON بامتداد صورة.
احتفظ بالصورة الأصلية دون تغيير من أجل التحريرات اللاحقة. طابِق امتداد اسم الملف مع output_format المطلوب، وافحص بصرياً النص أو تفاصيل المنتج المهمة. إذا غيّرت النموذج، فتحقق من عقدة استجابته قبل إعادة استخدام مفكّك base64 هذا.
### تحرير صورة مُولَّدة أو محلية
قم برفع الملف المصدر كبيانات متعددة الأجزاء. اذكر التغيير المطلوب والتفاصيل الواجب الحفاظ عليها؛ احتفظ بالملف الأصلي واحفظ كل نتيجة معتمدة باسم جديد.
لسير عمل CometAPI المنفصل، [يدعم مسار image-edit الرفع متعدد الأجزاء](https://apidoc.cometapi.com/api/image/openai/image-editing). احفظ هذا السكربت المستقل باسم edit_image.py بجوار product-image.jpeg من خطوة التوليد، ثم شغّل python edit_image.py. تطلب المطالبة تغييراً واحداً فقط في لون الكوب، ويحفظ السكربت النتيجة باسم `product-image-edited.jpeg`.
import base64
import os
from pathlib import Path
import requests
source = Path("product-image.jpeg")
with source.open("rb") as image_file:
response = requests.post(
"https://api.cometapi.com/v1/images/edits",
headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
files={"image": (source.name, image_file, "image/jpeg")},
data={
"model": "gpt-image-2",
"prompt": "Change only the cup color to matte black. Preserve its shape, background and lighting.",
"quality": "low",
"output_format": "jpeg",
},
timeout=(10, 240),
)
response.raise_for_status()
items = response.json().get("data", [])
if not items or not items[0].get("b64_json"):
raise RuntimeError("No edited image returned; inspect the response.")
edited_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not edited_bytes:
raise RuntimeError("The edited image is empty.")
Path("product-image-edited.jpeg").write_bytes(edited_bytes)
print("Saved product-image-edited.jpeg")
#### استخدام صورة مرجعية محلية
لتحرير صورة منتج قائمة بدلاً من ذلك، عيّن source إلى ذلك الملف. اضبط نوع MIME للرفع ليتوافق مع تنسيقها الفعلي، مثل image/png لملف PNG. يمكن أن يظل output_format مطلوباً كـ jpeg بغض النظر عن تنسيق المصدر. دع requests يُولّد ترويسة Content-Type متعددة الأجزاء؛ فرض application/json يدوياً سيُعطّل رفع الملف.
تساعد الصور المرجعية في الاتساق لكنها لا تضمن الحفاظ الدقيق على الشعارات أو هندسة المنتج. احتفظ بخطوة موافقة بشرية للمطالبات التجارية المتعلقة بالمنتج.
#### متابعة تحرير
لتحرير آخر، ارفع المخرج المعتمد كمصدر تالٍ واكتب التعليمات التالية. احتفظ بكل نسخة تحت اسم ملف مختلف. افحص كلاً من التغيير المطلوب والعناصر التي ينبغي أن تظل دون تغيير قبل المتابعة.
## كيف ترسل وتسترجع فيديو Kling عبر CometAPI
### إرسال مهمة فيديو
يستخدم [الدليل السريع لـ Kling](https://apidoc.cometapi.com/quickstarts/video/kling-api) للنص إلى فيديو مهمة غير متزامنة: أرسل مرة واحدة، واحتفظ بالمعرّف واستعلم عبر المسار المطابق. يستخدم المثال أدناه `model_name="kling-v3"` و`mode="std"` و`duration="5"` و`sound="off"`. تنطبق هذه القيم على مسار Kling في CometAPI. صِف إجراءً واضحاً لعنصر واحد وحركة الكاميرا المقصودة.
استخدم model_name لهذا المسار الخاص بالمزوّد، وابقِ mode="std" وduration="5" وsound="off" للاختبار الأول. احفظ task_id المعاد فوراً. هذا طلب نص إلى فيديو؛ تتطلب مراجع الصور مسار الصورة إلى الفيديو الموثّق للمزوّد المحدد.
احفظ الكود باسم generate_video.py. شغّل python generate_video.py لإنشاء مهمة. بعد انقطاع الاستطلاع، شغّل python generate_video.py TASK_ID باستخدام المعرّف المحفوظ للاستئناف. توثّق [عقدة استرجاع المهمة](https://apidoc.cometapi.com/api/video/kling/individual-queries) رابط النتيجة وتدعم كلاً من غلاف data وكائن المهمة المباشر.
### استطلاع المهمة وتنزيل النتيجة
يعطي رد إنشاء الفيديو معرّف مهمة، وليس ملف وسائط منجَزاً. احفظ المعرّف مع المهمة، وتفقّد task_status عند الاسترجاع ونزّل النتيجة فقط بعد النجاح. يتعامل سكربت الفيديو الكامل أدناه مع الإرسال والاستطلاع والفشل والتنزيل؛ وضع الاستئناف يُعيد استخدام نفس المهمة.
استرجع المهمة الموجودة عبر GET /kling/v1/videos/text2video/{task_id}. انتظر حتى task_status="succeed" قبل قراءة task_result.videos[0].url؛ تعامل مع "failed" كخطأ. ينبغي أن يحافظ مهلة الاستطلاع المحلية على معرّف المهمة كي يمكن استئناف الاسترجاع دون بدء توليد جديد.
import json
import os
import sys
import time
from pathlib import Path
import requests
route = "https://api.cometapi.com/kling/v1/videos/text2video"
headers = {"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"}
def read_task(response):
response.raise_for_status()
body = response.json()
if body.get("code") not in (None, 0):
raise RuntimeError(f"API error: {body.get('message', body.get('code'))}")
return body.get("data", body)
if len(sys.argv) > 1:
task_id = sys.argv[1]
else:
created = read_task(requests.post(
route, headers=headers,
json={
"model_name": "kling-v3",
"prompt": "A wristwatch on dark marble. Slow lateral camera motion, soft light, no cuts.",
"mode": "std", "duration": "5", "sound": "off",
}, timeout=(10, 60),
))
task_id = created["task_id"]
Path("video-task-id.txt").write_text(task_id, encoding="utf-8")
print(f"Task ID: {task_id}", flush=True)
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
task = read_task(requests.get(
f"{route}/{task_id}", headers=headers, timeout=(10, 30),
))
state = task["task_status"]
if state == "failed":
raise RuntimeError(task.get("task_status_msg") or "Video task failed")
if state == "succeed":
Path("video-result.json").write_text(json.dumps(task), encoding="utf-8")
asset_url = task["task_result"]["videos"][0]["url"]
with requests.get(asset_url, stream=True, timeout=(10, 120)) as asset:
asset.raise_for_status()
with Path("product-video.mp4").open("wb") as output:
for chunk in asset.iter_content(chunk_size=1024 * 1024):
if chunk:
output.write(chunk)
print("Saved product-video.mp4")
break
time.sleep(5)
else:
raise TimeoutError(f"Polling stopped. Resume with task ID {task_id}.")
### الإكمال والاسترداد
افتح product-video.mp4 وتأكد من أنه يُشغَّل بالكامل. يحفظ السكربت نتيجة المهمة قبل التنزيل، لذا فإن فشل التنزيل لا يتطلب إنشاء مقطع جديد. توقف مهلة الاستطلاع المحلية عن الانتظار؛ ولا تُلغي المهمة البعيدة. احتفظ بالمعرّف واستأنف الاسترجاع. يستخدم تنزيل الأصل عمداً طلباً منفصلاً غير موثّق حتى لا يُرسَل مفتاح CometAPI إلى مضيف الوسائط.
يستخدم مثال الفيديو إدخالاً نصياً. لا يمكن إرفاق صورة معتمدة باختراع حقل reference_image على هذا المسار؛ الصورة إلى الفيديو تتطلب سير عمل الصورة الموثق للمزوّد المحدد.
## كيف توسّع سير عمل CometAPI للإنتاج؟
### سجلات المهام والأصول القابلة لإعادة الاستخدام
اخزن كل مطالبة وتكوين وأصل مصدر ومعرّف مهمة ومسار مخرج تحت مهمة تطبيق واحدة. احتفظ بمراجعات الصور بشكل منفصل حتى يتمكن المستخدمون من الرجوع إلى نسخة معتمدة. بالنسبة للفيديو، احفظ معرّف المهمة قبل مغادرة معالج الطلب ودَع عاملاً يدير الاسترجاع.
### الاستدعاءات والتسوية
لتسليم الفيديو غير المتزامن، اتبع [إرشادات CometAPI للاستطلاع والويب هوك](https://apidoc.cometapi.com/guides/webhook-and-polling-for-video-generation). أضِف الاستدعاءات فقط بعد أن يعمل الاستطلاع الأساسي، واجعل الإشعارات المكررة آمنة للمعالجة. احتفظ بمسار استرجاع للمهام التي يتأخر أو يُفوَّت فيها الاستدعاء.
## كيف تتعامل مع الأخطاء في سير عمل CometAPI؟
طبّق [إرشادات أخطاء واجهة برمجة التطبيقات والاستراتيجية المعتمدة لإعادة المحاولة](https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy) عند بناء هذا السير. افصل أولاً بين طلب غير صالح وفشل نقل مؤقت. احتفظ بحالة الاستجابة ومعرّفات الطلبات ومعرّفات المهام في سجلات الخادم، مع استثناء المفاتيح السرية.
* فشل المصادقة: تحقق من المفتاح، ووصول الحساب، والمضيف المقصود قبل إعادة المحاولة.
* معلمة غير مدعومة: عد إلى أصغر طلب موثّق، ثم أضف حقلاً اختيارياً واحداً في كل مرة.
* حد المعدل أو فشل استطلاع عابر: انتظر مع تراجع متزايد محدود واستأنف استعلام المهمة الحالية.
* مهلة إنشاء: حدّد ما إذا كان الطلب الأول قد أنشأ مهمة قبل الإرسال مرة أخرى. قد يؤدي تكرار طلب التوليد إلى تكلفة إضافية.
* فشل تنزيل المخرجات: استخدم نتيجة المهمة المحتفظ بها أو استرجع المهمة الحالية مرة أخرى بدلاً من بدء توليد جديد.
## الخلاصة
اختر الخدمة ومسار الوصول أولاً. بالنسبة إلى Kenerate، ابدأ بإعداد MCP/CLI الرسمي أو ناقش متطلبات واجهة برمجة التطبيقات للمؤسسات مع الدعم. بالنسبة لتطبيق CometAPI المنفصل، هيّئ مفتاحه، واتبع مسار الصور أو Kling، وافحص المخرجات المحفوظة واحتفظ بمعرّفات مهام الفيديو للاسترداد. مرحلة أولى مفيدة: صورة محلية صالحة، ومتغير مُحرَّر واحد، وفيديو قابل للتشغيل.
## الأسئلة الشائعة
### هل يمكن تشغيل هذا سير عمل CometAPI بالكامل في المتصفح؟
يمكن للمتصفح عرض المطالبات والتقدّم، لكن لا ينبغي أن يحتوي الواجهة الأمامية العامة على مفتاح واجهة برمجة تطبيقات سري. ضع طلبات التوليد وتتبع المهام خلف الواجهة الخلفية الخاصة بك، وصادِق المستخدم هناك وأعد فقط النتيجة أو التقدّم اللازم للواجهة. يجب أن يتبع تكامل CometAPI المنفصل نفس الفصل.
### ما الذي ينبغي أن تطلبه الفرق قبل انضمام مؤسسات Kenerate AI؟
اطلب توثيق واجهة برمجة التطبيقات الأصلية ووصفاً مكتوباً للنماذج والعمليات المتاحة لحسابك. وحلّ أيضاً المصادقة والحصص والفوترة والاحتفاظ بالمهام وملكية الدعم. يثبت عرض الاستوديو قدرة إبداعية، لكنه لا يثبت مخطط الطلب أو شروط الخدمة التي سيتلقاها تطبيقك.
### هل ستنتج نفس مطالبة Kenerate AI مخرج واجهة برمجة تطبيقات مطابقاً؟
لا تعتمد على ذلك. قم أولاً بمواءمة نسخة النموذج الدقيقة، وأصول الإدخال، وإعدادات التوليد المتاحة. قد يضيف الاستوديو افتراضات أو معالجة لا يعيد طلب واجهة برمجة التطبيقات إنتاجها. حافظ على الموجز والأصول المرجعية المعتمدة، ثم راجع المخرج الجديد مقابل متطلبات التسليم الفعلية بدلاً من توقّع وسائط متطابقة بكسلياً.
