PDF.chat API

Naložite PDF in chat z njim iz vaše aplikacije – postavljajte vprašanja in dobite odgovore, navedene na strani, v 100+ jezikih. Merili na stran, brez presenečenj.

Pregled

PDF.chat API je majhen vmesnik REST. Najprej vi POST dokument, ki ga zaužije in dobi delo z besedilom dokumenta in razčlenitev na stran (tekst, omejevalne polja, zaupanje). Potem pa ste POST vprašanja proti tej zaposlitvi in dobiti odgovore na podlagi dokumenta, vsaka navede stran, s katere je prišel. Dela s 5 stranmi ali manj vrniti v liniji; več delovnih mest se takoj vrne z pending status, ki ga pregledate do done.

  • Osnovni URL: https://pdf.chat
  • Dokumenti v: PDF, plus Word, PowerPoint, besedilo in slike (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat odpovedanih: odgovore s straninimi citatami; transkripti skozi dogodek zgodovine
  • Obdelano besedilo: txt, md, docx, pdf, csv, json
  • Branje motorjev: cpu (hitro, tiskani docetiki) in vlm (premij AI, pisava, kompleksna postavitev, matematika)

Overitev

Preverite pri vas API token (Najdi jo na svojem stran računa) kot naslov Nosilca:

Authorization: Bearer YOUR_API_TOKEN

Lahko tudi predate ?api_token=… kot parametr za poizvedbo. Uporaba je merena v skladu s stransko saldo vašega računa.

Odpremljenost

POST /api/v1/ocr/, večdelni obrazec nalaganje.

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"

Vrne nalogo. Za datoteke ≤5 strani je že to done z besedilom; večje datoteke se vračajo pending/processing, ocenite stanje opazovanega dogodka.

{
  "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 } ] } ]
}

Dobi rezultat

GET /api/v1/ocr/<uuid>/, anketa do status je done ali failed.

curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Prenesi format

GET /api/v1/ocr/<uuid>/download/?format=md, izvaža rezultat. format je eden od 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 z dokumentom

Vprašaj o končanem delu. Odgovori so utemeljiti le v izvlečenem besedilu in navesti izvorno stran. Zahteva žeton računa, funkcija chat je račun-vrata.

POST /api/v1/chat/<uuid>/, TRUPLO 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?"}'

Vrača pomočnico sporočila z odgovorom in seznamom naštetih strani:

{"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/, Prinesi celoten zapis pogovora za službo.

Primeri kode

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

PoljeVrstaOpis
filefileZahteva se zahteva. Slika ali PDF za obdelavo.
tierstringcpu (privzeto, hitro/natisnjeno) ali vlm (premij AI: pisava, razpored, matematika).
languagestringauto (privzeto) ali jezikovna koda (en, ch, ja, ar,...).
toolstringIzbirna orodja (npr. summarize-pdf, ask-pdf) vnaprej osnutek chat za to nalogo.

& Omejitve napak

OznakaPomen
400Ni datoteke, nepodprta vrsta ali prevelika datoteka.
401Manjkajoči ali neveljaven API žeton.
402Iz strani, dnevni/mesečni brezplačni meja, ali brez kreditov. used/cap.
404Job UUID ni bil najden.
409Prenos zahtevan, preden se opravilo konča.

Vsaka stran obdelanih stroškov kreditov (1/stran na hitri ravni, več na premiji). Plačani načrti dvignejo zgornje meje na stran datoteke in dodajo prednost. Glej cene.

Pogosta vprašanja

Ustvarite brezplačni račun in odprite svoj račun stran računa, vaš žeton je prikazan tam z kopijskim gumbom.

Da, datoteke s 5 stran ali manj vrnejo celoten rezultat v odzivu POST, tako da ni potrebno anketiranje za večino slik in kratkih PDF.

Več kot 100, vključno z latinskimi, CJK, arabskimi, kiriličnimi in indijskimi skripti. language=auto zaznavanje ali prenos posebne kode.

Nalaganja se obdelujejo samo za odgovor na vaša vprašanja in brisanje avtomatsko. Nikoli ne prodajamo, delimo, ali vlak na vaših dokumentih.

Uporaba je merjenje na stran glede na račun: anonimni klici dobijo na-IP dnevni dodatek, brezplačni računi mesečno vedro, in plačani načrti uporaba kupljenih kreditov z višjimi pokrovčki na stransko datoteko in prednostno. Ko ste zmanjkanje dobite 402 z uporabo in pokrovček v telesu.

Lahko pošljete PNG, JPG, WEBP, GIF, BMP, TIFF in večstranski PDF. Rezultati prenosa kot txt, md, docx, pdf (iztraživa), csv ali json prek parametra za izbiro prenosa.

400 je manjkajoča datoteka, nepodprta vrsta ali datoteka prevelika; 401 manjkajoči ali neveljaven žeton; 402 iz strani; 404 neznana naloga UUID; in 409 prejemek zahtevan pred končanjem naloge. Napaka telesa vključujejo kratko sporočilo.

Objekt za delo s statusom, vrsto, jezikom, strani_pošte in srednjim_zaupnostjo, plus polno besedilo in označevanje. Strani polje raztrga vsako stran v bloke z besedilom, mejnim poljem (bbox) in zaupanjem na blok.

Uporabite cpu (privzeto) za hitro, nizkocenovno prepoznavanje čistih tiskanih dokumentov. Uporabite vlm, premium AI motor, za pisavo, kompleksne ali večstolpne oblike, matematika, in prevod, kjer je veliko bolj natančen.

Orodje za prenos z strelom (na primer povzemanje pdf ali ask-pdf) za predokvir chat za to nalogo, tako da je pomočnik nastavljen, da povzetek ali odgovor na vprašanja o dokumentu.

Datoteke s 5 stranmi ali manj vrnitev v odgovoru POST. Veči datotek se vrnejo takoj, ko se opravi ali obdela, in anketa GET /api/v1/okr /<uuid>/ dokler stanje ni opravljeno ali ni uspelo. Plačani načrti dvignite pokrovček na datotečno stran.

API je navadna REST preko HTTPS, zato deluje iz katerega koli jezika s HTTP odjemalcem, glej Python, Node.js in CURL primere zgoraj. Ni SDK za namestitev; nekaj vrstic standardne HTTP kode so vse, kar potrebujete.