Tất cả bài viết
How-tos10 phút đọc

Kimi K3 API hướng dẫn: Python, tầm nhìn, công cụ và 1M ngữ cảnh

Học cách gọi Kimi K3 API với Python và cURL, cấu hình lý luận, gửi dữ liệu nhập trực quan, các công cụ gọi, dòng phản hồi và sử dụng đầu ra có cấu trúc.

Kimi K3 API hướng dẫn: Python, tầm nhìn, công cụ và 1M ngữ cảnh
How-tos

Kimi K3 API hướng dẫn nhà phát triển

Kimi K3 có sẵn thông qua Moonshot AI’s OpenAI-Compatible Chat Completions API với ID mô hình kimi-k3API hỗ trợ luôn luôn có lý luận, phát trực tuyến, hình ảnh, video tải lên, Schema JSON nghiêm ngặt, công cụ tùy chỉnh, tải công cụ động và cửa sổ bối cảnh 1 triệu token.

Sự tương thích không có nghĩa là hành vi giống nhau. K3 có giá trị lấy mẫu cố định, yêu cầu trạng thái trợ lý hoàn chỉnh trong các vòng xoay công cụ và cuộc trò chuyện sau này, và xử lý lý lý luận riêng biệt với nội dung cuối cùng. Hướng dẫn này tập trung vào những chi tiết đó.

Kế hoạch hiện hành và giá cả tháng 7 22, 2026. Kimi K3 có sẵn trên Poyo.ai như kimi-k3 thông qua các Chat Complements OpenAI tương thích API. Giá cả là $2.28 cho mỗi token nhập 1M và $11.40 cho mỗi token đầu ra 1M — 24% thấp hơn giá chính thức.

Yêu cầu

Bạn cần:

  • Python 3.9 hoặc mới hơn;
  • openai Phiên bản gói Python 1.0 hoặc mới hơn;
  • một khóa API Moonshot được lưu trữ bên ngoài điều khiển nguồn;
  • cơ sở URL https://api.moonshot.ai/v1;
  • ID mô hình kimi-k3.

Lắp đặt SDK:

python -m pip install --upgrade "openai>=1.0"

Đặt chìa khóa vào vỏ của bạn:

export MOONSHOT_API_KEY="your-key"

Trên PowerShell:

$env:MOONSHOT_API_KEY="your-key"

Không bao giờ đặt một khóa sản xuất trong một ví dụ mã, gói bên khách hàng, nhật ký hoặc kho.

Hãy thực hiện yêu cầu đầu tiên của bạn về Kimi K3

Python

import os
from openai import OpenAI

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

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Review this migration plan and list its three highest risks."}
    ],
)

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

cURL

curl https://api.moonshot.ai/v1/chat/completions \
  -H "Authorization: Bearer $MOONSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [
      {"role": "user", "content": "Explain Kimi Delta Attention in plain language."}
    ]
  }'

Định cấu hình nỗ lực lý luận

K3 luôn sử dụng chế độ suy nghĩ. reasoning_effort trường:

response = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="high",
    messages=[
        {"role": "user", "content": "Find the flaw in this distributed lock design."}
    ],
)

Các giá trị được hỗ trợ là:

Giá trị Sử dụng nó cho
low Nhiệm vụ dễ dàng hơn khi độ trễ và đầu ra quan trọng
high Việc lập trình mã hóa, phân tích và lập kế hoạch công cụ khó khăn
max Các nhiệm vụ khó khăn nhất và đánh giá theo kiểu benchmark

Các cố định được ghi nhận là maxĐừng cho rằng đó là thiết lập sản xuất rẻ nhất. Đánh giá tỷ lệ thành công, độ trễ và token được tạo ra tại mỗi nỗ lực.

Nguyên lý dòng và nội dung cuối cùng

Các câu trả lời phát trực tuyến phơi bày lý luận và văn bản cuối cùng thông qua các trường delta khác nhau.

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Review this architecture for race conditions."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta
    reasoning = getattr(delta, "reasoning_content", None)
    if reasoning:
        # Store or process according to your product and provider policies.
        pass
    if delta.content:
        print(delta.content, end="", flush=True)

Giữ nội dung cuối cùng đối diện với người dùng tách biệt với xử lý nội bộ. reasoning_content.

Gửi hình ảnh cho Kimi K3

Các thông điệp tầm nhìn K3 sử dụng một loạt các đối tượng nội dung. URL hình ảnh công cộng không được hỗ trợ trong dòng này; mã hóa một hình ảnh địa phương như base64.

import base64
from pathlib import Path

image_data = base64.b64encode(Path("interface.png").read_bytes()).decode()

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/png;base64,{image_data}"},
                },
                {
                    "type": "text",
                    "text": "Identify the three largest accessibility problems in this interface.",
                },
            ],
        }
    ],
)

Thiết lập loại tệp và kích thước trước khi mã hóa tải lên của người dùng. Tránh khai thác các tải trọng bồi thường của Base64.

Gửi video đến Kimi K3

tải lên video qua các tệp API, tham khảo ID trả lại với ms:// và xóa file khi nó không còn cần thiết nữa.

from pathlib import Path

video = client.files.create(file=Path("demo.mp4"), purpose="video")

try:
    response = client.chat.completions.create(
        model="kimi-k3",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "video_url",
                        "video_url": {"url": f"ms://{video.id}"},
                    },
                    {"type": "text", "text": "Summarize the workflow and identify failed steps."},
                ],
            }
        ],
    )
finally:
    client.files.delete(video.id)

Khôi phục hiệu suất Schema JSON

Sử dụng strict: true khi mã dòng chảy tiếp theo cần một hình dạng có thể dự đoán được.

import json

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Extract the risk, severity, and owner from this incident note."}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "incident_risk",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "risk": {"type": "string"},
                    "severity": {"type": "string", "enum": ["low", "medium", "high"]},
                    "owner": {"type": ["string", "null"]},
                },
                "required": ["risk", "severity", "owner"],
                "additionalProperties": False,
            },
        },
    },
)

result = json.loads(response.choices[0].message.content or "{}")

Chỉ phân tích kết thúc message.content, sau đó xác nhận lại nó trong mã ứng dụng.

Các công cụ tùy chỉnh gọi

Câu trả lời đầu tiên có thể yêu cầu một hoặc nhiều công cụ. Thực hiện mỗi cuộc gọi được phép, thêm thông điệp trợ lý đầy đủ, sau đó thêm một kết quả công cụ phù hợp cho mỗi tool_call_id.

import json

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_build_status",
            "description": "Return the current build status for an allowed project.",
            "parameters": {
                "type": "object",
                "properties": {"project": {"type": "string"}},
                "required": ["project"],
                "additionalProperties": False,
            },
        },
    }
]

messages = [{"role": "user", "content": "Check the web build and summarize any failure."}]

first = client.chat.completions.create(
    model="kimi-k3",
    messages=messages,
    tools=tools,
    tool_choice="required",
)

assistant_message = first.choices[0].message
messages.append(assistant_message)

for call in assistant_message.tool_calls or []:
    arguments = json.loads(call.function.arguments)
    # Authorize and validate before executing a real tool.
    tool_result = {"project": arguments["project"], "status": "passed"}
    messages.append(
        {
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(tool_result),
        }
    )

final = client.chat.completions.create(
    model="kimi-k3",
    messages=messages,
    tools=tools,
)

Không bao giờ thực hiện lệnh shell tự nguyện được tạo bởi mô hình mà không có ranh giới quyền, xác thực đầu vào, môi trường có phạm vi và đường vi kiểm toán.

Công cụ tải động

K3 hỗ trợ đặt một định nghĩa công cụ đầy đủ trong một system thông báo tại điểm nó trở nên có sẵn. Giữ tin nhắn đó trong lịch sử sau vì máy chủ không lưu lại nó cho bạn.

Loading động giúp các hệ thống đại lý lớn tránh gửi mọi sơ đồ công cụ ở mỗi lượt. Nó cũng tạo ra các yêu cầu quản lý nhà nước mới: mô hình phải thấy tuyên bố chính xác khi giải thích kết quả công cụ sau này.

Sử dụng cửa sổ bối cảnh mã 1M

Các bối cảnh lớn có giá trị nhất khi các bằng chứng từ xa phải được hợp lý cùng nhau.

  1. Giữ kho lưu trữ ổn định hoặc các tài liệu cơ quan ở đầu.
  2. Thêm câu hỏi và kết quả thay vì viết lại tiền tố.
  3. Theo dõi các đầu vào được lưu trữ trong cache và không lưu trữ riêng biệt.
  4. Nhận lại một bộ phụ nhỏ hơn khi toàn bộ bộ không cần thiết.
  5. Thiết lập các mã nguồn để có thể xác minh câu trả lời cuối cùng.
  6. Chỉ cần hợp lý khi khách hàng của bạn giữ được tất cả các trạng thái yêu cầu bởi K3.

Caching tự động không có ID cache hoặc tham số TTL thông thường. Các tiền đề ổn định cho dịch vụ cơ hội tốt nhất để truy cập bộ nhớ cache.

Giữ trạng thái đa xoay hoàn chỉnh

Đây là quy tắc tích hợp K3 đặc biệt quan trọng nhất.

Khi tiếp tục cuộc trò chuyện hoặc trả lại kết quả công cụ, thêm thông điệp trợ lý hoàn chỉnh được trả lại bởi API. Không chỉ giữ contentMoonshot cảnh báo rằng K3 được đào tạo với lịch sử suy nghĩ được bảo tồn và có thể trở nên không ổn định nếu vòng xoáy giảm cần lịch sử hoặc chuyển sang K3 giữa một phiên.

Cung cấp trạng thái trò chuyện an toàn, áp dụng giới hạn lưu trữ, và tránh phơi bày trạng thái ẩn cho người dùng không nên thấy nó.

Các giới hạn quan trọng của Kimi K3 API

  • K3 luôn có khả năng suy nghĩ.
  • reasoning_effort hỗ trợ low, high, và max.
  • max_completion_tokens mặc định là 131,072 và có thể được thiết lập là 1,048,576.
  • temperature=1.0, top_p=0.95, n=1, presence_penalty=0, và frequency_penalty=0 được cố định; bỏ chúng.
  • URL hình ảnh công cộng không được hỗ trợ cho các thông điệp thị giác.
  • Các yêu cầu nhiều vòng và công cụ phải giữ lại thông điệp trợ lý đầy đủ.
  • Moonshot nói công cụ tìm kiếm trên web của nó đang được cập nhật và hiện không được khuyến cáo cho sản xuất.

Danh sách kiểm tra sản xuất

  • Giữ khóa API bên máy chủ.
  • Thêm thời gian yêu cầu và thử lại hạn chế.
  • Thiết lập các lập luận công cụ và ủy quyền cho mọi hành động.
  • Giới hạn vòng xoay công cụ và độ dài hoàn thành.
  • Giữ trạng thái trợ lý K3 hoàn chỉnh.
  • Thiết lập JSON nghiêm ngặt sau khi tạo ra.
  • Lập vào ghi, nhập trong cache, ra ngoài, trễ và lỗi.
  • Tránh chuyển đổi mô hình giữa phiên K3.
  • Thêm ranh giới hành vi rõ ràng để giảm tính chủ động quá mức.
  • Kiểm tra bằng các công cụ bị hỏng, phản ứng một phần và lịch sử dài.

Đọc Kimi K3 API Giá cả trước khi chọn các giới hạn kết quả và kết quả. Trang mô hình Kimi K3 cho khả năng Poyo.ai.

Những câu hỏi thường được hỏi

Kimi K3 API OpenAI có tương thích không?

Có. Moonshot cho thấy một điểm cuối của Chat Completions tương thích với OpenAI. Các quy tắc cụ thể về trạng thái, lý luận, lấy mẫu và phương tiện truyền thông của K3 vẫn áp dụng.

ID mô hình Kimi K3 là gì?

ID mô hình chính thức của Moonshot API là kimi-k3.

Kimi K3 hỗ trợ chức năng gọi?

Có. Nó hỗ trợ các công cụ tùy chỉnh, lựa chọn công cụ cần thiết, kết quả công cụ phù hợp và tải công cụ động.

Kimi K3 có thể xử lý video không?

Đúng vậy. tải lên video qua các tệp API và tham khảo ms:// ID tệp trong một đối tượng nội dung video.

Làm thế nào để tôi sử dụng cửa sổ ngữ cảnh 1M?

Gửi các thông điệp và nội dung cần thiết thông qua yêu cầu mô hình tiêu chuẩn, giữ các tiền đề ổn định không thay đổi cho lưu trữ tự động và đặt giới hạn hoàn thành giới hạn.

Nguồn tin

Blog · PoYo.aiTất cả bài viết
KẾT NỐI

Bạn đang có dự án?

Hãy chia sẻ nhu cầu của bạn. Chúng tôi sẽ tư vấn API AI phù hợp.

Chúng tôi chỉ dùng thông tin để phản hồi yêu cầu này.

PoYo AI

Sẵn sàng khám phá mô hình?

Xem các mô hình hình ảnh, video, âm thanh và ngôn ngữ trên PoYo.

Xem mô hình AI