PDF.chat API
ສົ່ງເອກະສານ PDF ແລະ chat ກັບມັນຈາກແອັບຂອງທ່ານເອງ - ຖາມຄໍາຖາມແລະໄດ້ຮັບຄໍາຕອບທີ່ກ່າວເຖິງໃນຫນ້າ, ໃນ 100 + ພາສາ. ວັດແທກຕໍ່ຫນ້າ, ບໍ່ແປກໃຈ.
ເບິ່ງລວມ
PDF.chat API ແມ່ນ Interface REST ນ້ອຍ. ກ່ອນອື່ນ you POST ເອກະສານທີ່ຈະກິນມັນເຂົ້າໄປ ແລະຮັບວຽກກັບຄືນມາດ້ວຍຂໍ້ຄວາມຂອງເອກະສານ ແລະການແບ່ງອອກຕາມໜ້າ (ຂໍ້ຄວາມ, ກ່ອງຈຳກັດ, ຄວາມເຊື່ອຖື) POST ຄໍາຖາມຕໍ່ກັບວຽກທີ່ແລະໄດ້ຮັບຄໍາຕອບທີ່ຕັ້ງຢູ່ໃນເອກະສານ, ແຕ່ລະຄົນອ້າງອີງເຖິງຫນ້າທີ່ມັນມາຈາກ. ວຽກຂອງ5ຫນ້າຫຼືຫນ້ອຍກັບຄືນ inline; ວຽກທີ່ໃຫຍ່ກວ່າກັບຄືນທັນທີກັບ pending ສະຖານະທີ່ທ່ານປ່ອນບັດຈົນກວ່າ done.
- URL ພື້ນຖານ:
https://pdf.chat - ເອກະສານໃນ: PDF, ເພີ່ມຄໍາ, PowerPoint, ຂໍ້ຄວາມແລະຮູບພາບ (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat out: ຕອບກັບການອ້າງອີງໜ້າ; ຖ່າຍທອດຜ່ານຈຸດຈົບປະຫວັດ
- ຂໍ້ຄວາມທີ່ໄດ້ປະມວນຜົນອອກ:
txt,md,docx,pdf,csv,json - ເຄື່ອງຈັກອ່ານ:
cpu(ໄວ, ເອກະສານພິມ) ແລະvlm(AI ລະດັບສູງ, ການຂຽນດ້ວຍມື, ແຜນທີ່ສັບສົນ, ຄະນິດສາດ)
ການផ្ទៀងផ្ទាត់ຄວາມຖືກຕ້ອງ
ກວດສອບຄວາມຖືກຕ້ອງດ້ວຍຕົວທ່ານເອງ ຕົວແທນ API (ຊອກຫາມັນຢູ່ໃນຂອງທ່ານ ទំព័រບັນຊີ) ເປັນຫົວຂໍ້ຂອງຜູ້ຖື:
Authorization: Bearer YOUR_API_TOKEN
ທ່ານສາມາດສົ່ງຜ່ານໄດ້ ?api_token=… ຕົວເລືອກນີ້ຈະໃຊ້ເປັນປາຣາມເຕີການສອບຖາມທີ່ໃຊ້ງານໄດ້ໂດຍອີງໃສ່ການສົມດຸນຂອງໜ້າຂອງບັນຊີຂອງທ່ານ.
ສົ່ງເອກະສານ
POST /api/v1/ocr/, ສົ່ງແບບຟອມຫຼາຍສ່ວນຂຶ້ນໄປ
curl -X POST https://pdf.chat/api/v1/ocr/ \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@invoice.pdf" \
-F "tier=vlm" \
-F "language=auto"
ສົ່ງຄືນວຽກຄືນມາ ។ ສຳລັບເອກະສານທີ່ມີໜ້າ ≤5ມັນມີແລ້ວ done ນໍາຂໍ້ຄວາມ; ໄຟລ໌ທີ່ໃຫຍ່ກວ່າຈະກັບມາ pending/processing, ຖາມສະຖານະຈຸດຈົບ.
{
"uuid": "9f2c1b7e4a...",
"status": "done",
"tier": "vlm",
"language": "auto",
"page_count": 1,
"mean_confidence": 0.98,
"text": "INVOICE\nAcme Corp\nTotal: 215.00 USD",
"markdown": "# INVOICE\n\n**Acme Corp** ...",
"pages": [ { "index": 0, "text": "...", "blocks": [ { "text": "...", "bbox": [x0,y0,x1,y1], "confidence": 0.98 } ] } ]
}
ຮັບຜົນໄດ້
GET /api/v1/ocr/<uuid>/, ຖາມຈົນກວ່າ status ແມ່ນ done ឬ failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
ດາວໂຫລດຮູບແບບ
GET /api/v1/ocr/<uuid>/download/?format=md, ສົ່ງອອກຜົນການຄົ້ນຫາ format ແມ່ນໜຶ່ງໃນ txt, md, docx, pdf, csv, json.
curl -L "https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../download/?format=docx" \
-H "Authorization: Bearer YOUR_API_TOKEN" -o result.docx
Chat with a document
ຖາມຄໍາຖາມກ່ຽວກັບວຽກທີ່ໄດ້ເຮັດແລ້ວ. ຄໍາຕອບແມ່ນອີງໃສ່ຂໍ້ຄວາມທີ່ໄດ້ຖອດອອກມາ ແລະ ຖອດບົດຄວາມທີ່ມາຈາກຫນ້າແຫຼ່ງ. ຕ້ອງການບັນຊີໂຕກັ່ນ, ຄຸນສົມບັດ chat ແມ່ນບັນຊີທີ່ມີການເຂົ້າເຖິງໄດ້.
POST /api/v1/chat/<uuid>/, ທ້ອງ JSON {"message": "your question"}.
curl -X POST https://pdf.chat/api/v1/chat/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "What is the invoice total and due date?"}'
ສົ່ງຄືນຂໍ້ຄວາມຂອງຜູ້ຊ່ວຍພ້ອມດ້ວຍຄຳຕອບ ແລະ ລາຍຊື່ຂອງໜ້າທີ່ອ້າງອີງ:
{"conversation": "a1b2…", "message": {
"role": "assistant",
"content": "The total is $42, due on March 3 (p. 1).",
"citations": [{"page": 1, "cited_text": "The invoice total is $42…", "document_id": "9f2c1b7e4a…"}]
}}
GET /api/v1/chat/<uuid>/history/, ເອົາການສົນທະນາເຕັມມາໃຊ້ໃນວຽກໜຶ່ງ
ຕົວຢ່າງຂອງកូដ
import requests, time
BASE = "https://pdf.chat/api/v1"
H = {"Authorization": "Bearer YOUR_API_TOKEN"}
# 1. Upload a PDF
with open("contract.pdf", "rb") as f:
job = requests.post(BASE + "/ocr/", headers=H, files={"file": f}).json()
# 2. Wait until it's ready to chat
while job["status"] in ("pending", "processing"):
time.sleep(2)
job = requests.get(f"{BASE}/ocr/{job['uuid']}/", headers=H).json()
# 3. Ask questions — every answer is cited to the page
ans = requests.post(f"{BASE}/chat/{job['uuid']}/", headers=H,
json={"message": "What is the termination notice period?"}).json()
print(ans["message"]["content"])
print(ans["message"]["citations"])
import fs from "fs";
const BASE = "https://pdf.chat/api/v1";
const H = { Authorization: "Bearer YOUR_API_TOKEN" };
// 1. Upload a PDF
const form = new FormData();
form.append("file", new Blob([fs.readFileSync("contract.pdf")]), "contract.pdf");
let job = await (await fetch(`${BASE}/ocr/`, { method: "POST", headers: H, body: form })).json();
// 2. Wait until it's ready to chat
while (["pending", "processing"].includes(job.status)) {
await new Promise(r => setTimeout(r, 2000));
job = await (await fetch(`${BASE}/ocr/${job.uuid}/`, { headers: H })).json();
}
// 3. Ask questions — every answer is cited to the page
const ans = await (await fetch(`${BASE}/chat/${job.uuid}/`, {
method: "POST", headers: { ...H, "Content-Type": "application/json" },
body: JSON.stringify({ message: "What is the termination notice period?" })
})).json();
console.log(ans.message.content, ans.message.citations);
# 1. Upload a PDF
curl -X POST https://pdf.chat/api/v1/ocr/ \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@contract.pdf"
# 2. Ask questions (use the uuid from step 1) — answers cited to the page
curl -X POST https://pdf.chat/api/v1/chat/UUID/ \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "What is the termination notice period?"}'
ប៉ារ៉ាម៉ែត្រ
| ແຄມເປນ | ປະເພດ | ຄໍາອະທິບາຍ |
|---|---|---|
file | file | ຕ້ອງການ ຮູບ ຫຼື PDF ທີ່ຈະປະມວນຜົນ |
tier | string | cpu (ປັ໊ກເດີມ, ໄວ/ພິມ) ຫຼື vlm (AI ພິເສດ: ການຂຽນດ້ວຍມື, ແຜນທີ່, ຄະນິດສາດ). |
language | string | auto (ປັນເດີມ) ຫຼື ລະຫັດພາສາ (en, ch, ja, ar,... |
tool | string | ເຄື່ອງມືທີ່ເລືອກໄດ້ (e. g. summarize-pdf, ask-pdf) ເພື່ອກ່ອນ-frame chat ສໍາລັບວຽກນັ້ນ. |
ຂໍ້ຜິດພາດ & ຈໍາກັດ
| ລະຫັດ | ຕົວອັກສອນທີ່ໃຊ້ໄດ້ |
|---|---|
400 | ບໍ່ມີໄຟລ໌, ປະເພດທີ່ບໍ່ໄດ້ຮອງຮັບ ຫຼື ໄຟລ໌ໃຫຍ່ເກີນໄປ. |
401 | ສູນເສຍ ຫຼື ບໍ່ມີ API token ຖືກຕ້ອງ. |
402 | ອອກຈາກໜ້າ, ໄດ້ເຖິງຂີດຈຳກັດຟຣີຕໍ່ມື້/ເດືອນ ຫຼື ບໍ່ມີຄະແນນ. ເນື້ອໃນລວມມີ used/cap. |
404 | ບໍ່ພົບ UUID ຂອງວຽກ ។ |
409 | ຂໍດາວໂຫລດກ່ອນທີ່ວຽກຈະສຳເລັດ |
ຫນ້າແຕ່ລະຫນ້າທີ່ປະມວນຜົນຄ່າໃຊ້ຈ່າຍຂອງສິນເຊື່ອ (1 / ຫນ້າໃນລະດັບໄວ, ຫຼາຍກ່ຽວກັບຄ່າທໍານຽມ). ແຜນທີ່ຈ່າຍຍົກຂຶ້ນມາໃນແຕ່ລະເອກະສານຫນ້າແລະເພີ່ມຄວາມສໍາຄັນ. ລາຄາ.
ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ
language=auto ເພື່ອກວດພົບ ຫຼື ສົ່ງລະຫັດສະເພາະ