PDF.chat API
Uzstādiet PDF un chat ar to no savas lietotnes — uzdot jautājumus un saņemt atbildes uz lapu, 100+ valodās. Meted par lapu, nav pārsteigumu.
Pārskats
PDF.chat API ir maza REST saskarne. Vispirms POST dokuments, lai to iespiestu un saņemtu darbu ar dokumenta tekstu un sadalījumu par lapu (teksts, saistošā kaste, uzticamība). Tad jūs POST jautājumus pret šo darbu un saņemt atbildes, pamatojoties uz dokumentu, katru norādot lapu tā nāca no. Darbs 5 lapas vai mazāk atgriešanās tiešsaistē; lielāki darbi atgriežas nekavējoties ar pending statusu, ka jūs aptauja līdz done.
- Pamata URL:
https://pdf.chat - Dokumenti: PDF, plus vārds, PowerPoint, teksts, un attēli (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat izejošo: atbildes ar lapu citācijām; transkripti caur vēsturisko mērķa kritēriju
- Izņemto tekstu:
txt,md,docx,pdf,csv,json - Lasīšanas dzinēji:
cpu(ātri iespiesti dok.) unvlm(premium AI, rokraksts, sarežģīts izkārtojums, matemātika)
Autentificēšana
Autentificēties ar savu API žetons (izskaidrojiet konta lapa) kā vestera galveni:
Authorization: Bearer YOUR_API_TOKEN
Jūs varat arī nodot ?api_token=… kā vaicājuma parametru. Izmantojums ir mērīts attiecībā pret jūsu konta lapas bilanci.
Iesniegt dokumentu
POST /api/v1/ocr/, multidaļējas formas augšupielāde.
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"
Atgriež darbu. Attiecībā uz ≤5 lapas failiem tas jau ir done tekstu; atgriežas lielākiem failiem pending/processing, apsekot statusa mērķa kritēriju.
{
"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 } ] } ]
}
Iegūt rezultātu
GET /api/v1/ocr/<uuid>/, aptauja līdz status s ta done vai failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
Lejupielādēt formātu
GET /api/v1/ocr/<uuid>/download/?format=md, eksportēt rezultātu. format ir viens no 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
Uzdot jautājumus par pabeigtu darbu. Atbildes ir balstītas tikai iegūto tekstu un atsaucas uz avota lapu. Nepieciešams konta žetons, chat funkcija ir grāmatvedības.
POST /api/v1/chat/<uuid>/, JSON struktūra {"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?"}'
Atgriež palīgziņojumu ar savu atbildi un sarakstu ar citētām lapām:
{"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/, Ielādējiet pilnu sarunu protokolu darbam.
Koda piemēri
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?"}'
Parametri
| Lauks | Veids | Apraksts |
|---|---|---|
file | file | Nepieciešams. Attēls vai PDF apstrādāt. |
tier | string | cpu (noklusējums, ātrs/drukāts) vai vlm (Airija AI: rokraksts, izkārtojums, matemātika). |
language | string | auto (noklusētā) vai valodas kods (en, ch, ja, ar,...). |
tool | string | Neobligāts darbarīka iegremdējums (piem., summarize-pdf, ask-pdf) to pre-frame the chat for that task. |
Kļūdas & limiti
| Kods | Nozīme |
|---|---|
400 | Nav faila, neatbalstīta tipa vai faila pārāk liels. |
401 | Trūkst vai nav spēkā API žetons. |
402 | No lapām, dienas / mēnesī bezmaksas limits sasniegts, vai nav kredīti. used/cap. |
404 | Nav atrasts darba UUID. |
409 | Lejupielādēt pieprasīts pirms darbs pabeigts. |
Katrā lapā apstrādātas izmaksu kredīti (1 lapa par ātru līmeni, vairāk par prēmiju). Palieliniet failu lapas griestiem un pievienot prioritāti. Skatīt cenu noteikšana.
Bieži uzdotie jautājumi
language=auto lai atklātu vai nodotu konkrētu kodu.