跳至主要內容

Moonshot AI

總覽

屬性詳細資訊
說明Moonshot AI 提供大型語言模型,包括 moonshot-v1 系列和 kimi 模型。
LiteLLM 上的提供者路由moonshot/
提供者文件連結Moonshot AI ↗
Base URLhttps://api.moonshot.ai/
支援的操作/chat/completions


https://platform.moonshot.ai/

我們支援所有 Moonshot AI 模型,只要在送出 completion 請求時將 moonshot/ 設為前綴即可

必要變數

Environment Variables
os.environ["MOONSHOT_API_KEY"] = ""  # your Moonshot AI API key

注意:

Moonshot AI 提供兩個不同的 API 端點:全球端點與中國專用端點。

  • 全球 API Base URL: https://api.moonshot.ai/v1(這是目前實作的端點)
  • 中國 API Base URL: https://api.moonshot.cn/v1

您可以用以下方式覆寫 base url:

os.environ["MOONSHOT_API_BASE"] = "https://api.moonshot.cn/v1"

使用方式 - LiteLLM Python SDK

非串流

Moonshot Non-streaming Completion
import os
import litellm
from litellm import completion

os.environ["MOONSHOT_API_KEY"] = "" # your Moonshot AI API key

messages = [{"content": "Hello, how are you?", "role": "user"}]

# Moonshot call
response = completion(
model="moonshot/moonshot-v1-8k",
messages=messages
)

print(response)

串流

Moonshot Streaming Completion
import os
import litellm
from litellm import completion

os.environ["MOONSHOT_API_KEY"] = "" # your Moonshot AI API key

messages = [{"content": "Hello, how are you?", "role": "user"}]

# Moonshot call with streaming
response = completion(
model="moonshot/moonshot-v1-8k",
messages=messages,
stream=True
)

for chunk in response:
print(chunk)

使用方式 - LiteLLM Proxy

將以下內容加入您的 LiteLLM Proxy 設定檔:

config.yaml
model_list:
- model_name: moonshot-v1-8k
litellm_params:
model: moonshot/moonshot-v1-8k
api_key: os.environ/MOONSHOT_API_KEY

- model_name: moonshot-v1-32k
litellm_params:
model: moonshot/moonshot-v1-32k
api_key: os.environ/MOONSHOT_API_KEY

- model_name: moonshot-v1-128k
litellm_params:
model: moonshot/moonshot-v1-128k
api_key: os.environ/MOONSHOT_API_KEY

啟動您的 LiteLLM Proxy 伺服器:

Start LiteLLM Proxy
litellm --config config.yaml

# RUNNING on http://0.0.0.0:4000
Moonshot via Proxy - Non-streaming
from openai import OpenAI

# Initialize client with your proxy URL
client = OpenAI(
base_url="http://localhost:4000", # Your proxy URL
api_key="your-proxy-api-key" # Your proxy API key
)

# Non-streaming response
response = client.chat.completions.create(
model="moonshot-v1-8k",
messages=[{"role": "user", "content": "hello from litellm"}]
)

print(response.choices[0].message.content)
Moonshot via Proxy - Streaming
from openai import OpenAI

# Initialize client with your proxy URL
client = OpenAI(
base_url="http://localhost:4000", # Your proxy URL
api_key="your-proxy-api-key" # Your proxy API key
)

# Streaming response
response = client.chat.completions.create(
model="moonshot-v1-8k",
messages=[{"role": "user", "content": "hello from litellm"}],
stream=True
)

for chunk in response:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")

如需更詳細的 LiteLLM Proxy 使用資訊,請參閱 LiteLLM Proxy 文件

圖片 / 視覺支援

Moonshot 視覺模型(kimi-k2.5kimi-latestmoonshot-v1-*-vision-preview 等)接受標準 OpenAI content array,並支援 image_url blocks。

LiteLLM 會自動偵測您的訊息何時包含圖片,並保留 content array,讓圖片 payload 能送達 Moonshot API。對於純文字請求,content 會依 Moonshot 文字模型的需求攤平成一般字串。

Moonshot Vision Example
import os
import litellm

os.environ["MOONSHOT_API_KEY"] = ""

response = litellm.completion(
model="moonshot/kimi-k2.5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/image.png"},
},
],
}
],
)

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

Moonshot AI 限制與 LiteLLM 處理方式

LiteLLM 會自動處理以下 Moonshot AI 限制,以提供無縫的 OpenAI 相容性:

Temperature 範圍限制

限制:Moonshot AI 只支援 temperature 範圍 [0, 1](相較於 OpenAI 的 [0, 2])
LiteLLM 處理方式:自動將任何大於 1 的 temperature 限制為 1

Temperature + 多重輸出限制

限制:如果 temperature < 0.3 且 n > 1,Moonshot AI 會拋出例外
LiteLLM 處理方式:在偵測到此條件時,自動將 temperature 設為 0.3

不支援 Tool Choice「Required」

限制:Moonshot AI 不支援 tool_choice="required"
LiteLLM 處理方式:透過以下方式轉換:

  • 新增訊息:"Please select a tool to handle the current issue."
  • 從請求中移除 tool_choice 參數