Hoppa till huvudinnehåll
Kimi är ett mycket kraftfullt AI-dialogsystem som kan generera flytande och naturliga svar på bara några sekunder genom att ange en prompt. Kimi kan erbjuda fantastiska intelligenta assistans, vilket avsevärt ökar människors arbetsproduktivitet och kreativitet. Detta dokument beskriver huvudsakligen användningsflödet för Kimi Chat Completion API, vilket gör att vi enkelt kan använda den officiella Kimi-dialogfunktionen.

Ansökningsprocess

För att använda Gemini Chat Completion API kan du först gå till Kimi Chat Completion API sidan och klicka på “Acquire”-knappen för att få de nödvändiga autentiseringsuppgifterna: Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan där du uppmanas att registrera dig och logga in. Efter att ha loggat in eller registrerat dig kommer du automatiskt att återvända till den aktuella sidan. Vid första ansökan kommer det att finnas en gratis kvot som ges, så att du kan använda API:et gratis.

Grundläggande Användning

Därefter kan du fylla i motsvarande innehåll på gränssnittet, som visas i bilden:

Vid första användningen av detta gränssnitt behöver vi fylla i minst tre fält, ett är authorization, som du direkt väljer från rullgardinsmenyn. Den andra parametern är model, model är den kategori av Kimi-modeller som vi väljer att använda, här har vi huvudsakligen 7 olika modeller, detaljer kan ses i de modeller vi tillhandahåller. Den sista parametern är messages, messages är en array av våra inmatade frågor, det är en array som gör det möjligt att ladda upp flera frågor samtidigt, varje fråga innehåller role och content, där role representerar frågeställarens roll, vi erbjuder tre olika identiteter: user, assistant, system. Den andra content är det specifika innehållet i vår fråga. Samtidigt kan du notera att det finns motsvarande kod för anrop på höger sida, du kan kopiera koden och köra den direkt, eller så kan du klicka på “Try”-knappen för att testa.

Efter anropet upptäckte vi att returresultatet ser ut som följer:
{
  "id": "chatcmpl-b5d9e1b799c137e3",
  "object": "chat.completion",
  "created": 1770991864,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " Hello! How can I help you today?",
        "refusal": null,
        "reasoning_content": " The user has simply said \"Hello\". This is a straightforward greeting. I should respond in a friendly, helpful manner while being ready to assist with whatever they need next. Since there's no specific question or task yet, I'll acknowledge their greeting and ask how I can help.\n\nI should keep it:\n- Friendly and welcoming\n- Professional but warm\n- Open-ended to invite them to share what they need help with\n- Concise but not too brief\n\nPossible responses:\n1. \"Hello! How can I help you today?\"\n2. \"Hi there! What can I do for you?\"\n3. \"Hello! I'm ready to assist. What would you like to know or work on?\"\n4. \"Hey! Great to meet you. How can I be of service?\"\n\nI'll go with something warm and professional that invites them to share what they need. ",
        "reasoning": " The user has simply said \"Hello\". This is a straightforward greeting. I should respond in a friendly, helpful manner while being ready to assist with whatever they need next. Since there's no specific question or task yet, I'll acknowledge their greeting and ask how I can help.\n\nI should keep it:\n- Friendly and welcoming\n- Professional but warm\n- Open-ended to invite them to share what they need help with\n- Concise but not too brief\n\nPossible responses:\n1. \"Hello! How can I help you today?\"\n2. \"Hi there! What can I do for you?\"\n3. \"Hello! I'm ready to assist. What would you like to know or work on?\"\n4. \"Hey! Great to meet you. How can I be of service?\"\n\nI'll go with something warm and professional that invites them to share what they need. ",
        "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": {}
  }
}
Returresultatet har flera fält, som beskrivs nedan:
  • id, ID för att generera denna dialoguppgift, används för att unikt identifiera denna dialoguppgift.
  • model, den valda Kimi-modellen.
  • choices, Kimi:s svarsinformation på frågorna.
  • usage: statistik över token-användning för denna fråge- och svarsinteraktion.
Där choices innehåller Kimi:s svarsinformation, och choices inuti den innehåller den specifika informationen om Kimi:s svar, som kan ses i bilden.

Det kan ses att content-fältet i choices innehåller det specifika innehållet i Gemini:s svar.

Strömmande Svar

Detta gränssnitt stöder också strömmande svar, vilket är mycket användbart för webbgränssnitt och kan ge en tecken-för-tecken visningseffekt. Om du vill ha strömmande svar kan du ändra stream-parametern i begärningshuvudet till true. Ändringen visas i bilden, men anropskoden behöver också ändras för att stödja strömmande svar.

När stream ändras till true kommer API:et att returnera motsvarande JSON-data rad för rad, och på kodnivå behöver vi göra nödvändiga ändringar för att få radresultaten. Python-exempel på anropskod:
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)
Utdataeffekten ser ut som följer:
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": " Den", "reasoning": " Den"}, "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": " användaren sa \"Hej\". Detta är en enkel hälsning", "reasoning": " användaren sa \"Hej\". Detta är en enkel hälsning"}, "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": ". Jag bör svara på ett vänligt och välkomnande sätt", "reasoning": ". Jag bör svara på ett vänligt och välkomnande sätt"}, "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": ". Eftersom detta är början på en konversation,", "reasoning": ". Eftersom detta är början på en konversation,"}, "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": " bör jag fråga hur jag kan hjälpa dem idag.\n\n", "reasoning": " bör jag fråga hur jag kan hjälpa dem idag.\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": "Låt mig formulera ett svar:\n- Bekräfta", "reasoning": "Låt mig formulera ett svar:\n- Bekräfta"},"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": " hälsningen\n- Erbjuda hjälp\n- Hålla det varmt", "reasoning": " hälsningen\n- Erbjuda hjälp\n- Hålla det varmt"}, "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": " och professionellt\n\nNågot som: \"Hej! Hur", "reasoning": " och professionellt\n\nNågot som: \"Hej! Hur"}, "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": " kan jag hjälpa dig idag?\" eller \"Hej där", "reasoning": " kan jag hjälpa dig idag?\" eller \"Hej där"}, "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": "! Vad kan jag göra för dig?\"\n\nEgentligen", "reasoning": "! Vad kan jag göra för dig?\"\n\nEgentligen"}, "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": ", med tanke på sammanhanget, verkar detta vara", "reasoning": ", med tanke på sammanhanget, verkar detta vara"}, "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": " en allmän konversationsstartare. Jag kommer att hålla det enkelt och", "reasoning": " en allmän konversationsstartare. Jag kommer att hålla det enkelt och"}, "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": " öppet för att uppmuntra dem att dela vad de behöver", "reasoning": " öppet för att uppmuntra dem att dela vad de behöver"}, "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": " Hej! Hur kan jag hjälpa", "reasoning_content": " hjälpa till. ", "reasoning": " hjälpa till. "}, "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": " dig idag?"}, "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]
Det kan ses att svaret innehåller många data, där data innehåller choices, vilket är det senaste svaret, i enlighet med det som beskrivits ovan. choices är det nya svaret, och du kan koppla det till ditt system baserat på resultaten. Samtidigt avgörs slutet av den strömmande responsen utifrån innehållet i data; om innehållet är [DONE], betyder det att den strömmande responsen har avslutats helt. De returnerade data-resultaten har flera fält, som beskrivs nedan:
  • id, ID för att generera denna dialoguppgift, används för att unikt identifiera denna dialoguppgift.
  • model, den valda Kimi-modellen från Kimi:s officiella webbplats.
  • choices, Kimi:s svarsinformation på frågeordet.
JavaScript stöds också, till exempel Node.js:s strömmande anropskod ser ut som följer:
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-exempel på kod:
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())
Andra språk kan skrivas om på egen hand, principen är densamma.

Flera rundor av dialog

Om du vill koppla fler rundor av dialogfunktioner behöver du ladda upp flera frågeord i messages-fältet, specifika exempel på flera frågeord visas nedan:

Python-exempel på anropskod:
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)
Genom att ladda upp flera frågeord kan du enkelt genomföra flera rundor av dialog och få följande svar:
{
  "id": "chatcmpl-81e5f161ea077f5e",
  "object": "chat.completion",
  "created": 1770992310,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " I'm Kimi, an AI assistant made by Moonshot AI. I'm from the **K2.5** series.",
        "refusal": null,
        "reasoning_content": " The user is asking \"What model are you?\" They want to know which AI model I am.\n\n I should identify myself as Kimi, an AI assistant made by Moonshot AI. I should mention that I'm Kimi from the K2.5 series specifically, as that's the model currently deployed.\n\n Key points:\n - I am Kimi\n - Made by Moonshot AI\n - Currently Kimi K2.5 (or just say I'm part of the K2.5 series)\n - I should be helpful and direct\n\n I should not:\n - Claim to be a different model (like GPT-4, Gemini, etc.)\n - Be evasive about my identity\n - Make up version numbers that aren't correct\n\n The current model identity is Kimi K2.5 (though sometimes the exact series designation might vary by deployment, but K2.5 is the current flagship). I'll identify myself as Kimi, an AI assistant by Moonshot AI, and mention I'm from the K2.5 series.\n\n Simple, direct, accurate. ",
        "reasoning": " The user is asking \"What model are you?\" They want to know which AI model I am.\n\n I should identify myself as Kimi, an AI assistant made by Moonshot AI. I should mention that I'm Kimi from the K2.5 series specifically, as that's the model currently deployed.\n\n Key points:\n - I am Kimi\n - Made by Moonshot AI\n - Currently Kimi K2.5 (or just say I'm part of the K2.5 series)\n - I should be helpful and direct\n\n I should not:\n - Claim to be a different model (like GPT-4, Gemini, etc.)\n - Be evasive about my identity\n - Make up version numbers that aren't correct\n\n The current model identity is Kimi K2.5 (though sometimes the exact series designation might vary by deployment, but K2.5 is the current flagship). I'll identify myself as Kimi, an AI assistant by Moonshot AI, and mention I'm from the K2.5 series.\n\n Simple, direct, accurate. ",
        "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": {}
  }
}
Det kan ses att informationen i choices är i linje med det grundläggande användningsinnehållet, vilket innehåller Kimi:s specifika svar på flera dialoger, så att man kan svara på motsvarande frågor baserat på flera dialoginnehåll.

Felhantering

Vid anrop av API:t, om ett fel uppstår, kommer API:t att returnera motsvarande felkod och information. Till exempel:
  • 400 token_mismatched: Felaktig begäran, eventuellt på grund av saknade eller ogiltiga parametrar.
  • 400 api_not_implemented: Felaktig begäran, eventuellt på grund av saknade eller ogiltiga parametrar.
  • 401 invalid_token: Obemyndigad, ogiltig eller saknad auktoriseringstoken.
  • 429 too_many_requests: För många begärningar, du har överskridit hastighetsgränsen.
  • 500 api_error: Internt serverfel, något gick fel på servern.

Exempel på felrespons

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

Slutsats

Genom detta dokument har du fått en förståelse för hur du enkelt kan använda Gemini Chat Completion API för att implementera den officiella Gemini-dialogfunktionen. Vi hoppas att detta dokument kan hjälpa dig att bättre koppla och använda API:t. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.