上傳文件到向量儲存
批次操作將檔案內容上傳至向量儲存
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 個文件之間以獲得最佳性能。單個請求中的文件過多會增加超時的風險。
實施速率限制:在批次之間添加延遲(建議 2-3 秒)以避免觸及 API 速率限制。
添加錯誤重試邏輯:對於生產系統,對失敗的上傳實施重試邏輯,並使用指數退避。
驗證文件類型:在嘗試上傳之前,預先過濾文件以確保它們是支持的類型。
監控批次進度:對於面向用戶的應用程序,提供批次操作的進度反饋。
處理部分成功:API 可能會返回 207 狀態碼以表示部分成功。始終檢查單個文檔的狀態。
清理資源:確保所有文件句柄在發生錯誤時正確關閉。
明智地並行化:對於非常大的上傳(數千個文件),考慮針對不同的向量存儲進行多個並發批次處理,然後在需要時合併結果。
實施校驗和:對於關鍵數據,在上傳前後使用校驗和驗證文件完整性。
記錄全面結果:保持所有上傳操作的詳細日誌以便故障排除。
通過遵循這些最佳實踐,您可以有效地管理大規模文檔的攝取到您的向量存儲中。
Last updated