このドキュメントでは、Alibaba Cloud Model Studio にデプロイされている MiniMax モデルの推論サービスを呼び出す方法について説明します。
重要
このドキュメントは中国本土のリージョンにのみ適用されます。モデルを使用するには、中国本土のリージョンから API キーを取得する必要があります。
クイックスタート
開始する前に、API キーを取得し、環境変数として設定してください。この設定方法は非推奨です。SDK を使用する場合は、SDK をインストールする必要もあります。
OpenAI 互換
Python
コード例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="MiniMax-M2.5",
messages=[{"role": "user", "content": "Who are you"}],
stream=True,
)
reasoning_content = "" # 完全な推論プロセス
answer_content = "" # 完全な応答
is_answering = False # 応答フェーズが開始されたかどうかを示します
print("\n" + "=" * 20 + "推論プロセス" + "=" * 20 + "\n")
for chunk in completion:
if chunk.choices:
delta = chunk.choices[0].delta
# 推論コンテンツのみを収集します
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
# コンテンツが受信されたら、応答の生成を開始します
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20 + "\n")
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content応答
====================推論プロセス====================
ユーザーは中国語で「あなたは誰ですか」と尋ねました。
中国語で返信し、AI アシスタントとして自己紹介する必要があります。
====================完全な応答====================
こんにちは!私は AI アシスタントの MiniMax-M2.5 です。質問に答えたり、情報を提供したり、会話をしたりすることができます。何かお手伝いできることはありますか?Node.js
コード例
import OpenAI from "openai";
import process from 'process';
// OpenAI クライアントを初期化します
const openai = new OpenAI({
// 環境変数が設定されていない場合は、値を Alibaba Cloud Model Studio の API キーに置き換えてください: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = ''; // 完全な推論プロセス
let answerContent = ''; // 完全な応答
let isAnswering = false; // 応答フェーズが開始されたかどうかを示します
async function main() {
const messages = [{ role: 'user', content: 'Who are you' }];
const stream = await openai.chat.completions.create({
model: 'MiniMax-M2.5',
messages,
stream: true,
});
console.log('\n' + '='.repeat(20) + '推論プロセス' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (chunk.choices?.length) {
const delta = chunk.choices[0].delta;
// 推論コンテンツのみを収集します
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) {
process.stdout.write(delta.reasoning_content);
}
reasoningContent += delta.reasoning_content;
}
// コンテンツが受信されたら、応答の生成を開始します
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + '完全な応答' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
}
}
main();応答
====================推論プロセス====================
ユーザーは中国語で「あなたは誰ですか」と尋ねました。
中国語で返信し、AI アシスタントとして自己紹介する必要があります。
====================完全な応答====================
こんにちは!私は AI アシスタントの MiniMax-M2.5 です。質問に答えたり、情報を提供したり、会話をしたりすることができます。何かお手伝いできることはありますか?HTTP
コード例
curl
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M2.5",
"messages": [
{
"role": "user",
"content": "Who are you"
}
]
}'レスポンス
{
"choices": [
{
"message": {
"content": "こんにちは!私は MiniMax によって開発された AI アシスタント、MiniMax-M2.5 です。質問への回答、情報の提供、会話、さまざまなテキスト関連タスクの完了をお手伝いします。何かお手伝いできることはありますか?",
"reasoning_content": "ユーザーは中国語で「あなたは誰ですか」と尋ねました。\n\n私は中国語で返信し、自己紹介する必要があります。",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 40,
"completion_tokens": 72,
"total_tokens": 112,
"completion_tokens_details": {
"reasoning_tokens": 26
},
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"created": 1771944590,
"system_fingerprint": null,
"model": "MiniMax-M2.5",
"id": "chatcmpl-b1277a9c-52da-9de7-988a-d5c063d83xxx"
}DashScope
Python
コード例
import os
from dashscope import Generation
# リクエストパラメーターを初期化します
messages = [{"role": "user", "content": "Who are you?"}]
completion = Generation.call(
# 環境変数が設定されていない場合は、値を Alibaba Cloud Model Studio の API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="MiniMax-M2.5",
messages=messages,
result_format="message", # 結果のフォーマットを message に設定
stream=True, # ストリーミング出力を有効化
incremental_output=True, # 増分出力を有効化
)
reasoning_content = "" # 完全な推論プロセス
answer_content = "" # 完全な応答
is_answering = False # 応答フェーズが開始されたかどうかを示します
print("\n" + "=" * 20 + "推論プロセス" + "=" * 20 + "\n")
for chunk in completion:
message = chunk.output.choices[0].message
# 推論コンテンツのみを収集します
if message.reasoning_content:
if not is_answering:
print(message.reasoning_content, end="", flush=True)
reasoning_content += message.reasoning_content
# コンテンツが受信されたら、応答の生成を開始します
if message.content:
if not is_answering:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20 + "\n")
is_answering = True
print(message.content, end="", flush=True)
answer_content += message.content
# ループが終了すると、reasoning_content と answer_content 変数に完全なコンテンツが格納されます。
# 必要に応じて、ここで後続の処理を実行できます。
# print(f"\n\n完全な推論プロセス:\n{reasoning_content}")
# print(f"\n完全な応答:\n{answer_content}")応答
====================推論プロセス====================
ユーザーは中国語で「あなたは誰ですか」と尋ねました。
中国語で返信し、AI アシスタントとして自己紹介する必要があります。
====================完全な応答====================
こんにちは!私は AI アシスタントの MiniMax-M2.5 です。質問に答えたり、情報を提供したり、会話をしたりすることができます。何かお手伝いできることはありますか?Java
コード例
// DashScope SDK バージョン >= 2.19.4
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(GenerationResult message) {
String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (reasoning!= null&&!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================推論プロセス====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (content!= null&&!content.isEmpty()) {
finalContent.append(content);
if (!isFirstPrint) {
System.out.println("\n====================完全な応答====================");
isFirstPrint = true;
}
System.out.print(content);
}
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// 環境変数が設定されていない場合は、次の行を Alibaba Cloud Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("MiniMax-M2.5")
.incrementalOutput(true)
.resultFormat("message")
.messages(Arrays.asList(userMsg))
.build();
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
streamCallWithMessage(gen, userMsg);
// 最終結果を出力
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================完全な応答====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}応答
====================推論プロセス====================
ユーザーは中国語で「あなたは誰ですか」と尋ねました。
中国語で返信し、AI アシスタントとして自己紹介する必要があります。
====================完全な応答====================
こんにちは!私は AI アシスタントの MiniMax-M2.5 です。質問に答えたり、情報を提供したり、会話をしたりすることができます。何かお手伝いできることはありますか?HTTP
コード例
curl
curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M2.5",
"input":{
"messages":[
{
"role": "user",
"content": "Who are you?"
}
]
},
"parameters": {
"result_format": "message"
}
}'応答
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"content": "こんにちは!私は MiniMax によって開発された AI アシスタント、MiniMax-M2.5 です。質問への回答、情報の提供、会話をお手伝いします。何かお手伝いできることはありますか?",
"reasoning_content": "ユーザーは中国語で「あなたは誰ですか?」と尋ねました。\n\n私は中国語で返信し、自己紹介する必要があります。私は MiniMax によって開発された AI アシスタント、MiniMax-M2.5 であると述べるべきです。",
"role": "assistant"
}
}
]
},
"usage": {
"input_tokens": 41,
"output_tokens": 79,
"output_tokens_details": {
"reasoning_tokens": 39
},
"prompt_tokens_details": {
"cached_tokens": 0
},
"total_tokens": 120
},
"request_id": "1bbd770e-564a-4601-83fc-3bf639423xxx"
}その他の機能
モデル | |||||||
MiniMax-M2.5 | 暗黙的キャッシュのみ対応しています。 |
デフォルトのパラメーター値
モデル | temperature | top_p | presence_penalty |
MiniMax-M2.5 | 1.0 | 0.95 | 0.0 |
モデルリストと課金
MiniMax-M2.5 モデルは、プログラミング、事務作業、テキスト要約などのタスクに優れており、応答も高速です。このモデルを推奨します。
モデルのコンテキスト長と料金の詳細については、「モデルリスト」をご参照ください。
課金は、入力トークンと出力トークンの数に基づいて行われます。
エラーコード
モデルの呼び出しに失敗し、エラーメッセージが返された場合は、エラーを解決するにはエラーメッセージをご参照ください。