ベクターストアにファイルをアップロード
ベクターストアにファイルコンテンツをバッチ操作でアップロードする
Upload files to a vector store.
The ID of the vector store.
The API key for authentication.
The files to upload.
Files uploaded successfully.
Some files failed to upload.
例リクエスト
curl -X POST \
https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/upload \
-H "x-api-key: YOUR_API_KEY" \
-F "files=@/path/to/document1.pdf" \
-F "files=@/path/to/document2.docx"const uploadFiles = async (vectorStoreId, files) => {
const formData = new FormData();
// 複数のファイルをフォームデータに追加
for (const file of files) {
formData.append('files', file);
}
const response = await fetch(`https://api.rememberizer.ai/api/v1/vector-stores/${vectorStoreId}/documents/upload`, {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY'
// 注意: Content-Type ヘッダーは設定しないでください。正しい境界で自動的に設定されます。
},
body: formData
});
const data = await response.json();
console.log(data);
};
// ファイル入力要素を使用した例
const fileInput = document.getElementById('fileInput');
uploadFiles('vs_abc123', fileInput.files);コンテンツタイプを決定するためのヘルパーメソッド
def get_content_type(filename) ext = File.extname(filename).downcase case ext when '.pdf' then 'application/pdf' when '.doc' then 'application/msword' when '.docx' then 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' when '.txt' then 'text/plain' when '.md' then 'text/markdown' when '.json' then 'application/json' else 'application/octet-stream' end end
使用例
result = upload_files('vs_abc123', ['/path/to/document1.pdf', '/path/to/document2.docx']) puts result
ファイルのアップロードに失敗した場合、それらは errors 配列にリストされます:
認証
このエンドポイントは、x-api-key ヘッダーを使用して API キーによる認証を必要とします。
サポートされているファイル形式
PDF (
.pdf)Microsoft Word (
.doc,.docx)Microsoft Excel (
.xls,.xlsx)Microsoft PowerPoint (
.ppt,.pptx)テキストファイル (
.txt)Markdown (
.md)JSON (
.json)HTML (
.html,.htm)
ファイルサイズ制限
個々のファイルサイズ制限: 50MB
総リクエストサイズ制限: 100MB
リクエストごとの最大ファイル数: 20
エラー応答
400
不正なリクエスト - ファイルが提供されていないか、リクエスト形式が無効です
401
認証エラー - 無効または欠落しているAPIキー
404
未検出 - ベクターストアが見つかりません
413
ペイロードが大きすぎます - ファイルがサイズ制限を超えています
415
サポートされていないメディアタイプ - ファイル形式がサポートされていません
500
内部サーバーエラー
207
マルチステータス - 一部のファイルは正常にアップロードされましたが、他は失敗しました
処理状況
ファイルは最初に processing のステータスで受け入れられます。ドキュメントの処理状況は、ベクトルストア内のドキュメントのリストを取得する エンドポイントを使用して確認できます。最終的なステータスは次のいずれかになります:
done: ドキュメントが正常に処理されましたerror: 処理中にエラーが発生しましたprocessing: ドキュメントはまだ処理中です
処理時間はファイルのサイズと複雑さに依存します。典型的な処理時間は、ドキュメントごとに30秒から5分の間です。
バッチ操作
複数のファイルを効率的にベクターストアにアップロードするために、Rememberizerはバッチ操作をサポートしています。このアプローチは、大量のドキュメントを扱う際のパフォーマンスを最適化するのに役立ちます。
バッチアップロードの実装
{% tabs %} {% tab title="Python" %}
{% endtab %}
{% tab title="JavaScript" %}
{% endtab %}
{% tab title="Ruby" %}
バッチアップロードのベストプラクティス
大量のファイルをアップロードする際のパフォーマンスと信頼性を最適化するために:
バッチサイズの管理: 最適なパフォーマンスのために、バッチサイズは5〜10ファイルに保ちます。1回のリクエストにファイルが多すぎると、タイムアウトのリスクが増加します。
レート制限の実装: バッチ間に遅延を追加します(2〜3秒推奨)して、APIのレート制限に達するのを避けます。
エラー再試行ロジックの追加: 本番システムでは、指数バックオフを用いた失敗したアップロードの再試行ロジックを実装します。
ファイルタイプの検証: アップロードを試みる前に、サポートされているタイプであることを確認するためにファイルを事前フィルタリングします。
バッチ進行状況の監視: ユーザー向けアプリケーションでは、バッチ操作の進行状況フィードバックを提供します。
部分的成功の処理: APIは部分的成功のために207ステータスコードを返す場合があります。常に個々のドキュメントのステータスを確認してください。
リソースのクリーンアップ: 特にエラーが発生した場合には、すべてのファイルハンドルが適切に閉じられていることを確認します。
賢く並列化: 非常に大きなアップロード(数千ファイル)では、異なるベクトルストアをターゲットにした複数の同時バッチプロセスを検討し、必要に応じて後で結果を統合します。
チェックサムの実装: 重要なデータについては、アップロード前後にチェックサムでファイルの整合性を確認します。
包括的な結果のログ: トラブルシューティングのために、すべてのアップロード操作の詳細なログを維持します。
これらのベストプラクティスに従うことで、ベクトルストアへの大規模なドキュメントの取り込みを効率的に管理できます。
Last updated