データマイニングモデルは、情報抽出、コンテンツモデレーション、分類、および要約生成用に設計されています。汎用的な対話モデルとは異なり、このモデルは JSON フォーマットなどの標準化された構造化データを迅速かつ正確に出力します。これにより、汎用モデルが非標準の応答構造を返したり、情報を不正確に抽出したりする問題に対処します。
このドキュメントは、中国 (北京) リージョンにのみ適用されます。中国 (北京) リージョンの API キー を使用する必要があります。
メソッド
Qwen-Doc-Turbo は、次の 3 つのメソッドを使用してファイルから情報を抽出することをサポートしています。
ファイル URL の受け渡し (推奨):
API リクエストでファイルの公開 URL を直接提供することで、モデルがコンテンツにアクセスして解析できるようになります。このメソッドは一度に最大 10 個のファイルの受け渡しをサポートし、複数のファイルを処理できる唯一のメソッドです。file_parsing_strategy パラメーターを使用して、解析ポリシー (auto、text_only、または text_and_images) を指定できます。
SDK: ファイル URL メソッドは現在、DashScope プロトコルのみをサポートしています。
DashScope Python SDKを使用するか、curl などの HTTP 呼び出しを行うことができます。
ファイル ID の受け渡し:
ローカルファイルを Alibaba Cloud Model Studio プラットフォームにアップロードして、Alibaba Cloud アカウントの一意の
file-idを生成し、解析プロセスを開始できます。その後、後続の API リクエストでこの ID を参照できます。このメソッドはOpenAI SDKと互換性があります。同じファイルを再利用したり、ローカルファイルを処理したりする必要があるシナリオに適しています。SDK: ファイルのアップロードと管理には
OpenAI SDKを使用できます。モデルの呼び出しは、OpenAI SDKとDashScope SDKの両方と互換性があります。
プレーンテキストの受け渡し:
短文または一時的なテキストコンテンツの場合、
systemメッセージの一部として直接渡すことができます。SDK:
OpenAI SDKおよびDashScope SDKと互換性があります。
前提条件
API キーを取得して設定するための準備を完了し、API キーを環境変数として設定します (非公開にして API キーの設定にマージ予定)。
ソフトウェア開発キット (SDK) を使用してモデルを呼び出す場合は、OpenAI SDK または DashScope SDK をインストールする必要があります。
ファイル URL の受け渡し
ファイル URL を使用して構造化データを直接抽出できます。1 回のリクエストで最大 10 個のファイルを処理できます。この例では、customer_feedback_report.txt ファイルを使用します。
ファイル URL メソッドは現在、DashScope プロトコルのみをサポートしています。DashScope Python SDK を使用するか、curl などの HTTP 呼び出しを行うことができます。
import os
import dashscope
response = dashscope.Generation.call(
api_key=os.getenv('DASHSCOPE_API_KEY'), # 環境変数を設定していない場合は、API キーに置き換えてください
model='qwen-doc-turbo',
messages=[
{"role": "system","content": "You are a helpful assistant."},
{
"role": "user",
"content": [
{
"type": "text",
"text": "この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。"
},
{
"type": "doc_url",
"doc_url": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250910/gokhyx/%E5%AE%A2%E6%88%B7%E5%8F%8D%E9%A6%88%E6%8A%A5%E5%91%8A.txt"
],
"file_parsing_strategy": "auto"
}
]
}]
)
try:
if response.status_code == 200:
print(response.output.choices[0].message.content)
else:
print(f"リクエストに失敗しました、状態コード: {response.status_code}")
print(f"エラーコード: {response.code}")
print(f"エラーメッセージ: {response.message}")
print("詳細については、https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-codes をご参照ください")
except Exception as e:
print(f"エラーが発生しました: {e}")
print("詳細については、https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-codes をご参照ください")
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $DASHSCOPE_API_KEY' \
--header 'X-DashScope-SSE: enable' \
--data '{
"model": "qwen-doc-turbo",
"input": {
"messages": [
{
"role": "system",
"content": "you are a helpful assistant."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。"
},
{
"type": "doc_url",
"doc_url": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250910/gokhyx/%E5%AE%A2%E6%88%B7%E5%8F%8D%E9%A6%88%E6%8A%A5%E5%91%8A.txt"
],
"file_parsing_strategy": "auto"
}
]
}
]
}
}'
ファイル ID の受け渡し
ファイルのアップロード
この例では、customer_feedback_report.txt ファイルを使用します。OpenAI 互換インターフェイスを介してファイルを Alibaba Cloud Model Studio のセキュアバケットにアップロードし、返された file-id を取得します。ファイルアップロードインターフェイスのパラメーターと呼び出しメソッドの詳細については、「API リファレンス」をご参照ください。
Python
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # 環境変数を設定していない場合は、API キーに置き換えてください
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # DashScope サービスベース URL を入力してください
)
file_object = client.files.create(file=Path("customer_feedback_report.txt"), purpose="file-extract")
# 後続のモデル会話で使用するために file-id を出力します
print(file_object.id)
Java
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.files.*;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
// ファイルパスを設定します。必要に応じてパスとファイル名を変更してください。
Path filePath = Paths.get("src/main/java/org/example/customer_feedback_report.txt");
// ファイルアップロードパラメーターを作成します
FileCreateParams fileParams = FileCreateParams.builder()
.file(filePath)
.purpose(FilePurpose.of("file-extract"))
.build();
// ファイルをアップロードして file-id を出力します
FileObject fileObject = client.files().create(fileParams);
// 後続のモデル会話で使用するために file-id を出力します
System.out.println(fileObject.id());
}
}curl
curl --location --request POST 'https://dashscope.aliyuncs.com/compatible-mode/v1/files' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"customer_feedback_report.txt"' \
--form 'purpose="file-extract"'コードを実行して、アップロードされたファイルの file-id を取得します。
ファイル ID を使用した情報の受け渡しと会話の開始
取得した file-id をシステムメッセージに埋め込みます。最初のシステムメッセージはモデルのロールを設定します。後続のシステムメッセージは file-id を渡します。ユーザーメッセージには、ファイルに関する具体的なクエリが含まれます。
import os
from openai import OpenAI, BadRequestError
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # 環境変数を設定していない場合は、API キーに置き換えてください
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
try:
completion = client.chat.completions.create(
model="qwen-doc-turbo",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
# '{FILE_ID}' を実際の会話シナリオで使用される file-id に置き換えてください
{'role': 'system', 'content': 'fileid://{FILE_ID}'},
{'role': 'user', 'content': 'この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。'}
],
# このコード例では、ストリーミング出力を使用して、モデルの出力プロセスを明確かつ直感的に示します。非ストリーミング出力の例については、https://www.alibabacloud.com/help/en/model-studio/user-guide/text-generation をご参照ください
stream=True,
stream_options={"include_usage": True}
)
full_content = ""
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content:
full_content += chunk.choices[0].delta.content
print(chunk.model_dump())
print(full_content)
except BadRequestError as e:
print(f"エラーメッセージ: {e}")
print("詳細については、https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-codes をご参照ください")import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.http.StreamResponse;
import com.openai.models.chat.completions.*;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します
OpenAIClient client = OpenAIOkHttpClient.builder()
// 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください: .apiKey("sk-xxx");
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
ChatCompletionCreateParams chatParams = ChatCompletionCreateParams.builder()
.addSystemMessage("You are a helpful assistant.")
// '{FILE_ID}' を実際の会話シナリオで使用される file-id に置き換えてください
.addSystemMessage("fileid://{FILE_ID}")
.addUserMessage("この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。")
.model("qwen-doc-turbo")
.build();
try (StreamResponse<ChatCompletionChunk> streamResponse = client.chat().completions().createStreaming(chatParams)) {
streamResponse.stream().forEach(chunk -> {
String content = chunk.choices().get(0).delta().content().orElse("");
if (!content.isEmpty()) {
System.out.print(content);
}
});
} catch (Exception e) {
System.err.println("エラーメッセージ: " + e.getMessage());
}
}
}curl --location 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-doc-turbo",
"messages": [
{"role": "system","content": "You are a helpful assistant."},
{"role": "system","content": "fileid://{FILE_ID}"},
{"role": "user","content": "この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。"}
],
"stream": true,
"stream_options": {
"include_usage": true
}
}'プレーンテキストの受け渡し
file-id を使用してファイル情報を渡すだけでなく、ファイルコンテンツを文字列として直接渡すこともできます。この方法を使用する場合、モデルがロール設定とファイルコンテンツを混同しないように、ロール設定情報が messages 配列の最初のメッセージに含まれていることを確認してください。
API リクエストボディのサイズ制限のため、テキストコンテンツが 9,000 トークンを超える場合は、ファイル ID を使用して情報を渡してください。
import os
from openai import OpenAI, BadRequestError
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # 環境変数を設定していない場合は、API キーに置き換えてください
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
try:
completion = client.chat.completions.create(
model="qwen-doc-turbo",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'system', 'content': 'フィードバック ID: 001 ユーザー: Zhang Wei (vip_zhang@example.com) プロダクト: Model Studio AI-Writer Pro...'},
{'role': 'user', 'content': 'この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。'}
],
# このコード例では、ストリーミング出力を使用して、モデルの出力プロセスを明確かつ直感的に示します。非ストリーミング出力の例については、https://www.alibabacloud.com/help/en/model-studio/user-guide/text-generation をご参照ください
stream=True,
stream_options={"include_usage": True}
)
full_content = ""
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content:
full_content += chunk.choices[0].delta.content
print(chunk.model_dump())
print(full_content)
except BadRequestError as e:
print(f"エラーメッセージ: {e}")
print("詳細については、https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-codes をご参照ください")import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.http.StreamResponse;
import com.openai.models.chat.completions.*;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します
OpenAIClient client = OpenAIOkHttpClient.builder()
// 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください: .apiKey("sk-xxx");
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
ChatCompletionCreateParams chatParams = ChatCompletionCreateParams.builder()
.addSystemMessage("You are a helpful assistant.")
.addSystemMessage("フィードバック ID: 001 ユーザー: Zhang Wei (vip_zhang@example.com) プロダクト: Model Studio AI-Writer Pro...")
.addUserMessage("この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。")
.model("qwen-doc-turbo")
.build();
try (StreamResponse<ChatCompletionChunk> streamResponse = client.chat().completions().createStreaming(chatParams)) {
streamResponse.stream().forEach(chunk -> {
String content = chunk.choices().get(0).delta().content().orElse("");
if (!content.isEmpty()) {
System.out.print(content);
}
});
} catch (Exception e) {
System.err.println("エラーメッセージ: " + e.getMessage());
}
}
}curl --location 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-doc-turbo",
"messages": [
{"role": "system","content": "You are a helpful assistant."},
{"role": "system","content": "フィードバック ID: 001 ユーザー: Zhang Wei (vip_zhang@example.com) プロダクト: Model Studio AI-Writer Pro..."},
{"role": "user","content": "この顧客フィードバックレポートから、すべてのフィードバック情報を抽出し、標準の JSON 配列に整理してください。各オブジェクトには、feedback_id (文字列)、product_name (文字列)、user_name (文字列)、rating_score (1 から 5 までの整数)、feedback_type (文字列)、および summary (30 文字以内の中国語の要約) を含める必要があります。"}
],
"stream": true,
"stream_options": {
"include_usage": true
}
}'モデルの料金
モデル名 | コンテキスト長 | 最大入力 | 最大出力 | 入力コスト | 出力コスト | 無料クォータ |
(トークン) | (1,000,000 トークンあたり) | |||||
qwen-doc-turbo | 262,144 | 253,952 | 8,192 | $0.087 | $0.144 | 無料クォータなし |
よくある質問
OpenAI 互換ファイルインターフェイスを介してアップロードされたファイルはどこに保存されますか?
OpenAI 互換ファイルインターフェイスを介してアップロードされたすべてのファイルは、Alibaba Cloud アカウント下の Alibaba Cloud Model Studio バケットに無料で保存されます。アップロードされたファイルのクエリと管理方法の詳細については、「OpenAI ファイルインターフェイス」をご参照ください。
ファイル URL メソッドを使用してアップロードする場合、file_parsing_strategy パラメーターのオプションの違いは何ですか?
解析ストラテジーが "auto" に設定されている場合、システムはファイルの内容に基づいて自動的に解析します。"text_only" に設定されている場合、システムはテキストコンテンツのみを解析します。"text_and_images" に設定されている場合、システムはすべての画像とテキストコンテンツを解析するため、解析時間が増加します。
ファイルの解析が完了したかどうかを判断するにはどうすればよいですか?
file-idを取得した後、そのfile-idを使用してモデルとの会話を開始してみてください。ファイルの解析が完了していない場合、システムはエラーコード 400 とメッセージ「File parsing in progress, please try again later.」を返します。モデルの呼び出しが成功し、応答が返された場合、ファイルの解析は完了しています。ファイルアップロード後の解析プロセスに追加費用はかかりますか?
ドキュメントの解析は無料です。
API リファレンス
Qwen-Doc-Turbo モデルの入出力パラメーターの詳細については、「Qwen API の詳細」をご参照ください。
エラーコード
呼び出しが失敗した場合は、「エラーメッセージ」をご参照ください。
制限事項
SDK の依存関係:
ファイル URL (doc_url): ファイル URL メソッドは現在、DashScope プロトコルのみをサポートしています。
DashScope Python SDKを使用するか、curl などの HTTP 呼び出しを行うことができます。ファイルのアップロード (file-id): ファイルのアップロードと管理操作は、
OpenAI互換 SDK を使用する必要があります。
ファイルのアップロードと参照:
ファイル URL (
doc_url): ファイルの URL。1 回のリクエストに最大 10 個のファイル URL を含めることができます。ファイルのアップロード (
file-id): 1 ファイルの最大サイズは 150 MB です。各 Alibaba Cloud アカウントは、アップロードされるファイルの数が 10,000 個、合計サイズが 100 GB までに制限されます。アップロードされたファイルは有効期限が切れません。各リクエストは 1 つのファイルのみを参照できます。サポートされているフォーマット: TXT、DOC、DOCX、PDF、XLS、XLSX、MD、PPT、PPTX、JPG、JPEG、PNG、GIF、および BMP。
API 入力:
doc_urlまたはfile-idを使用して情報を渡す場合、最大コンテキスト長は 262,144 トークンです。userまたはsystemメッセージに直接プレーンテキストを入力する場合、1 つのメッセージのコンテンツは 9,000 トークンに制限されます。
API 出力:
最大出力長は 8,192 トークンです。
ファイルの共有:
file-idは、それを生成した Alibaba Cloud アカウント内でのみ有効です。アカウント間で使用したり、RAM ユーザーの API キーを使用して呼び出したりすることはできません。
スロットリング: モデルのスロットリング条件の詳細については、「スロットリング」をご参照ください。