ファイルアップロードインターフェイスは、Qwen-Long および Qwen-Doc-Turbo モデルを使用したドキュメント Q&A およびデータ抽出のためにファイルをアップロードするために使用されます。また、バッチタスクの入力ファイルをアップロードするためにも使用できます。
使用方法
ファイルインターフェイスは、Python または Java の OpenAI SDK を使用するか、HTTP API 呼び出しを行うことで呼び出すことができます。サポートされている操作には、ファイルのアップロード、クエリ、削除が含まれます。
前提条件
Alibaba Cloud Model Studio API キー: API キーを作成し、API キーを環境変数としてエクスポートします。
OpenAI SDK を使用するには、OpenAI SDK をインストールします。
モデルの可用性
ファイル ID は、次のシナリオで使用できます:
Qwen-Long: 長文ドキュメントに対して Q&A を実行します。
Qwen-Doc-Turbo: ファイルからデータを抽出し、Q&A を実行します。
バッチ処理: バッチファイルをアップロードします。
使用方法
ファイルのアップロード
Model Studio ストレージスペースは、最大 10,000 ファイル、合計サイズ最大 100 GB をサポートします。ファイルに有効期限はありません。
ドキュメント分析用
`purpose` を file-extract に設定します。サポートされているファイル形式には、テキストファイル (TXT、DOCX、PDF、XLSX、EPUB、MOBI、MD、CSV、JSON など) と画像ファイル (BMP、PNG、JPG/JPEG、GIF、スキャンされた PDF など) が含まれます。単一ファイルの最大サイズは 150 MB です。
file_id を使用したドキュメント分析の詳細については、「ロングコンテキスト (Qwen-Long)」をご参照ください。
リクエストの例
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
# 環境変数を設定していない場合は、次の行を api_key="sk-xxx" に置き換え、Model Studio API キーを使用してください。
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
# test.txt はローカルのサンプルファイルです。
file_object = client.files.create(file=Path("test.txt"), purpose="file-extract")
print(file_object.model_dump_json())import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.FileCreateParams;
import com.openai.models.FileObject;
import com.openai.models.FilePurpose;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します。
OpenAIClient client = OpenAIOkHttpClient.builder()
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
// ファイルパスを設定します。必要に応じてパスとファイル名を変更してください。
Path filePath = Paths.get("src/main/java/org/example/test.txt");
// ファイルアップロードパラメーターを作成します。
FileCreateParams params = FileCreateParams.builder()
.file(filePath)
.purpose(FilePurpose.of("file-extract"))
.build();
// ファイルをアップロードします。
FileObject fileObject = client.files().create(params);
System.out.println(fileObject);
}
}# ======= 重要 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files に置き換えてください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"test.txt"' \
--form 'purpose="file-extract"'レスポンスの例
{
"id": "file-fe-xxx",
"bytes": 2055,
"created_at": 1729065448,
"filename": "test.txt",
"object": "file",
"purpose": "file-extract",
"status": "processed",
"status_details": null
}バッチ処理用
`purpose` を batch に設定する場合、入力ファイルは JSONL ファイルであり、バッチファイルの要件に準拠している必要があります。バッチタスクの単一ファイルの最大サイズは 500 MB です。
バッチ呼び出しの詳細については、「OpenAI 互換 - バッチ」をご参照ください。
リクエストの例
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
# 環境変数を設定していない場合は、次の行を api_key="sk-xxx" に置き換え、Model Studio API キーを使用してください。
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
# test.jsonl はローカルのサンプルファイルです。
file_object = client.files.create(file=Path("test.jsonl"), purpose="batch")
print(file_object.model_dump_json())import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.FileCreateParams;
import com.openai.models.FileObject;
import com.openai.models.FilePurpose;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します。
OpenAIClient client = OpenAIOkHttpClient.builder()
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
// ファイルパスを設定します。必要に応じてパスとファイル名を変更してください。
Path filePath = Paths.get("src/main/java/org/example/test.txt");
// ファイルアップロードパラメーターを作成します。
FileCreateParams params = FileCreateParams.builder()
.file(filePath)
.purpose(FilePurpose.of("batch"))
.build();
// ファイルをアップロードします。
FileObject fileObject = client.files().create(params);
System.out.println(fileObject);
}
}# ======= 重要 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files に置き換えてください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"test.jsonl"' \
--form 'purpose="batch"'レスポンスの例
{
"id": "file-batch-xxx",
"bytes": 231,
"created_at": 1729065815,
"filename": "test.jsonl",
"object": "file",
"purpose": "batch",
"status": "processed",
"status_details": null
}ファイル情報のクエリ
retrieve または GET メソッドで file_id を指定して、ファイル情報をクエリします。
OpenAI Python SDK
リクエストの例
import os
from openai import OpenAI
client = OpenAI(
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
file = client.files.retrieve(file_id="file-batch-xxx")
print(file.model_dump_json())レスポンスの例
{
"id": "file-batch-xxx",
"bytes": 27,
"created_at": 1722480306,
"filename": "test.txt",
"object": "file",
"purpose": "batch",
"status": "processed",
"status_details": null
}OpenAI Java SDK
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.FileObject;
import com.openai.models.FileRetrieveParams;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します。
OpenAIClient client = OpenAIOkHttpClient.builder()
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
// ファイルクエリパラメーターを作成します。必要に応じて fileId を置き換えてください。
FileRetrieveParams params= FileRetrieveParams.builder()
.fileId("file-batch-xxx")
.build();
//ファイルをクエリします。
FileObject fileObject = client.files().retrieve(params);
System.out.println(fileObject);
}
}
HTTP
エンドポイント
シンガポールリージョン: GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files/{file_id}
中国 (北京) リージョン: GET https://dashscope.aliyuncs.com/compatible-mode/v1/files/{file_id}リクエストの例
# ======= 重要 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx に置き換えてください。
# === 実行前にこのコメントを削除してください ===
curl -X GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx \
-H "Authorization: Bearer $DASHSCOPE_API_KEY"中国 (北京) リージョンのモデルを使用する場合、中国 (北京) リージョンの API KEY を使用し、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx に置き換える必要があります。
レスポンスの例
{
"id": "file-batch-xxx",
"object": "file",
"bytes": 499719,
"created_at": 1715935833,
"filename": "test.txt",
"purpose": "batch",
"status": "processed"
}ファイルリストのクエリ
アップロードインターフェイスを介してアップロードされたファイルやバッチからの結果ファイルなど、すべてのファイルに関する情報を返します。
この操作は、より多くのフィルタリングパラメーターをサポートしています。詳細については、「パラメーターの説明」をご参照ください。
OpenAI Python SDK
リクエストの例
import os
from openai import OpenAI
client = OpenAI(
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
file_stk = client.files.list(after="file-batch-xxx",limit=20)
print(file_stk.model_dump_json())レスポンスの例
{
"data": [
{
"id": "file-batch-xxx",
"bytes": 27,
"created_at": 1722480543,
"filename": "test.txt",
"object": "file",
"purpose": "batch",
"status": "processed",
"status_details": null
},
{
"id": "file-batch-yyy",
"bytes": 431986,
"created_at": 1718089390,
"filename": "test.pdf",
"object": "file",
"purpose": "batch",
"status": "processed",
"status_details": null
}
],
"object": "list",
"has_more": false
}OpenAI Java SDK
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.FileListPage;
import com.openai.models.FileListParams;
public class Main {
public static void main(String[] args) {
// クライアントを作成し、環境変数から API キーを使用します。
OpenAIClient client = OpenAIOkHttpClient.builder()
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
// ファイルリストのクエリパラメーターを作成します。
FileListParams params = FileListParams.builder()
.after("file-batch-xxx")
.limit(20)
.build();
//ファイルリストをクエリします。
FileListPage file_stk = client.files().list(params);
System.out.println(file_stk);
}
}
HTTP
エンドポイント
シンガポールリージョン: GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files
中国 (北京) リージョン: GET https://dashscope.aliyuncs.com/compatible-mode/v1/filesリクエストの例
# ======= 重要 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files に置き換えてください。
# === 実行前にこのコメントを削除してください ===
curl -X GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files \
-H "Authorization: Bearer $DASHSCOPE_API_KEY"中国 (北京) リージョンのモデルを使用する場合、中国 (北京) リージョンの API KEY を使用し、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files に置き換える必要があります。
レスポンスの例
{
"object": "list",
"has_more": true,
"data": [
{
"id": "file-batch-xxx",
"object": "file",
"bytes": 84889,
"created_at": 1715569225,
"filename": "example.txt",
"purpose": "batch",
"status": "processed"
},
{
"id": "file-batch-yyy",
"object": "file",
"bytes": 722355,
"created_at": 1715413868,
"filename": "Agent_survey.pdf",
"purpose": "batch",
"status": "processed"
}
]
}ファイルの削除
指定された file_id のファイルを削除します。ファイルリストのクエリ API を使用してファイル情報をクエリできます。
OpenAI Python SDK
リクエストの例
import os
from openai import OpenAI
client = OpenAI(
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
file_object = client.files.delete("file-batch-xxx")
print(file_object.model_dump_json())レスポンスの例
{
"object": "file",
"deleted": true,
"id": "file-batch-xxx"
}OpenAI Java SDK
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.FileDeleteParams;
import com.openai.models.FileListPage;
import com.openai.models.FileListParams;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください。
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
FileDeleteParams params = FileDeleteParams.builder()
.fileId("file-batch-xxx")
.build();
System.out.println(client.files().delete(params));
}
}
HTTP
エンドポイント
シンガポールリージョン: DELETE https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files/{file_id}
中国 (北京) リージョン: https://dashscope.aliyuncs.com/compatible-mode/v1/files/{file_id}リクエストの例
# ======= 重要 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx に置き換えてください。
# === 実行前にこのコメントを削除してください ===
curl -X DELETE https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" 中国 (北京) リージョンのモデルを使用する場合、中国 (北京) リージョンの API KEY を使用し、URL を https://dashscope.aliyuncs.com/compatible-mode/v1/files/file-batch-xxx に置き換える必要があります。
レスポンスの例
{
"object": "file",
"deleted": true,
"id": "file-batch-oLIon7bzfxELqJBTS5okwC4E"
}課金
ファイルのアップロード、ストレージ、クエリ操作は無料です。課金対象は、モデルを呼び出す際に使用される入力トークンと出力トークンのみです。
レート制限
ファイルアップロードインターフェイスの 1 秒あたりのクエリ数 (QPS) 制限は 3 です。ファイル情報のクエリ、ファイルリストのクエリ、およびファイル削除インターフェイスの合計 QPS 制限は 10 です。
本番稼働
定期的なクリーンアップ: 10,000 ファイルの制限に達しないように、未使用のファイルを定期的に削除します。
ステータスチェック: ファイルをアップロードした後、そのステータスを確認します。ファイルを使用する前に、
statusがprocessedであることを確認してください。レート制限の確認: ファイルアップロードインターフェイスの QPS 制限は 3 です。ファイル情報のクエリ、ファイルリストのクエリ、およびファイル削除インターフェイスの合計 QPS 制限は 10 です。
エラー処理: ネットワークエラー、API エラー、その他の問題に対する包括的な例外処理メカニズムを実装します。
よくある質問
1. アップロード後、ファイルステータスが「処理中」のままの場合はどうすればよいですか?
ファイルの処理には時間がかかりますが、通常は数秒で完了します。ステータスが長期間「処理中」のままである場合:
ファイル形式がサポートされているかどうかを確認します。
ファイルサイズが制限を超えていないか確認します。
retrieveAPI を使用して、ステータスを定期的にクエリします。
2. ファイル ID は異なるアカウント間で共有できますか?
いいえ、できません。ファイル ID は、それを生成した Alibaba Cloud アカウント内でのみ有効であり、アカウント間で共有することはできません。
3. アップロードされたファイルは永久に保存されますか?
はい、そうです。アップロードされたファイルは、削除しない限り、Alibaba Cloud アカウントに永久に保存されます。不要なファイルは定期的にクリーンアップしてください。
4. ファイルのアップロードが失敗する考えられる原因は何ですか?
API キーが無効であるか、エクスポートされていません。
ファイル形式がサポートされていません。
ファイルサイズが制限を超えています (file-extract: 150 MB、batch: 500 MB)。
ファイルの最大数 (10,000) または合計サイズ制限 (100 GB) に達しました。
ファイルアップロードインターフェイスの QPS 制限を超えました。制限は 3 QPS です。
5. purpose パラメーターには file-extract と batch のどちらを選択すべきですか?
file-extract: Qwen-Long または Qwen-Doc-Turbo を使用したドキュメント分析シナリオで使用します。batch: バッチタスクで使用します。ファイルは、フォーマット要件を満たす JSONL ファイルである必要があります。
パラメーターの説明
カテゴリ | パラメーター | タイプ | 必須 | 説明 | 例 |
ファイルアップロード | file | File | はい | アップロードするファイル。 | Path("test.txt") |
purpose | String | はい | アップロードされたファイルの目的を指定します。有効な値:
| "file-extract" | |
ファイルクエリ | file_id | String | はい | クエリするファイルの ID。 | "file-fe-xxx" |
after | String | いいえ | ファイルリストのクエリタスクでのページネーションに使用されるカーソル。
たとえば、クエリが 20 レコードを返し、最後の `file_id` が `file-batch-xxx` の場合、次のクエリで | "file-fe-xxx" | |
create_before | String | いいえ | ファイルリストのクエリタスクで、文字列形式のタイムスタンプ。指定された時間より前に作成されたファイル ID をフィルタリングして返します。 |
| |
create_after | String | いいえ | ファイルリストのクエリタスクで、文字列形式のタイムスタンプ。指定された時間より後に作成されたファイル ID をフィルタリングして返します。 |
| |
purpose | String | いいえ | ファイルリストのクエリタスクで、目的別にファイルをフィルタリングします。指定された目的 ( | "batch" | |
limit | Integer | いいえ | ファイルリストのクエリタスクで、クエリごとに返されるファイルの数。値の範囲は 1 から 2,000 で、デフォルト値は 2,000 です。 | 2000 | |
ファイル削除 | file_id | String | はい | 削除するファイルの ID。 | "file-fe-xxx" |
レスポンスパラメーター | |||||
共通のレスポンスパラメーター | id | String | \ | ファイルの識別子。 ファイルの削除タスクでは、これは正常に削除されたファイルの ID です。 | "file-fe-xxx" |
bytes | Integer | ファイルのサイズ (バイト単位)。 | 81067 | ||
created_at | Integer | ファイルが作成されたときの UNIX タイムスタンプ (秒単位)。 | 1617981067 | ||
filename | String | アップロードされたファイルの名前。 | "text.txt" | ||
object | String | オブジェクトタイプ。 ファイルリストのクエリタスクの場合、値は常に "list" です。 他のタスクでは、これは常に "file" です。 | "file" | ||
purpose | String | ファイルの目的。有効な値は | "file-extract" | ||
status | String | ファイルの現在のステータス。 | "processed" | ||
ファイルリストのクエリ | has_more | Boolean | データの次のページがあるかどうかを示します。 | false | |
data | Array | 返されたファイルのリスト。リスト内の各要素のフォーマットは、共通のレスポンスパラメーターと一致します。 | | ||
ファイルの削除 | deleted | Boolean | 削除が成功したかどうかを示します。true の値は成功を示します。 | true | |
エラーコード
呼び出しが失敗した場合のトラブルシューティングについては、「エラーメッセージ」をご参照ください。