Cách Sử Dụng API Kimi K2.5

Ashley Innocent

Ashley Innocent

27 tháng 1 2026

Cách Sử Dụng API Kimi K2.5

Các nhà phát triển ngày càng tìm kiếm các API mạnh mẽ có khả năng xử lý các đầu vào đa phương thức phức tạp và cung cấp các đầu ra thông minh. API Kimi K2.5 nổi bật như một công cụ đa năng từ Moonshot AI, cho phép các ứng dụng xử lý văn bản, hình ảnh và video với khả năng suy luận nâng cao. API này giúp bạn xây dựng các giải pháp dựa trên AI tinh vi, từ gỡ lỗi trực quan trong mã đến điều phối các đàn tác tử (agent swarms) để thực hiện tác vụ song song.

💡
Bạn muốn thực hành theo? Tải Apidog để kiểm tra trực quan các lệnh gọi API Kimi K2.5 của bạn. Apidog cho phép bạn cấu hình yêu cầu, kiểm tra phản hồi, gỡ lỗi các vấn đề xác thực và tạo mã sẵn sàng cho sản xuất — tất cả mà không cần viết mã mẫu. Đây là cách nhanh nhất để thử nghiệm các khả năng của K2.5 trước khi triển khai mã.
button

Kimi K2.5 là gì?

Kimi K2.5 đại diện cho mô hình đa phương thức mã nguồn mở tiên tiến nhất của Moonshot AI, được xây dựng thông qua quá trình huấn luyện trước liên tục trên khoảng 15 nghìn tỷ token văn bản và hình ảnh kết hợp trên kiến trúc Kimi-K2-Base. Không giống như phiên bản tiền nhiệm, K2.5 tích hợp liền mạch khả năng hiểu ngôn ngữ và thị giác với các khả năng tác tử (agentic capabilities) nâng cao, làm cho nó đặc biệt mạnh mẽ cho các nhà phát triển xây dựng các ứng dụng được hỗ trợ bởi AI.

Tổng quan về Kimi K2.5

Mô hình này giới thiệu một số tính năng đột phá giúp nó khác biệt so với các API AI khác. Khả năng đa phương thức gốc của nó có nghĩa là nó được huấn luyện trước trên các token thị giác-ngôn ngữ ngay từ đầu, thay vì có các khả năng thị giác được gắn thêm như một yếu tố bổ sung. Cách tiếp cận này mang lại hiệu suất vượt trội trong kiến thức thị giác, suy luận đa phương thức và sử dụng công cụ tác tử dựa trên đầu vào thị giác.

Tại sao Kimi K2.5 quan trọng đối với các nhà phát triển:

Các tính năng và khả năng chính

Trí tuệ đa phương thức gốc

K2.5 xuất sắc trong kiến thức thị giác, suy luận đa phương thức và sử dụng công cụ tác tử dựa trên đầu vào thị giác. Đây không chỉ là nhận dạng hình ảnh – đó là sự hiểu biết sâu sắc về ngữ cảnh thị giác có thể thông báo cho việc ra quyết định phức tạp.

Lập trình với thị giác

Một trong những khả năng nổi bật của K2.5 là tạo mã từ các thông số kỹ thuật trực quan. Hướng nó đến một bản thiết kế UI, và nó có thể tạo ra mã giao diện người dùng chức năng. Hiển thị một quy trình làm việc video, và nó có thể điều phối các công cụ để xử lý dữ liệu trực quan. Điều này làm cho nó đặc biệt có giá trị cho:

Kimi K2.5 tạo mã từ đầu vào hình ảnh

Kiến trúc đàn tác tử (Agent Swarm)

K2.5 chuyển từ mở rộng tác tử đơn lẻ sang một kế hoạch thực thi phối hợp, tự định hướng giống như đàn. Khi đối mặt với các tác vụ phức tạp, nó có thể:

  1. Phân tách vấn đề thành các tác vụ con song song
  2. Khởi tạo động các tác tử cụ thể theo miền
  3. Phối hợp thực thi giữa nhiều tác tử
  4. Tổng hợp kết quả thành các đầu ra mạch lạc
Kiến trúc đàn tác tử của Kimi K2.5

Kiến trúc này cho phép K2.5 xử lý các tác vụ có thể làm quá tải các hệ thống tác tử đơn lẻ, chẳng hạn như tái cấu trúc mã toàn diện, tạo tài liệu đa tệp hoặc các đường ống phân tích dữ liệu phức tạp.

Hiệu suất Benchmark

Biểu đồ hiệu suất Benchmark của Kimi K2.5 so với các mô hình khác

Bắt đầu với API Kimi K2.5

Bước 1: Tạo tài khoản Moonshot AI của bạn

Truy cập platform.moonshot.ai và đăng ký tài khoản. Quy trình đăng ký rất đơn giản:

  1. Nhấp vào "Đăng ký" hoặc "Đăng ký"
  2. Cung cấp email của bạn và tạo mật khẩu
  3. Xác minh địa chỉ email của bạn
  4. Hoàn thành bất kỳ thông tin hồ sơ nào được yêu cầu
Trang đăng ký Moonshot AI

Bước 2: Tạo Khóa API của bạn

Sau khi đăng nhập:

  1. Điều hướng đến phần Khóa API trong bảng điều khiển của bạn
  2. Nhấp vào "Tạo Khóa API mới"
  3. Đặt tên mô tả cho khóa của bạn (ví dụ: "kimi-k2-5-development")
  4. Sao chép và lưu trữ an toàn khóa API của bạn — bạn sẽ không thấy nó nữa
Trang tạo khóa API của Moonshot AI

Mẹo bảo mật: Không bao giờ lưu khóa API vào kiểm soát phiên bản. Sử dụng biến môi trường hoặc trình quản lý bí mật.

Bước 3: Thiết lập môi trường của bạn

Đối với Python:

pip install --upgrade 'openai>=1.0'

Đối với Node.js:

npm install openai@latest

Bước 4: Cấu hình khóa API của bạn

Đặt khóa API của bạn làm biến môi trường:

macOS/Linux:

export MOONSHOT_API_KEY="your-api-key-here"

Windows (PowerShell):

[System.Environment]::SetEnvironmentVariable("MOONSHOT_API_KEY", "your-api-key-here", "User")

Windows (Dòng lệnh):

setx MOONSHOT_API_KEY "your-api-key-here"

Ví dụ mã Python

Hoàn thành cuộc trò chuyện cơ bản

Đây là một ví dụ đơn giản để bắt đầu với Kimi K2.5:

import os
from openai import OpenAI

# Khởi tạo client với điểm cuối Moonshot AI
client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

# Tạo một hoàn thành cuộc trò chuyện
response = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=[
        {
            "role": "system",
            "content": "Bạn là Kimi, một trợ lý AI được phát triển bởi Moonshot AI. Bạn hữu ích, vô hại và trung thực."
        },
        {
            "role": "user",
            "content": "Giải thích khái niệm kiến trúc mixture-of-experts trong mạng nơ-ron."
        }
    ],
    temperature=0.6,
    max_tokens=2048,
)

print(response.choices[0].message.content)

Phản hồi truyền tải (Streaming Responses)

Đối với các ứng dụng thời gian thực, hãy sử dụng tính năng truyền tải để hiển thị phản hồi khi chúng được tạo:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

# Truyền tải phản hồi
stream = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=[
        {"role": "user", "content": "Viết một hàm Python để triển khai tìm kiếm nhị phân."}
    ],
    stream=True,
    temperature=0.3,
)

# Xử lý luồng
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Cuộc trò chuyện đa lượt

Duy trì ngữ cảnh qua nhiều lần trao đổi:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

conversation_history = [
    {"role": "system", "content": "Bạn là một trợ lý mã hóa hữu ích."}
]

def chat(user_message):
    conversation_history.append({"role": "user", "content": user_message})

    response = client.chat.completions.create(
        model="kimi-k2.5-preview",
        messages=conversation_history,
        temperature=0.6,
    )

    assistant_message = response.choices[0].message.content
    conversation_history.append({"role": "assistant", "content": assistant_message})

    return assistant_message

# Ví dụ cuộc trò chuyện
print(chat("Làm cách nào để tạo API REST trong Python?"))
print(chat("Bạn có thể chỉ cho tôi cách thêm xác thực vào đó không?"))
print(chat("Còn về giới hạn tốc độ thì sao?"))

Triển khai bất đồng bộ

Đối với các ứng dụng hiệu suất cao, hãy sử dụng async/await:

import os
import asyncio
from openai import AsyncOpenAI

async def main():
    client = AsyncOpenAI(
        api_key=os.environ.get("MOONSHOT_API_KEY"),
        base_url="https://api.moonshot.ai/v1",
    )

    # Chạy nhiều yêu cầu đồng thời
    tasks = [
        client.chat.completions.create(
            model="kimi-k2.5-preview",
            messages=[{"role": "user", "content": f"What is {topic}?"}],
        )
        for topic in ["REST API", "GraphQL", "gRPC"]
    ]

    responses = await asyncio.gather(*tasks)

    for response in responses:
        print(response.choices[0].message.content[:200])
        print("-" * 50)

asyncio.run(main())

Ví dụ JavaScript/Node.js

Hoàn thành cuộc trò chuyện cơ bản

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.MOONSHOT_API_KEY,
  baseURL: 'https://api.moonshot.ai/v1',
});

async function chat(userMessage) {
  const response = await client.chat.completions.create({
    model: 'kimi-k2.5-preview',
    messages: [
      {
        role: 'system',
        content: 'You are Kimi, a helpful AI assistant.',
      },
      {
        role: 'user',
        content: userMessage,
      },
    ],
    temperature: 0.6,
  });

  return response.choices[0].message.content;
}

// Cách sử dụng
const answer = await chat('How do I implement a binary search tree in JavaScript?');
console.log(answer);

Truyền tải với Node.js

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.MOONSHOT_API_KEY,
  baseURL: 'https://api.moonshot.ai/v1',
});

async function streamChat(userMessage) {
  const stream = await client.chat.completions.create({
    model: 'kimi-k2.5-preview',
    messages: [{ role: 'user', content: userMessage }],
    stream: true,
  });

  for await (const chunk of stream) {
    const content = chunk.choices[0]?.delta?.content;
    if (content) {
      process.stdout.write(content);
    }
  }
}

await streamChat('Explain microservices architecture');

Sử dụng Fetch API (Trình duyệt/Chức năng Edge)

async function callKimiAPI(prompt) {
  const response = await fetch('https://api.moonshot.ai/v1/chat/completions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.MOONSHOT_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      model: 'kimi-k2.5-preview',
      messages: [{ role: 'user', content: prompt }],
      temperature: 0.6,
    }),
  });

  const data = await response.json();
  return data.choices[0].message.content;
}

// Cách sử dụng
const result = await callKimiAPI('What are the best practices for API design?');
console.log(result);

Kiểm thử API Kimi K2.5 với Apidog

Kiểm thử hiệu quả các API AI đòi hỏi phải hiểu cấu trúc yêu cầu/phản hồi, xử lý truyền tải, quản lý xác thực và gỡ lỗi các vấn đề. Apidog cung cấp một giải pháp toàn diện cho phát triển API, giúp việc làm việc với Kimi K2.5 trở nên đơn giản.

Giao diện Apidog hiển thị cài đặt API Kimi K2.5

Thiết lập Kimi K2.5 trong Apidog

Bước 1: Tạo dự án mới

  1. Mở Apidog và tạo một dự án mới có tên "Kimi K2.5 Integration"
  2. Điều này giúp tổ chức tất cả các điểm cuối liên quan đến Kimi của bạn ở một nơi

Bước 2: Cấu hình biến môi trường

  1. Điều hướng đến Cài đặt môi trường
  2. Thêm một biến môi trường mới:
Cấu hình biến môi trường trong Apidog

Bước 3: Tạo điểm cuối hoàn thành cuộc trò chuyện

  1. Thêm một yêu cầu POST mới
  2. URL: https://api.moonshot.ai/v1/chat/completions
  3. Tiêu đề:
Cấu hình yêu cầu POST trong Apidog

Bước 4: Cấu hình phần thân yêu cầu (Request Body)

{
  "model": "kimi-k2.5-preview",
  "messages": [
    {
      "role": "system",
      "content": "Bạn là một trợ lý AI hữu ích."
    },
    {
      "role": "user",
      "content": "Xin chào, hôm nay bạn có thể giúp gì cho tôi?"
    }
  ],
  "temperature": 0.6,
  "max_tokens": 2048,
  "stream": false
}

Gỡ lỗi với Apidog

Giao diện trực quan của Apidog giúp bạn:

Tạo các bài kiểm thử tự động

Với trình chạy thử nghiệm của Apidog, bạn có thể xác minh tích hợp Kimi K2.5 của mình:

// Kịch bản kiểm thử sau phản hồi trong Apidog
pm.test("Response status is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response contains choices", function () {
    const response = pm.response.json();
    pm.expect(response.choices).to.be.an('array');
    pm.expect(response.choices.length).to.be.greaterThan(0);
});

pm.test("Response content is not empty", function () {
    const response = pm.response.json();
    pm.expect(response.choices[0].message.content).to.not.be.empty;
});

Khả năng gọi công cụ và tác tử

Một trong những tính năng mạnh mẽ nhất của Kimi K2.5 là khả năng gọi các công cụ bên ngoài. Điều này cho phép xây dựng các tác tử AI tinh vi có thể tương tác với các hệ thống bên ngoài.

Định nghĩa công cụ

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

# Định nghĩa các công cụ có sẵn
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Lấy thời tiết hiện tại cho một địa điểm",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "Thành phố và quốc gia, ví dụ: 'London, UK'"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "Đơn vị nhiệt độ"
                    }
                },
                "required": ["location"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "search_database",
            "description": "Tìm kiếm thông tin trong cơ sở dữ liệu",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "Truy vấn tìm kiếm"
                    },
                    "limit": {
                        "type": "integer",
                        "description": "Số lượng kết quả tối đa"
                    }
                },
                "required": ["query"]
            }
        }
    }
]

# Thực hiện yêu cầu với các công cụ
response = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=[
        {"role": "user", "content": "Thời tiết ở Tokyo như thế nào?"}
    ],
    tools=tools,
    tool_choice="auto",
)

# Xử lý các lệnh gọi công cụ
if response.choices[0].message.tool_calls:
    for tool_call in response.choices[0].message.tool_calls:
        print(f"Công cụ: {tool_call.function.name}")
        print(f"Đối số: {tool_call.function.arguments}")

Thực thi các lệnh gọi công cụ

import json

def execute_tool_call(tool_call):
    """Thực thi một lệnh gọi công cụ và trả về kết quả."""
    name = tool_call.function.name
    args = json.loads(tool_call.function.arguments)

    if name == "get_weather":
        # Mô phỏng lệnh gọi API thời tiết
        return json.dumps({
            "location": args["location"],
            "temperature": 22,
            "unit": args.get("unit", "celsius"),
            "condition": "sunny"
        })
    elif name == "search_database":
        # Mô phỏng tìm kiếm cơ sở dữ liệu
        return json.dumps({
            "results": [
                {"id": 1, "title": "Kết quả 1"},
                {"id": 2, "title": "Kết quả 2"}
            ]
        })

    return json.dumps({"error": "Công cụ không xác định"})

# Hoàn thành cuộc trò chuyện với kết quả công cụ
messages = [
    {"role": "user", "content": "Thời tiết ở Tokyo như thế nào?"}
]

response = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=messages,
    tools=tools,
)

if response.choices[0].message.tool_calls:
    # Thêm tin nhắn trợ lý với các lệnh gọi công cụ
    messages.append(response.choices[0].message)

    # Thực thi từng công cụ và thêm kết quả
    for tool_call in response.choices[0].message.tool_calls:
        result = execute_tool_call(tool_call)
        messages.append({
            "role": "tool",
            "tool_call_id": tool_call.id,
            "content": result
        })

    # Lấy phản hồi cuối cùng
    final_response = client.chat.completions.create(
        model="kimi-k2.5-preview",
        messages=messages,
        tools=tools,
    )

    print(final_response.choices[0].message.content)

Tính năng thị giác và đa phương thức

Khả năng đa phương thức gốc của K2.5 cho phép xử lý hình ảnh cùng với văn bản:

import os
import base64
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

def encode_image(image_path):
    """Mã hóa hình ảnh sang base64."""
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")

# Phân tích một hình ảnh
image_base64 = encode_image("screenshot.png")

response = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Phân tích thiết kế UI này và đề xuất cải tiến."
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{image_base64}"
                    }
                }
            ]
        }
    ],
    max_tokens=2048,
)

print(response.choices[0].message.content)

Tạo mã từ đầu vào hình ảnh

# Tạo mã từ một wireframe
response = client.chat.completions.create(
    model="kimi-k2.5-preview",
    messages=[
        {
            "role": "system",
            "content": "Bạn là một nhà phát triển giao diện người dùng chuyên nghiệp. Hãy tạo mã sạch, sẵn sàng cho sản xuất."
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Chuyển đổi wireframe này thành một thành phần React với kiểu dáng Tailwind CSS."
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{encode_image('wireframe.png')}"
                    }
                }
            ]
        }
    ],
    temperature=0.3,
)

print(response.choices[0].message.content)

Giá cả và giới hạn tốc độ

Biểu đồ giá cả và giới hạn tốc độ của Kimi K2.5

Các điểm chính:

Các phương pháp hay nhất và mẹo

Tối ưu hóa việc sử dụng token

# Sử dụng lời nhắc hệ thống một cách hiệu quả
system_prompt = """Bạn là một trợ lý kỹ thuật ngắn gọn.
Quy tắc: 1) Ngắn gọn 2) Sử dụng khối mã 3) Bỏ qua những lời xã giao"""

# Bật bộ nhớ đệm cho các ngữ cảnh lặp lại
# Moonshot tự động lưu bộ nhớ đệm các lời nhắc tương tự

Cài đặt nhiệt độ

Xử lý lỗi

from openai import OpenAI, APIError, RateLimitError

client = OpenAI(
    api_key=os.environ.get("MOONSHOT_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

def safe_chat(message, retries=3):
    for attempt in range(retries):
        try:
            response = client.chat.completions.create(
                model="kimi-k2.5-preview",
                messages=[{"role": "user", "content": message}],
            )
            return response.choices[0].message.content
        except RateLimitError:
            if attempt < retries - 1:
                time.sleep(2 ** attempt)  # Giảm dần theo cấp số nhân
            else:
                raise
        except APIError as e:
            print(f"Lỗi API: {e}")
            raise

result = safe_chat("Xin chào, Kimi!")

Khắc phục sự cố thường gặp

Lỗi xác thực

Vấn đề: Lỗi 401 Unauthorized

Giải pháp:

  1. Xác minh khóa API của bạn là chính xác
  2. Kiểm tra xem khóa đã hết hạn chưa
  3. Đảm bảo định dạng tiêu đề Authorization là chính xác: Bearer YOUR_KEY

Giới hạn tốc độ

Vấn đề: 429 Too Many Requests

Giải pháp:

  1. Thực hiện giảm dần theo cấp số nhân
  2. Nâng cấp bậc của bạn bằng cách thêm tiền
  3. Giám sát tiêu đề X-RateLimit-Remaining

Vượt quá giới hạn độ dài ngữ cảnh

Vấn đề: Yêu cầu vượt quá giới hạn 256K token

Giải pháp:

  1. Tóm tắt các cuộc trò chuyện dài
  2. Sử dụng phương pháp cửa sổ trượt (sliding window)
  3. Chia thành nhiều yêu cầu

Vấn đề hết thời gian chờ

Vấn đề: Các yêu cầu bị hết thời gian chờ

Giải pháp:

  1. Sử dụng truyền tải (streaming) cho các phản hồi dài
  2. Tăng cài đặt thời gian chờ của client
  3. Chia các lời nhắc phức tạp thành các tác vụ nhỏ hơn

Sẵn sàng xây dựng với Kimi K2.5? Tải Apidog để tối ưu hóa quy trình phát triển API của bạn với kiểm thử trực quan, tài liệu tự động và các tính năng cộng tác nhóm giúp tích hợp API AI nhanh hơn và đáng tin cậy hơn.

button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API