返回结果
# คู่มือพนักงาน
## ๓. การลาพักร้อน
พนักงานที่ทำงานครบหนึ่งปีมีสิทธิลาพักร้อนได้
ปีละหกวันทำการ
### ๓.๑ การยื่นคำขอ
ยื่นล่วงหน้าไม่น้อยกว่าเจ็ดวัน标题层级以标题层级返回,分块程序因此可以按章节切分。
heading ข้อกำหนดทางเทคนิค
table 14 rows x 4 columns
paragraph ค่าที่ระบุเป็นค่าที่วัดที่อุณหภูมิห้อง表格保持为一个块,行列完整。检索到的答案可以引用整行。
## หน้า 1
# ประกาศ เรื่อง แนวปฏิบัติการเบิกจ่าย
## หน้า 2
๑. ให้ถือปฏิบัติตั้งแต่วันที่ ๑ ตุลาคม ๒๕๖๙
๒. ยกเลิกประกาศฉบับลงวันที่ ๑๕ มีนาคม ๒๕๖๗响应中各页保持分开。引用可以注明答案出自哪一页。
上方的读取结果用于说明响应格式,并非从模型实际采集。OCR 页面提供模型对真实样本的实录读取结果,并注明采集日期。
导入如何进行
检索的质量取决于索引里放进了什么。在泰国,助手需要知道的内容有很大一部分是扫描版 PDF。从这些页面提取出一整串扁平文字,索引会照单全收,助手引用起来却很糟糕。其中的标题、表格和分页边界都已消融殆尽。真正有用的读取,是带着完整结构返回的读取。
读取一次,为文字建索引
每份文档分批发送,每批最多 50 页。导入对每份文档只是一次性的费用。得到的文字归您所有,按您的技术栈习惯存储、分块和生成嵌入都可以。
按结构分块
按读取返回的标题切分。一个章节大小的分块,能把一条规定和它的例外放在一起,固定字符窗口迟早会把二者拆开。
引用页码
保留读取结果附带的页码。能说出答案出自哪一页的助手,阅读者才能核对。
结构能给分块程序带来什么
扁平文本 ...ครบหนึ่งปีมีสิทธิลาพักร้อนได้ปีละหกวันทำการ๓.๑ การยื่นคำขอยื่นล่วงหน้าไม่น้อยกว่าเจ็ดวัน... → 每 500 个字符切一刀,切在句中、条款中间 markdown ## ๓. การลาพักร้อน ### ๓.๑ การยื่นคำขอ → 按标题切分,每块一个章节
泰文书写时词与词之间没有空格。扁平提取的结果,除了字符数之外,不给切分程序任何下刀的依据。标题和表格则提供真实的边界。
一次导入任务的费用
| 工作量 | 页数 | 费用 |
|---|---|---|
| 一本手册(180 页) | 180 | $1.17 |
| 一次请求,达到 50 页上限 | 50 | $0.33 |
| 500 份文档的语料库 | 约 $39 | |
按每份文档 12 页、每页 6.5 积分计算,导入预算在写任何代码之前就能算出来。
之后的引用是什么样子
问题 ลาพักร้อนได้ปีละกี่วัน
片段 คู่มือพนักงาน · ๓. การลาพักร้อน · หน้า 12
答案 หกวันทำการต่อปี สำหรับพนักงาน
ที่ทำงานครบหนึ่งปี
页码来自读取结果,
所以阅读者可以翻到第 12 页核对响应中各页保持分开。页码随之进入索引,又随答案一起出来。能说出页码的助手,阅读者才能核实。
面向开发者
分块程序按标题切分时用 Markdown。如果您的流程更想直接遍历类型化块,免去重新解析,就用结构化输出。
完整 API 参考# Encode without line wrapping: wrapped base64 breaks the JSON string. DOC=$(base64 < invoice.pdf | tr -d '\n') # --max-time covers a multi-page document; curl defaults to no limit. curl -X POST https://api.paxalabs.com/v1/ocr \ --max-time 300 \ -H "Authorization: Bearer $PAXA_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"document\": \"$DOC\", \"model\": \"paxa-ocr-lite-v1\"}"
DOC=$(base64 < invoice.pdf | tr -d '\n') curl -X POST https://api.paxalabs.com/v1/ocr \ --max-time 300 \ -H "Authorization: Bearer $PAXA_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"document\": \"$DOC\", \"model\": \"paxa-ocr-lite-v1\", \"output\": \"structured\"}"
import base64 import os import requests with open("invoice.pdf", "rb") as file: document = base64.b64encode(file.read()).decode() response = requests.post( "https://api.paxalabs.com/v1/ocr", headers={"Authorization": f"Bearer {os.environ['PAXA_API_KEY']}"}, json={"document": document, "model": "paxa-ocr-lite-v1"}, # A multi-page document can run for minutes; give it room. timeout=300, ) response.raise_for_status() body = response.json() print(body["pages"][0]["markdown"], body["usage"]["credits"], "credits")
不用空格分词的语言,让简单分块吃亏
分块程序通常退而按字符数切分。在用空格分词的语言里,这样切大多落在词与词之间。泰文的词与词之间没有空格。固定窗口切到哪里算哪里,可能切在词中间,也可能切在数字中间。出路在于结构:返回标题、列表和表格的读取结果,为切分程序提供了文档本身设下的边界。
常见问题
你们也负责分块和生成嵌入吗?
不负责。这里只做读取。索引哪些内容、如何分块、用哪个嵌入模型,都留在您的技术栈里,那是它们该在的地方。
检索流程应该用哪种输出?
如果您的分块程序按标题切分(大多数都是),用 Markdown。如果您的流程更想直接遍历类型化块(标题、段落、列表、表格、图片),免去把 Markdown 再拆开,就用结构化输出。
已经是数字文本的文档呢?
如果 PDF 本身带有可靠的文字层,直接提取即可,还能省下积分。读取适用于没有文字层或文字层不可信的页面。
同一条流程能处理其他语言的文档吗?
读取处理的是送来的页面。如果语料是多语言的,而读者使用泰语,下一步就调用翻译 API:支持 14 种源语言译成泰语,并可附带文档自身的上下文。
从免费积分开始
使用 Google、GitHub 或 Hugging Face 登录,即可用 100 一次性免费积分处理您自己的文本。