PDF.chat API
PDF файлыг татаж аваад өөрийн програмаасаа chat-ыг нь нэмнэ - асуулт асууж, 100-аас дээш хэл дээрх хуудаснаас иш татан хариулт авах. Хуудасны тоогоор, гайхалтай зүйл байхгүй.
Тодорхойлолт
PDF.chat API нь жижиг REST интерфэйс юм. Эхлээд та POST Хуулийг оруулж, хуулбарлах ажилд оруулах, мөн хуулбарлах ажилд оруулах, мөн хуудасны хуваалт (хэсэг, хязгаарлах хайрцаг, найдвартай байдал)- ийг оруулах. POST Энэ ажилд асуулт тавьж, баримтад суурилсан хариулт авах, хуудас бүр нь гарчигтай.5хэсэгээс бага хуудастай ажил нь мөрөнд буцаана; том ажил нь шууд урт үсгээр буцаана pending Та юуг хүсч байна вэ? done.
- Үндсэн URL:
https://pdf.chat - Хуулийн сэдэв: PDF, Word, PowerPoint, текст, зураг (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat-аас: хуудасны ишлэлтэй хариулт; түүхийн төгсгөлийн цэгээс дамжуулан бичлэгүүд
- Үйлчлүүлсэн текст:
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 (premium AI: гарын үсэг, загвар, математик) Name |
language | string | auto (стандарт) эсвэл хэлний код (en, ch, ja, ar,...). |
tool | string | Өөрийн сонгосон хэрэгслийн бөгж (жишээ нь summarize-pdf, ask-pdfchat-ыг энэ ажилд бэлтгэх. |
Буруу ба хязгаарлалт
| Код | Үг |
|---|---|
400 | Файл байхгүй, дэмжигдээгүй төрөл эсвэл файл хэт том. |
401 | API түлхүүр алга эсвэл хүчингүй. |
402 | Хуудас дууссан, өдөр/сарын чөлөөт хязгаар хүрсэн, эсвэл кредит байхгүй. Тархинд нь used/cap. |
404 | Ажлын UUID олж чадахгүй байна. |
409 | Ажлыг дуусгахаас өмнө татаж авахыг хүссэн. |
Бүх хуудас нь кредитээр үнэлэгдэх болно (1 хуудас нь хурдан түвшинд, илүү нь дээд түвшинд). Үнэтэй төлөвлөгөө нь файлын хуудасны дээд хэмжээг нэмэгдүүлж, тэргүүлэх зэрэглэлийг нэмнэ. үнэ.
Жишээ асуултууд
language=auto тодорхой кодыг илрүүлэх, дамжуулах.