كتالوج مقدمي الخدمة
دليل API لمقدم الخدمة Moonshot Kimi
استخدم نقطة نهاية إكمال المحادثة المشتركة للعملاء مع معرّفات نماذج Moonshot Kimi المنشورة حالياً وحالة الخدمة.
- اختيار منتج APIميّز بين طلبات الاستدلال ومسارات تدريب النماذج.
- قراءة العقداستخدم وثائق API ومرجع OpenAPI المناسبين.
- إنشاء مفتاح محدود الصلاحياتأنشئ مفتاح API للعميل واحفظه بأمان.
- الدمج والتحققأرسل طلباً موثقاً وافحص الاستجابة.
- المراقبة والتدويرراجع الاستخدام وألغِ المفاتيح أو دوّرها عند الحاجة.
نماذج Moonshot Kimi المنشورة
تُدرج الأسماء ومعرّفات التوجيه الدقيقة والإصدارات وحالة الاستدلال من سجل النماذج المفعّل متى كان متاحاً. يعني المعرف الفارغ أن الكتالوج لم ينشر قيمة توجيه؛ فلا تستنتجها من اسم النموذج.
| اسم النموذج | معرّف النموذج الدقيق | الإصدار | حالة الاستدلال |
|---|---|---|---|
| Kimi K3.1 Pro | kimi-k3.1-pro |
— | نشط · متاح للاستدلال |
| Kimi K3.1 Pro Highspeed | kimi-k3.1-pro-highspeed |
— | نشط · متاح للاستدلال |
| Kimi K3 | لم يُنشر معرّف توجيه | — | يتعذر تأكيد إمكانية الاستدعاء المباشر من دون معرّف توجيه عام. |
| Kimi K2.7 Code | لم يُنشر معرّف توجيه | — | يتعذر تأكيد إمكانية الاستدعاء المباشر من دون معرّف توجيه عام. |
| Kimi K2.6 | لم يُنشر معرّف توجيه | — | يتعذر تأكيد إمكانية الاستدعاء المباشر من دون معرّف توجيه عام. |
| Kimi K2.5 | لم يُنشر معرّف توجيه | — | يتعذر تأكيد إمكانية الاستدعاء المباشر من دون معرّف توجيه عام. |
استخدام مقدم الخدمة هذا
- اختر النموذج باستخدام معرّفه الدقيق وتحقق من حالته قبل تهيئة التطبيق. الاسم المعروض مخصص للقراءة؛ أما حقل model فلا يقبل إلا المعرّف.
- تتيح كل صفحة من صفحات مقدمي الخدمة البروتوكولين. تحقق من أن النموذج المحدد يدعم الميزة المطلوبة؛ فتوافر البروتوكول لا يعني أن كل نموذج يدعم جميع ميزاته.
- إذا كانت الخدمة متاحة للعملاء الحاليين فقط، فاحتفظ بإمكانية وصول الحساب القائم ولا تعتبر قائمة النماذج المنشورة دعوة لبدء اشتراك جديد.
أمثلة على استخدام واجهات API للنماذج
اختر معرّف نموذج منشوراً وبروتوكول API واللغة لعرض مثال للطلب. احتفظ بمفاتيح API الخاصة بالعملاء على خادم موثوق.
متطلبات البروتوكول
تستخدم الطلبات المتوافقة مع OpenAI الطريقة POST /chat/completions على عنوان API الأساسي المهيأ للعميل (الافتراضي https://fusionpointai.com/api/v1). صادق باستخدام Authorization: Bearer ومفتاح عميل يتيح الاستدلال. عنوان URL الافتراضي الكامل هو https://fusionpointai.com/api/v1/chat/completions.
تستخدم طلبات Claude Messages الطريقة POST /api/v1/messages. أرسل مفتاح العميل في x-api-key واضبط anthropic-version على 2023-06-01. عنوان URL الأساسي لـ Anthropic SDK هو https://fusionpointai.com/api لأن SDK يضيف /v1/messages؛ كما يدعم البروتوكول المصادقة بصيغة bearer.
الإمكانات المدعومة
تعالج نقطة المحادثة الحالية المتوافقة مع OpenAI الرسائل النصية بصورة متزامنة. ولا تدعم هذه النقطة البث أو استدعاء الأدوات.
يحافظ وسيط Claude Messages على كتل المحتوى الأصلية وبيانات الأدوات والبث الفعلي عبر أحداث الخادم المرسلة، عندما يدعمها النموذج المحدد لدى المزود الأصلي.
تثبيت عميل
ثبّت عميل Python وعميل Node.js كحزمتين منفصلتين:
Python: pip install openai anthropic
Node.js: npm install openai @anthropic-ai/sdk
curl 'https://fusionpointai.com/api/v1/chat/completions' \
-H "Authorization: Bearer $FUSIONPOINTAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "kimi-k3.1-pro",
"messages": [
{
"role": "user",
"content": "Summarize this in one sentence."
}
],
"temperature": 0.7,
"max_tokens": 300
}'
أنماط الطلبات
إعداد مفاتيح API بأمان
أنشئ مفتاح API للعميل يتيح الاستدلال، ومرره إلى عملية الخادم عبر مدير الأسرار أو متغيرات البيئة.
- اضبط
FUSIONPOINTAI_API_KEYفي بيئة الخادم؛ لا تضع المفتاح في شيفرة المتصفح ولا تودعه في مستودع المصدر. - استخدم HTTPS واقصر المفتاح على الحساب وصلاحيات الاستدلال اللازمة للتطبيق.
- احذف ترويستي Authorization و
x-api-keyمن السجلات وآثار التتبع وطلبات الدعم؛ ألغ المفتاح إن احتمل انكشافه.
export FUSIONPOINTAI_API_KEY="YOUR_CUSTOMER_API_KEY"
اختيار معرّف نموذج دقيق
حقل النموذج قيمة توجيه وليس اسماً للعرض. اختر معرّفاً منشوراً في دليل النماذج المباشر.
- اختر نموذجاً نشطاً أو قديماً معلماً بأنه متاح للاستدلال.
- انسخ المعرّف كما هو، بما في ذلك علامات الترقيم ولواحق الإصدار؛ لا تستنتجه من اسم النموذج.
- إذا لم يُنشر معرّف، فانتظر نشره في الدليل ولا تستبدله بقيمة تخمينية.
model_id = "kimi-k3.1-pro"
# Use this exact identifier with either protocol.
إرسال رسائل النظام والمحادثات المتعددة
حافظ على ترتيب أدوار المحادثة الأصلي واستخدم الأدوار وأشكال المحتوى التي يدعمها البروتوكول والنموذج المحددان فقط.
- في الطلبات المتوافقة مع OpenAI أرسل رسائل system وuser وassistant بالترتيب وبمحتوى نصي.
- في Claude Messages أرسل تعليمات النظام والأدوار المتتابعة للمستخدم والمساعد ضمن الحقول الأصلية للبروتوكول.
- احتفظ بسياق المحادثة الذي يحتاجه التطبيق فقط، والتزم بحدود سياق النموذج المختار.
response = client.messages.create(
model="kimi-k3.1-pro",
max_tokens=512,
system="Answer in clear, concise German.",
messages=[
{"role": "user", "content": "What is an API?"},
{"role": "assistant", "content": "An API lets software exchange requests and responses."},
{"role": "user", "content": "Give a practical example."},
],
)
for block in response.content:
if block.type == "text":
print(block.text)
طلب استجابات JSON
إذا احتاج التطبيق إلى مخرجات منظمة، فتحقق من مطابقة الاستجابة لمخططه قبل استخدامها.
- استخدم أدوات المخرجات المنظمة التي يدعمها البروتوكول المختار والنموذج المحدد لدى المزود الأصلي.
- تعامل مع JSON المنشأ بوصفه مدخلاً غير موثوق: حلله وتحقق من الحقول والأنواع المطلوبة وعالج الصيغ غير الصالحة.
- لا تفترض دعم وضع JSON لمزيج نموذج وبروتوكول إلا إذا أكدته وثائق النموذج.
import json
# JSON is generated content, not trusted application input.
response = client.messages.create(
model="kimi-k3.1-pro", max_tokens=256,
messages=[{"role": "user", "content": 'Return only JSON with a string field named "summary". Explain an API in one sentence.'}],
)
text = "".join(block.text for block in response.content if block.type == "text")
try:
result = json.loads(text)
if not isinstance(result, dict) or not isinstance(result.get("summary"), str):
raise ValueError("Unexpected response schema")
print(result["summary"])
except (json.JSONDecodeError, ValueError) as error:
print("Handle invalid model output:", error)
تلقي مخرجات SSE لحظياً
يعتمد البث على البروتوكول المختار والنموذج الأصلي؛ فالاستجابة العادية بصيغة JSON ليست بثاً.
- تعيد المحادثة المتوافقة مع OpenAI حالياً نصاً متزامناً ولا توفر البث.
- في Claude Messages استخدم وضع stream عندما يدعمه النموذج المحدد لدى المزود الأصلي؛ يمرر الوسيط أحداث الخادم المرسلة الأصلية.
- استهلك الأحداث تباعاً وأنهِ الاتصال عند الاكتمال أو الخطأ، ولا تعتبر المخرجات الجزئية إجابة مكتملة.
# client is the Anthropic client configured above.
with client.messages.stream(
model="kimi-k3.1-pro", max_tokens=512,
messages=[{"role": "user", "content": "Explain API authentication."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final_message = stream.get_final_message()
print("\nStop reason:", final_message.stop_reason)
التعامل مع الأدوات وكتل المحتوى والأخطاء
حافظ على البنى الأصلية للبروتوكول وحدد سلوك التطبيق بوضوح عند استدعاء الأدوات والمحتوى متعدد الوسائط والإخفاقات.
- لا تدعم المحادثة المتوافقة مع OpenAI حالياً استدعاء الأدوات أو كتل المحتوى غير النصية.
- يحافظ Claude على كتل المحتوى الأصلية وبيانات استخدام الأدوات ونتائجها عند دعم النموذج لها؛ تحقق من أسماء الأدوات ومدخلاتها قبل التنفيذ.
- افحص حالة HTTP ومتن الاستجابة، وميّز أخطاء المصادقة والصلاحيات والتحقق وتحديد المعدل، وأعد المحاولة للأخطاء العابرة مع تراجع زمني.
import json
from datetime import datetime, timezone
from anthropic import APIError
messages = [{"role": "user", "content": "What time is it in UTC?"}]
tools = [{
"name": "current_utc_time", "description": "Read the current UTC time.",
"input_schema": {"type": "object", "properties": {}, "additionalProperties": False},
}]
try:
reply = client.messages.create(model="kimi-k3.1-pro", max_tokens=256, messages=messages, tools=tools)
results = []
for block in reply.content:
if block.type == "tool_use":
if block.name != "current_utc_time" or block.input != {}:
raise ValueError("Unapproved tool request")
results.append({"type": "tool_result", "tool_use_id": block.id,
"content": json.dumps({"utc": datetime.now(timezone.utc).isoformat()})})
if results:
messages.append({"role": "assistant", "content": reply.content})
messages.append({"role": "user", "content": results})
reply = client.messages.create(model="kimi-k3.1-pro", max_tokens=256, messages=messages, tools=tools)
print("".join(block.text for block in reply.content if block.type == "text"))
except APIError as error:
# Log status only; never log keys or private prompts.
print("API request failed:", getattr(error, "status_code", None))
الأسئلة الشائعة
هل يمكنني استخدام اسم النموذج الظاهر في الطلب؟
استخدم المعرّف الدقيق المنشور للاستدلال فقط. الاسم الظاهر ليس قيمة توجيه، ولا يجوز تخمين معرّف غير منشور.
ما متغير البيئة الذي يحوي مفتاح العميل؟
استخدم FUSIONPOINTAI_API_KEY للبروتوكولين. احتفظ بقيمته في بيئة خادم موثوقة وبعيداً عن شيفرة العميل والسجلات.
ما عنوان URL الذي أضبطه لعميل OpenAI؟
استخدم عنوان API الأساسي المهيأ للعميل، والافتراضي https://fusionpointai.com/api/v1. وتضيف نقطة المحادثة /chat/completions.
لماذا يختلف عنوان Claude SDK الأساسي عن cURL؟
يضيف Anthropic SDK المسار /v1/messages، لذا اضبط عنوانه الأساسي على https://fusionpointai.com/api. أما طلب HTTP المباشر فيستخدم العنوان الكامل /api/v1/messages.
هل تدعم المحادثة المتوافقة مع OpenAI البث أو الأدوات؟
لا. تدعم النقطة الحالية الرسائل النصية المتزامنة فقط، ولا توفر البث أو استدعاء الأدوات.
هل تضمن جميع نماذج Claude دعم الكتل أو الأدوات أو البث؟
لا. تُحفظ هذه الإمكانات الأصلية عندما يدعمها النموذج المختار لدى المزود الأصلي. تحقق من إمكانات النموذج وعالج الطلبات غير المدعومة.
Claude Messages · POST /messages
تستخدم طلبات Claude Messages الطريقة POST /api/v1/messages. أرسل مفتاح العميل في x-api-key واضبط anthropic-version على 2023-06-01. عنوان URL الأساسي لـ Anthropic SDK هو https://fusionpointai.com/api لأن SDK يضيف /v1/messages؛ كما يدعم البروتوكول المصادقة بصيغة bearer.
يحافظ وسيط Claude Messages على كتل المحتوى الأصلية وبيانات الأدوات والبث الفعلي عبر أحداث الخادم المرسلة، عندما يدعمها النموذج المحدد لدى المزود الأصلي.
| الحقل | النوع | مطلوب | القيود |
|---|---|---|---|
model |
string |
نعم | {"minLength":1,"maxLength":160} |
max_tokens |
integer |
نعم | {"minimum":1,"maximum":100000} |
messages |
array |
نعم | {"minItems":1,"maxItems":100,"items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","maxLength":80}},"additionalProperties":true}}]}}}} |
system |
string | array |
لا | {"oneOf":[{"type":"string"},{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}},"additionalProperties":true}}]} |
stream |
boolean |
لا | {"default":false} |
temperature |
number |
لا | {"minimum":0,"maximum":1} |
top_p |
number |
لا | {"minimum":0,"maximum":1} |
top_k |
integer |
لا | {"minimum":0,"maximum":100000} |
stop_sequences |
array |
لا | {"items":{"type":"string"}} |
tools |
array |
لا | {"items":{"type":"object","additionalProperties":true}} |
tool_choice |
object |
لا | {"additionalProperties":true} |
thinking |
object |
لا | {"additionalProperties":true} |
metadata |
object |
لا | {"additionalProperties":true} |
output_config |
object |
لا | {"additionalProperties":true} |
service_tier |
string |
لا | [] |
{
"id": "msg_example",
"type": "message",
"role": "assistant",
"model": "kimi-k3.1-pro",
"content": [
{
"type": "text",
"text": "A concise answer to the supplied question."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 10
}
}
{"type":"error","error":{"type":"authentication_error","message":"Invalid or missing API key."}}
إرسال طلبك الأول
أرسل طلبات HTTPS إلى العنوان الأساسي أدناه. استخدم POST /chat/completions للمحادثة النصية المتوافقة مع OpenAI أو POST /messages لبروتوكول Claude Messages. اختر البروتوكول في مساحة عمل النموذج واستخدم عنوانه الدقيق وتنسيق JSON الخاص به.
عنوان URL الأساسي لـ API: https://fusionpointai.com/api/v1
أنشئ مفتاح API للعميل أو أدره من إعدادات مفاتيح API في حسابك. أرسله كرمز bearer واحتفظ به على خادم موثوق؛ ولا تضعه في شيفرة المتصفح أو التحكم بالمصدر أو سجل عام.
يحتاج المفتاح إلى نطاق ai:inference وإمكانية الوصول إلى اشتراك العميل المعني. مفتاح API العام ليس كلمة مرور الحساب ويجب عدم مشاركته.
تستخدم هذه الأمثلة نقطة نهاية إكمال المحادثة JSON المسجلة وعملاء Python وNode.js المتوافقين مع OpenAI. خزّن المفتاح في متغير البيئة FUSIONPOINTAI_API_KEY. لا تستبدل قيمة model إلا بمعرّف دقيق مدرج أعلاه.
# Install the client for your application language.
# Python:
python -m pip install openai
# Node.js:
npm install openai
# Bash: enter the key without storing it in shell history.
read -rs -p 'FusionPointAI API key: ' FUSIONPOINTAI_API_KEY
export FUSIONPOINTAI_API_KEY
printf '\n'
# After finishing:
# unset FUSIONPOINTAI_API_KEY
curl 'https://fusionpointai.com/api/v1/chat/completions' \
-H "Authorization: Bearer $FUSIONPOINTAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "kimi-k3.1-pro",
"messages": [
{
"role": "user",
"content": "Summarize this in one sentence."
}
],
"temperature": 0.7,
"max_tokens": 300
}'
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FUSIONPOINTAI_API_KEY"],
base_url="https://fusionpointai.com/api/v1",
)
response = client.chat.completions.create(
model="kimi-k3.1-pro",
messages=[{"role": "user", "content": "Summarize this in one sentence."}],
temperature=0.7,
max_tokens=300,
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FUSIONPOINTAI_API_KEY,
baseURL: "https://fusionpointai.com/api/v1",
});
const response = await client.chat.completions.create({
model: "kimi-k3.1-pro",
messages: [{ role: "user", content: "Summarize this in one sentence." }],
temperature: 0.7,
max_tokens: 300,
});
console.log(response.choices[0].message.content);
OpenAI · عقد الطلب والاستجابة
تقبل نقطة النهاية JSON. تُرسل الرسائل بالترتيب، ولكل رسالة دور مدعوم ومحتوى نصي. يجب أن تظل عناصر التحكم الاختيارية في التوليد ضمن حدود التحقق أدناه. تكون الاستجابة كائن chat.completion بصيغة JSON، ويحتوي على choices واستخدام الرموز عند إعادته من مقدم الخدمة.
| الحقل | النوع | مطلوب | القيود |
|---|---|---|---|
model | string | نعم | نص بطول أقصاه 160 حرفاً؛ استخدم معرّفاً منشوراً. |
messages | array | نعم | مصفوفة تضم من 1 إلى 100 رسالة. |
messages[].role | string | نعم | يكون الدور إحدى القيم system أو user أو assistant. |
messages[].content | string | نعم | محتوى كل رسالة نص بطول أقصاه 100,000 حرف. |
temperature | number | لا | رقم اختياري من 0 إلى 2. |
max_tokens | integer | لا | عدد صحيح اختياري من 1 إلى 100,000؛ وقد يفرض النموذج المختار حداً أقصى أقل للمخرجات. |
بنية الاستجابة
تتضمن الاستجابة الناجحة id وobject (chat.completion) وcreated وmodel وchoices. ويتضمن كل عنصر choice فهرسه ورسالة المساعد وfinish_reason. وقد تُعاد أعداد الرموز ضمن usage. وقد تنطبق قيود خاصة بمقدم الخدمة حتى عندما يجتاز الطلب تحقق البوابة.
{
"id": "chatcmpl_example",
"object": "chat.completion",
"created": 1700000000,
"model": "kimi-k3.1-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A concise summary of the supplied text."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 10,
"total_tokens": 22
}
}
الوصول والحدود والتشغيل الآمن
لا تحتسب اشتراكات العملاء المباشرة الطلبات أو استخدام الرموز ضمن حصة محددة؛ أما مفاتيح sandbox فتخضع للحد الشهري المنشور لها. وهذه المعلومة عن الاشتراك منفصلة عن الحدود التقنية للنموذج والجهة الوسيطة.
- تختلف نوافذ سياق النماذج والحدود القصوى للمخرجات وميزات الطلب المدعومة وضوابط الحركة المؤقتة لدى الجهات الوسيطة. راجع معلومات مقدم الخدمة والنموذج قبل إرسال حركة إنتاج.
- تخضع نقطة النهاية لتحديد معدل على مستوى التطبيق قدره 60 طلباً في الدقيقة لكل هوية تحديد معدل منطبقة. وقد يشير HTTP 429 أيضاً إلى ضوابط حركة مؤقتة لدى جهة وسيطة؛ خفّض المعدل وأعد المحاولة مع تراجع زمني بدلاً من إعادة المحاولة المتقاربة.
- استخدم HTTPS، وأبقِ المفاتيح على الخادم، وامنح نطاق الاستدلال المطلوب فقط، وألغِ المفتاح سريعاً إذا احتمل انكشافه.
- تدعم Chat Completions النص المتزامن. ويدعم Claude Messages على نحو منفصل كتل المحتوى الأصلية والأدوات وSSE عندما يسمح النموذج المحدد بذلك. ولا تشمل هذه العقود نقاط نهاية أخرى لمقدمي الخدمة.
متطلبات الوصول إلى مقدم الخدمة والحساب
صادق باستخدام مفتاح API للعميل ذي نطاق ai:inference والتابع لحساب يملك إمكانية الوصول إلى هذه الخدمة. يوضح الكتالوج ما إذا كان يُسمح حالياً للعملاء الجدد. لكنه لا يمنح الوصول ولا ينشئ اشتراكاً ولا يتجاوز أذونات الحساب والمفتاح.
الأخطاء واستكشاف المشكلات
تُعاد إخفاقات التحقق ونتائج مقدم الخدمة غير الصالحة للاستخدام عبر نقطة النهاية ضمن كائن خطأ JSON يحتوي على message وtype وcode؛ وقد تتضمن إخفاقات التحقق أيضاً تفاصيل الحقول. لا ترسل مفاتيح API أو محتوى المطالبات الخاصة في تذاكر الدعم.
تُعاد أخطاء التحقق من الطلب وإخفاقات مقدم الخدمة الناتجة عن عملية المحادثة ضمن كائن خطأ. وقد تعيد برمجيات المصادقة والنطاق وتحديد المعدل بدلاً من ذلك حقلاً message على المستوى الأعلى. افحص الحالة ومتن الاستجابة معاً.
| حالة HTTP | المعنى والخطوة التالية |
|---|---|
400 | متن الطلب غير صالح. تحقق من الحقول المطلوبة وعدد الرسائل ومحتواها وقيم الأدوار وtemperature وmax_tokens.
|
401 | مفتاح bearer مفقود أو غير صالح. تأكد من أن المفتاح نشط وأنه مرسل في ترويسة Authorization. |
403 | قد يفتقر المفتاح إلى نطاق الاستدلال المطلوب أو صلاحية الوصول إلى الحساب. راجع أذونات المفتاح والوصول إلى الاشتراك. |
429 | طُبّق تحديد لمعدل الطلبات أو ضابط للحركة لدى جهة وسيطة. أبطئ وتيرة الطلبات وأعد المحاولة بتراجع أُسّي. |
500 | لم يُعِد مقدم الخدمة إكمالاً صالحاً للاستخدام أو حدث عطل في الخدمة. أعد المحاولة بحذر، واتصل بالدعم مع ذكر الوقت ومعرّف طلب منقّح. |
الأسئلة الشائعة
هل يمكنني استخدام الاسم المعروض كقيمة للنموذج؟
فقط إذا نُشرت السلسلة نفسها بصورة منفصلة كمعرّف توجيه. استخدم عمود المعرّف؛ وإذا كان فارغاً فهذا يعني عدم نشر قيمة توجيه هنا.
هل يمكنني استخدام Claude SDK؟
نعم. اختر Claude في مساحة عمل النموذج واستخدم Anthropic SDK مع العنوان الأساسي المعروض. يرسل SDK طلبات Messages الأصلية، لا Chat Completions. وتظل الإمكانات رهناً بالنموذج المحدد.
لماذا قد يفشل نموذج مدرج؟
قد لا يكون النموذج متاحاً، أو قد لا يكون الوصول مفعّلاً لحسابك أو مفتاحك، أو قد ينطبق حد تقني لدى جهة وسيطة. تحقق من الحالة والمعرّف ونطاق المفتاح واستجابة الخطأ.
ما الذي ينبغي تضمينه في طلب الدعم؟
أدرج مقدم الخدمة ومعرّف النموذج الدقيق ووقت الطلب وحالة HTTP ومعرّف الطلب بعد تنقيحه. أزل مفاتيح API وبيانات المطالبة الحساسة.