PDF.chat API
Laadi üles PDF ja chat koos sellega oma rakendusest ~ Küsi küsimusi ja saada vastuseid lehele, 100+ keeles. Metered per page, no üllatusi.
Ülevaade
PDF.chat API on väike REST liides. Esiteks POST dokumendi, mis neelab selle alla ja saab tagasi töö dokumendi teksti ja lehekülje kaupa (tekst, mis seob kastid, usaldus). POST küsimused selle töö vastu ja saada vastuseid põhjendatud dokumendis, iga tsiteerides lehekülge, mis see tuli. Tööd 5 lehekülge või vähem tagasi interline; suuremad töökohad tagasi kohe pending staatus, mida sa valid kuni done.
- Baas URL:
https://pdf.chat - Dokumendid: PDF, pluss sõna, PowerPoint, tekst ja pildid (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat väljas: vastused lehekülje tsitaatidega; ärakirjad ajaloo lõpp-punkti kaudu
- Töödeldud tekst välja:
txt,md,docx,pdf,csv,json - Lugemismootorid:
cpu(kiired, trükitud dokumendid) javlm(premium AI, käekiri, keeruline paigutus, matemaatika)
Autentimine
Autentige oma API märgis (Leia see oma konto lehekülg) kui kandja päis:
Authorization: Bearer YOUR_API_TOKEN
Võid ka läbida ?api_token=… päringu parameetrina. Kasutamine on mõõdetud sinu konto leheküljebilansiga.
Dokumendi esitamine
POST /api/v1/ocr/, mitmeosalise vormi üleslaadimine.
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"
Tagastab töö. ≤ 5 leheküljeliste failide puhul on see juba olemas done teksti; suuremad failid tulevad tagasi pending/processing, küsitleda staatuse tulemusnäitajat.
{
"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 } ] } ]
}
Saa tulemus
GET /api/v1/ocr/<uuid>/, küsitlus kuni status on done või failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
Vormingu allalaadimine
GET /api/v1/ocr/<uuid>/download/?format=md, ekspordib tulemuse. format on üks 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 koos dokumendiga
Küsige küsimusi töö lõpetamise kohta. Vastused on esitatud ainult väljavõtetekstis ja tsiteerige lähtelehte. Nõuab konto märgi, chat funktsioon on kontoga seotud.
POST /api/v1/chat/<uuid>/, JSON- i keha {"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?"}'
Tagastab abisõnumi vastusega ja viidatud lehekülgede nimekirjaga:
{"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/, hangi töö jaoks kogu vestluse protokoll.
Koodi näited
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?"}'
Parameetrid
| Väli | Tüüp | Kirjeldus |
|---|---|---|
file | file | Vajalik. PDF-pilti või PDF- i töödelda. |
tier | string | cpu (vaikimisi, kiire/trükitud) või vlm (premium AI: käekiri, paigutus, matemaatika). |
language | string | auto (vaikimisi) või keelekood (en, ch, ja, ar,...). |
tool | string | Valikuline tööriistanälkjas (nt summarize-pdf, ask-pdf) seada selle ülesande jaoks ette chat. |
Vead ja piirangud
| Kood | Tähendus |
|---|---|
400 | Ei mingit faili, toetamata tüüpi ega liiga suurt faili. |
401 | Puuduv või vigane API märgis. |
402 | Lehekülgedest, iga päev/kuus tasuta piir saavutatud, või ei krediiti. Organisse kuulub used/cap. |
404 | Tööd UUID ei leitud. |
409 | Allalaadimine on nõutav enne töö lõpetamist. |
Iga lehe töödeldud kulud krediiti (1/lehekülg kiire tase, rohkem lisatasu). Tasulised plaanid tõsta faili lehe ülempiirid ja lisada prioriteet. Vaata hinnakujundus.
Korduma kippuvad küsimused
language=auto avastada või edastada erikood.