name: baidu-doc-pipeline-parser 百度文件解析 description: 呼叫百度文件解析API解析文件。支援PDF、Word、Excel、PPT、圖片等18+格式。提取文本、表格、版面分析、OCR識別及RAG文件分塊。當用戶需要解析文件、提取文本/表格、分析文件結構、處理掃描件時使用。觸發詞:文件解析、PDF解析、Word解析、表格提取、OCR、文件分析、提取文本、文件結構、掃描識別。 license: MIT
基於百度智慧文件分析平臺 API,提供文件解析能力。
當用戶需要: - 解析 PDF、Word、Excel 等格式文件 - 從文件中提取文本內容 - 識別並提取表格資料 - 分析文件結構(標題層級、章節、版面佈局) - 對掃描件進行 OCR 文字識別 - 將文件分塊用於 RAG 應用
| 使用者型別 | 免費額度 |
|---|---|
| 個人實名認證使用者 | 200 頁 |
| 企業實名認證使用者 | 1000 頁 |
使用前請設定以下環境變數:
export BAIDU_DOC_AI_API_KEY="your_api_key"
export BAIDU_DOC_AI_SECRET_KEY="your_secret_key"
通過 API Key 和 Secret Key 獲取 access_token,有效期 30 天。
版式文件:pdf, jpg, jpeg, png, bmp, tif, tiff, ofd, ppt, pptx
流式文件:doc, docx, txt, xls, xlsx, wps, html, mhtml
CHN_ENG(中英文)、JAP(日語)、KOR(韓語)、FRE(法語)、SPA(西班牙語)、POR(葡萄牙語)、GER(德語)、ITA(義大利語)、RUS(俄語)、DAN(丹麥語)、DUT(荷蘭語)、MAL(馬來語)、SWE(瑞典語)、IND(印尼語)、POL(波蘭語)、ROM(羅馬尼亞語)、TUR(土耳其語)、GRE(希臘語)、HUN(匈牙利語)、THA(泰語)、VIE(越南語)、ARA(阿拉伯語)、HIN(印地語)
python3 scripts/baidu_doc_parser.py --file_data <檔案的base64編碼>
python3 scripts/baidu_doc_parser.py --file_url <檔案公網URL>
文件解析 API 服務為非同步介面,需要先呼叫提交請求介面獲取 task_id,然後呼叫獲取結果介面進行結果輪詢。
https://aip.baidubce.com/rest/2.0/brain/online/v2/parser/task?access_token={token}application/x-www-form-urlencodedhttps://aip.baidubce.com/rest/2.0/brain/online/v2/parser/task/query?access_token={token}application/x-www-form-urlencodedtask_id(必填,提交請求時返回的 task_id)| 引數 | 必選 | 型別 | 說明 |
|---|---|---|---|
file_data |
和 file_url 二選一 | string | 檔案 Base64 編碼資料。版式文件:pdf, jpg, jpeg, png, bmp, tif, tiff, ofd, ppt, pptx;流式文件:doc, docx, txt, xls, xlsx, wps, html, mhtml。文件大小不超過 50M,PDF 最大支援 2000 頁。若文件大小超過 50M,須從 file_url 方式上傳。優先順序:file_data > file_url |
file_url |
和 file_data 二選一 | string | 檔案資料 URL,長度不超過 1024 位元組,支援單個 URL 傳入。PDF 文件大小不超過 300MB,非 PDF 不超過 50M,PDF 最大支援 2000 頁。請注意關閉 URL 防盜鏈 |
file_name |
是 | string | 檔名,請保證檔名字尾正確,例如 "1.pdf" |
| 引數 | 必選 | 型別 | 可選值範圍 | 說明 |
|---|---|---|---|---|
recognize_formula |
否 | bool | True/False | 是否對版式型別文件進行公式識別 |
analysis_chart |
否 | bool | True/False | 是否對統計圖表進行解析 |
angle_adjust |
否 | bool | True/False | 是否對圖片進行角度矯正 |
parse_image_layout |
否 | bool | True/False | 是否返回文件中的圖片位置資訊 |
| 引數 | 必選 | 型別 | 說明 |
|---|---|---|---|
language_type |
否 | string | 識別語種類型,預設為 CHN_ENG(中英文) |
switch_digital_width |
否 | string | 是否對數字進行全半形轉換,預設為 auto。可選:auto(不轉換)、half(半形輸出)、full(全形輸出) |
html_table_format |
否 | bool | 是否將識別出的表格轉換為 HTML 格式返回,default=True |
return_doc_chunks 為字典型別,用於返回文件切分後的片段資料(按語義、字數、標點):
| 引數 | 必選 | 型別 | 預設值 | 說明 |
|---|---|---|---|---|
switch |
否 | bool | False | 是否進行文件內容切分 |
split_type |
否 | str | chunk | 切分方式:chunk(按 chunk_size 來切)/ mark(按 separators 來切) |
separators |
否 | list | ['。',';','!','?',';','!','?'] | 切分標點 |
chunk_size |
否 | int | -1 | 切分塊的大小,-1 表示按照語義自動切分,不限定塊的大小 |
| 欄位 | 型別 | 說明 |
|---|---|---|
log_id |
uint64 | 唯一的 log id,用於問題定位 |
error_code |
int | 錯誤碼 |
error_msg |
string | 錯誤描述資訊 |
result.task_id |
string | 該請求生成的 task_id,後續使用該 task_id 獲取審查結果 |
| 欄位 | 型別 | 說明 |
|---|---|---|
log_id |
uint64 | 唯一的 log id |
error_code |
int | 錯誤碼 |
error_msg |
string | 錯誤描述資訊 |
result.task_id |
string | 任務 ID |
result.status |
string | 任務狀態:pending(排隊中)、processing(執行中)、success(成功)、failed(失敗) |
result.task_error |
string | 解析報錯資訊,包含任務失敗、額度不夠 |
result.markdown_url |
string | 文件解析結果的 Markdown 格式連結,連結有效期 30 天 |
result.parse_result_url |
string | 文件解析結果的 BOS 連結(JSON),連結有效期 30 天 |
| 欄位 | 型別 | 說明 |
|---|---|---|
file_name |
string | 文件名稱 |
file_id |
string | 文件 ID |
pages |
list | 檔案單頁解析內容 |
chunks |
list | 檔案內容切分結果(return_doc_chunks.switch=True 時有值) |
| 欄位 | 型別 | 說明 |
|---|---|---|
page_id |
string | 頁碼 ID |
page_num |
int | 頁碼數 |
text |
string | 當前頁的所有純文字內容 |
layouts |
list | 頁面內容版式分析的結果 |
tables |
list | 頁面表格解析結果 |
images |
list | 頁面中圖片解析結果 |
meta |
dict | 頁元資訊 |
| 欄位 | 型別 | 說明 |
|---|---|---|
page_width |
int | 頁面寬度 |
page_height |
int | 頁面高度 |
is_scan |
bool | 是否掃描件 |
page_angle |
int | 頁面傾斜角度 |
page_type |
string | 頁面屬性:text(正文)、contents(目錄)、appendix(附錄)、others(其他) |
sheet_name |
string | Excel 的 sheet 名 |
| 欄位 | 型別 | 說明 |
|---|---|---|
layout_id |
string | layout 元素唯一標誌,格式 "xxxxx-layout-{global_layout_index}" |
text |
string | layout 對應的文本內容。注:當 type 為 table/image 時該欄位為空,需根據 type 和 layout_id 分別到 tables/images 欄位裡找到對應內容 |
position |
list | 元素在頁面中的位置 [x, y, w, h],左上角和寬高 |
type |
string | 版面元素型別(見下表) |
sub_type |
string | 版面元素子型別(見下表) |
parent |
string | 標題層級樹中父節點的 layout_id,若為一級標題則 parent 為 "root" |
children |
list | 標題層級樹中子節點的 layout_id 列表 |
版面型別(type):
| 型別 | 說明 |
|---|---|
para |
段落 |
table |
表格 |
image |
文件中的插圖 |
head_tail |
頁面頂部(頁首/頁尾) |
contents |
目錄 |
seal |
印章 |
title |
標題 |
formula |
公式 |
子型別(sub_type):
title_{n}(n 級標題,如 title_2 代表二級標題)、image_title(圖示題)、table_title(表標題)chart(統計圖表)、figure(普通插圖)、QR_code(二維碼)、Bar_code(條形碼)| 欄位 | 型別 | 說明 |
|---|---|---|
layout_id |
string | 與 layouts 中 type 為 table 的元素的 layout ID 對應 |
markdown |
string | 表格內容的 Markdown 形式 |
table_title_id |
list | 表格標題對應的 layout_id,預設為 null |
position |
list | 邊框資料 [x, y, w, h](以頁面座標為原點),版式格式時有效 |
cells |
list | 單元格的內版面資訊,layout 型別為表格時有值 |
matrix |
list | 二位陣列,表示表格內佈局位置資訊,每個元素對應 cells 列表中元素的索引 |
merge_table |
string | 跨頁表格標記:begin(開始)、inner(中間,超過兩頁)、end(結束);非跨頁表格該欄位為空 |
| 欄位 | 型別 | 說明 |
|---|---|---|
layout_id |
string | 與 layouts 中 type 為 image 的元素的 layout ID 對應 |
image_title_id |
list | 圖片標題對應的 layout_id,預設為 null |
position |
list | 邊框資料 [x, y, w, h] |
content_layouts |
list | 圖片的內版面資訊 |
data_url |
string | 圖片儲存連結 |
image_description |
string | 對統計圖表進行內容解析和描述,輸出結果為 JSON 字串 |
| 欄位 | 型別 | 說明 |
|---|---|---|
chunk_id |
string | 切片的 ID |
content |
string | 切片的內容 |
type |
string | 切片型別:text 或 table |
meta.title |
list | chunk 所屬的多級標題內容 |
meta.position |
list | chunk 的位置,根據分塊演算法有可能 chunk 跨多個頁 |
meta.box |
list | chunk 的位置座標 |
meta.page_num |
int | chunk 內容所在頁數 |
task_idtask_id 呼叫獲取結果介面輪詢| 限制項 | 說明 |
|---|---|
| 檔案大小(file_data) | ≤ 50MB,超過 50M 須使用 file_url |
| 檔案大小(file_url) | PDF ≤ 300MB,非 PDF ≤ 50MB |
| URL 長度 | ≤ 1024 位元組 |
| 頁數限制 | PDF ≤ 2000 頁 |
| 優先順序 | file_data > file_url(同時存在時 file_url 欄位失效) |
常見錯誤碼:
發現更多技能外掛,請訪問7w4.net。
| 錯誤碼 | 說明 | 解決方案 |
|---|---|---|
| 110/111 | access_token 無效或過期 | 重新獲取 access_token |
| 216200 | 檔案或 URL 為空 | 提供 file_data 或 file_url |
| 216201 | 檔案格式錯誤 | 檢查檔案格式是否支援 |
| 216202 | 檔案大小超限 | 縮減檔案大小 |
| 282000 | 內部錯誤 | 重試或聯絡技術支援 |
| 282003 | 缺少必要引數 | 檢查必填引數 |
| 282007 | 任務不存在 | 檢查 task_id 是否正確 |
| 282018 | 服務繁忙 | 降低請求頻率 |
完整錯誤碼參見 references/error_codes.md
可在 示例程式碼中心 申請試該介面,可進行簽名驗證、檢視線上呼叫的請求內容和返回結果、示例程式碼的自動生成。
scripts/baidu_doc_parser.py:文件解析主程式,支援命令列快速呼叫references/parameters.md:完整 API 引數與返回結構詳解references/error_codes.md:完整錯誤碼參考references/apikey-fetch.md:API Key 配置指南這個Skill質量不錯,文件寫得很詳細,功能覆蓋全面。支援解析PDF、Word、圖片等多種格式,還能提取表格和文字,中英文都識別準確。配置方法清晰,提供了Python指令碼可以直接使用。不過對於普通使用者來說,缺少具體的使用示例和實際效果展示,剛接觸時可能需要花些時間理解具體怎麼用。