الانتقال إلى المحتوى الرئيسي
Kimi هو نظام محادثة AI قوي للغاية، يكفي إدخال كلمة مفتاحية واحدة، ليتمكن من توليد ردود طبيعية وسلسة في غضون ثوانٍ قليلة. يمكن لـ Kimi تقديم مساعدة ذكية مذهلة، مما يزيد بشكل كبير من كفاءة وإبداع البشر في العمل. تتناول هذه الوثيقة بشكل رئيسي عملية استخدام Kimi Chat Completion API، حيث يمكننا من خلالها استخدام وظيفة المحادثة الرسمية لـ Kimi بسهولة.

申请流程

لاستخدام Gemini Chat Completion API، يمكنك أولاً زيارة صفحة Kimi Chat Completion API والنقر على زر “Acquire” للحصول على الشهادات المطلوبة: إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، فسيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد تسجيل الدخول، سيتم العودة تلقائيًا إلى الصفحة الحالية. عند التقديم لأول مرة، ستحصل على رصيد مجاني يمكن استخدامه مجانًا مع هذه API.

基本使用

بعد ذلك، يمكنك ملء المحتوى المقابل في الواجهة، كما هو موضح في الصورة:

عند استخدام هذه الواجهة للمرة الأولى، نحتاج على الأقل إلى ملء ثلاثة محتويات، أحدها هو authorization، والذي يمكن اختياره مباشرة من القائمة المنسدلة. المعامل الآخر هو model، حيث يمثل model فئة النموذج التي نختار استخدامها من موقع Kimi الرسمي، وهنا لدينا 7 نماذج رئيسية، يمكن الاطلاع على التفاصيل في النماذج التي نقدمها. المعامل الأخير هو messages، حيث أن messages هو مصفوفة كلمات الاستفسار التي ندخلها، وهي مصفوفة تمثل إمكانية تحميل عدة كلمات استفسار في نفس الوقت، كل كلمة استفسار تحتوي على role و content، حيث يمثل role دور المستفسر، وقد قدمنا ثلاثة أدوار، وهي user و assistant و system. أما content فهو المحتوى المحدد لاستفسارنا. يمكنك أيضًا ملاحظة وجود كود استدعاء مطابق على الجانب الأيمن، يمكنك نسخ الكود وتشغيله مباشرة، أو يمكنك النقر على زر “Try” للاختبار.

بعد الاستدعاء، نجد أن النتيجة المرجعة هي كما يلي:
{
  "id": "chatcmpl-b5d9e1b799c137e3",
  "object": "chat.completion",
  "created": 1770991864,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " مرحبا! كيف يمكنني مساعدتك اليوم؟",
        "refusal": null,
        "reasoning_content": " لقد قال المستخدم ببساطة \"مرحبا\". هذه تحية بسيطة. يجب أن أستجيب بطريقة ودية ومفيدة مع الاستعداد لمساعدتهم في أي شيء يحتاجونه بعد ذلك. نظرًا لعدم وجود سؤال أو مهمة محددة حتى الآن، سأعترف بتحيتهم وأسأل كيف يمكنني المساعدة.\n\nيجب أن أبقيها:\n- ودية وترحيبية\n- مهنية ولكن دافئة\n- مفتوحة لدعوتهم لمشاركة ما يحتاجون المساعدة فيه\n- مختصرة ولكن ليست قصيرة جدًا\n\nالردود المحتملة:\n1. \"مرحبا! كيف يمكنني مساعدتك اليوم؟\"\n2. \"مرحبًا! ماذا يمكنني أن أفعل من أجلك؟\"\n3. \"مرحبا! أنا جاهز للمساعدة. ماذا تود أن تعرف أو تعمل عليه؟\"\n4. \"مرحبًا! سعيد بلقائك. كيف يمكنني أن أكون في الخدمة؟\"\n\nسأختار شيئًا دافئًا ومهنيًا يدعوهم لمشاركة ما يحتاجون إليه. ",
        "reasoning": " لقد قال المستخدم ببساطة \"مرحبا\". هذه تحية بسيطة. يجب أن أستجيب بطريقة ودية ومفيدة مع الاستعداد لمساعدتهم في أي شيء يحتاجونه بعد ذلك. نظرًا لعدم وجود سؤال أو مهمة محددة حتى الآن، سأعترف بتحيتهم وأسأل كيف يمكنني المساعدة.\n\nيجب أن أبقيها:\n- ودية وترحيبية\n- مهنية ولكن دافئة\n- مفتوحة لدعوتهم لمشاركة ما يحتاجون المساعدة فيه\n- مختصرة ولكن ليست قصيرة جدًا\n\nالردود المحتملة:\n1. \"مرحبا! كيف يمكنني مساعدتك اليوم؟\"\n2. \"مرحبًا! ماذا يمكنني أن أفعل من أجلك؟\"\n3. \"مرحبا! أنا جاهز للمساعدة. ماذا تود أن تعرف أو تعمل عليه؟\"\n4. \"مرحبًا! سعيد بلقائك. كيف يمكنني أن أكون في الخدمة؟\"\n\nسأختار شيئًا دافئًا ومهنيًا يدعوهم لمشاركة ما يحتاجون إليه. ",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 184,
    "total_tokens": 193,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
تتضمن النتيجة المرجعة عدة حقول، كما هو موضح أدناه:
  • id، هو معرف المهمة الحوارية التي تم إنشاؤها، ويستخدم لتحديد هذه المهمة بشكل فريد.
  • model، هو النموذج الذي تم اختياره من موقع Kimi الرسمي.
  • choices، هي معلومات الرد التي قدمها Kimi على كلمات الاستفسار.
  • usage، هو إحصائيات استخدام التوكنات لهذه المحادثة.
حيث أن choices تحتوي على معلومات رد Kimi، ويمكن ملاحظة أن choices تحتوي على المعلومات المحددة للرد من Kimi، كما هو موضح في الصورة.

يمكنك أن ترى أن حقل content داخل choices يحتوي على المحتوى المحدد لرد Gemini.

流式响应

تدعم هذه الواجهة أيضًا الاستجابة المتدفقة، وهو أمر مفيد جدًا لتكامل الويب، حيث يمكن أن يتيح للويب عرض النتائج حرفيًا. إذا كنت ترغب في الحصول على استجابة متدفقة، يمكنك تغيير معامل stream في رأس الطلب إلى true. التعديل كما هو موضح في الصورة، ولكن يجب أن يكون هناك تغييرات مطابقة في كود الاستدعاء لدعم الاستجابة المتدفقة.

بعد تغيير stream إلى true، ستقوم API بإرجاع بيانات JSON سطرًا بسطر، وعلى مستوى الكود، نحتاج إلى إجراء التعديلات اللازمة للحصول على النتائج سطرًا بسطر. كود استدعاء Python كمثال:
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k2.5",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
تكون النتيجة كما يلي:
data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " ال", "reasoning": " ال"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " المستخدم قال \"مرحبًا\". هذه تحية بسيطة", "reasoning": " المستخدم قال \"مرحبًا\". هذه تحية بسيطة"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ". يجب أن أجيب بطريقة ودية وترحيبية", "reasoning": ". يجب أن أجيب بطريقة ودية وترحيبية"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ". نظرًا لأن هذه هي بداية المحادثة،", "reasoning": ". نظرًا لأن هذه هي بداية المحادثة,"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " يجب أن أسأل كيف يمكنني مساعدتهم اليوم.\n\n", "reasoning": " يجب أن أسأل كيف يمكنني مساعدتهم اليوم.\n\n"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": "دعني أعد ردًا:\n- اعترف ب", "reasoning": "دعني أعد ردًا:\n- اعترف ب"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " التحية\n- قدم المساعدة\n- اجعلها دافئة", "reasoning": " التحية\n- قدم المساعدة\n- اجعلها دافئة"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " ومهنية\n\nشيء مثل: \"مرحبًا! كيف", "reasoning": " ومهنية\n\nشيء مثل: \"مرحبًا! كيف"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " يمكنني مساعدتك اليوم؟\" أو \"مرحبًا هناك", "reasoning": " يمكنني مساعدتك اليوم؟\" أو \"مرحبًا هناك"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": "! ماذا يمكنني أن أفعل من أجلك؟\"\n\nفي الواقع", "reasoning": "! ماذا يمكنني أن أفعل من أجلك؟\"\n\nفي الواقع"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ", بالنظر إلى السياق، يبدو أن هذا", "reasoning": ", بالنظر إلى السياق، يبدو أن هذا"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " بداية محادثة عامة. سأبقيها بسيطة و", "reasoning": " بداية محادثة عامة. سأبقيها بسيطة و"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " مفتوحة لتشجيعهم على مشاركة ما يحتاجون إليه", "reasoning": " مفتوحة لتشجيعهم على مشاركة ما يحتاجون إليه"},"logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": " مرحبًا! كيف يمكنني مساعدتك", "reasoning_content": " بمساعدتك. ", "reasoning": " بمساعدتك. "}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": " اليوم؟"},"logprobs": null, "finish_reason": "stop"}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [], "usage": {"prompt_tokens": 9, "completion_tokens": 135, "total_tokens": 144, "prompt_tokens_details": {"cached_tokens_details": {}}, "completion_tokens_details": {}}}

data: [DONE]
可以看到,响应里面有许多 datadata 里面的 choices 即为最新的回答内容,与上文介绍的内容一致。choices 是新增的回答内容,您可以根据结果来对接到您的系统中。同时流式响应的结束是根据 data 的内容来判断的,如果内容为 [DONE],则表示流式响应回答已经全部结束。返回的 data 结果一共有多个字段,介绍如下:
  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • model ,选择的 Kimi 官网模型。
  • choices,Kimi 针对提问词给于的回答信息。
JavaScript 也是支持的,比如 Node.js 的流式调用代码如下:
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k2.5",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": true
  })
};

fetch("https://api.acedata.cloud/kimi/chat/completions", options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
Java 样例代码:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "kimi-k2.5");
jsonObject.put("messages", [{"role":"user","content":"Hello"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/kimi/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
其他语言可以另外自行改写,原理都是一样的。

多轮对话

如果您想要对接多轮对话功能,需要对 messages 字段上传多个提问词,多个提问词的具体示例如下图所示:

Python 样例调用代码:
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k2.5",
    "messages": [{"role":"assistant","content":"Hello! How can I help you today?"},{"role":"user","content":"What model are you?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
通过上传多个提问词,就可以轻松实现多轮对话,可以得到如下回答:
{
  "id": "chatcmpl-81e5f161ea077f5e",
  "object": "chat.completion",
  "created": 1770992310,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " أنا كيمي، مساعد ذكي من صنع Moonshot AI. أنا من سلسلة **K2.5**.",
        "refusal": null,
        "reasoning_content": " المستخدم يسأل \"ما هو النموذج الذي أنت عليه؟\" يريد أن يعرف أي نموذج ذكاء اصطناعي أنا.\n\n يجب أن أعرّف نفسي كيمي، مساعد ذكي من صنع Moonshot AI. يجب أن أذكر أنني كيمي من سلسلة K2.5 بالتحديد، حيث أن هذا هو النموذج الذي تم نشره حاليًا.\n\n النقاط الرئيسية:\n - أنا كيمي\n - من صنع Moonshot AI\n - حاليًا كيمي K2.5 (أو فقط أقول أنني جزء من سلسلة K2.5)\n - يجب أن أكون مفيدًا ومباشرًا\n\n يجب أن لا:\n - أزعم أنني نموذج مختلف (مثل GPT-4، جمني، إلخ)\n - أكون غامضًا بشأن هويتي\n - أختلق أرقام إصدارات غير صحيحة\n\n الهوية الحالية للنموذج هي كيمي K2.5 (على الرغم من أن التسمية الدقيقة للسلسلة قد تختلف حسب النشر، لكن K2.5 هو الرائد الحالي). سأعرّف نفسي كيمي، مساعد ذكي من صنع Moonshot AI، وسأذكر أنني من سلسلة K2.5.\n\n بسيط، مباشر، دقيق. ",
        "reasoning": " المستخدم يسأل \"ما هو النموذج الذي أنت عليه؟\" يريد أن يعرف أي نموذج ذكاء اصطناعي أنا.\n\n يجب أن أعرّف نفسي كيمي، مساعد ذكي من صنع Moonshot AI. يجب أن أذكر أنني كيمي من سلسلة K2.5 بالتحديد، حيث أن هذا هو النموذج الذي تم نشره حاليًا.\n\n النقاط الرئيسية:\n - أنا كيمي\n - من صنع Moonshot AI\n - حاليًا كيمي K2.5 (أو فقط أقول أنني جزء من سلسلة K2.5)\n - يجب أن أكون مفيدًا ومباشرًا\n\n يجب أن لا:\n - أزعم أنني نموذج مختلف (مثل GPT-4، جمني، إلخ)\n - أكون غامضًا بشأن هويتي\n - أختلق أرقام إصدارات غير صحيحة\n\n الهوية الحالية للنموذج هي كيمي K2.5 (على الرغم من أن التسمية الدقيقة للسلسلة قد تختلف حسب النشر، لكن K2.5 هو الرائد الحالي). سأعرّف نفسي كيمي، مساعد ذكي من صنع Moonshot AI، وسأذكر أنني من سلسلة K2.5.\n\n بسيط، مباشر، دقيق. ",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 235,
    "total_tokens": 263,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 Kimi 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:طلب غير صالح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 400 api_not_implemented:طلب غير صالح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 401 invalid_token:غير مصرح، رمز التفويض غير صالح أو مفقود.
  • 429 too_many_requests:عدد كبير جدًا من الطلبات، لقد تجاوزت الحد الأقصى لمعدل الطلبات.
  • 500 api_error:خطأ داخلي في الخادم، حدث خطأ ما على الخادم.

错误响应示例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 Gemini Chat Completion API 轻松实现官方 Gemini 的对话功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。