PDF.chat API

Nahrajte PDF a chat s ním z vlastní aplikace? ptejte se a získejte odpovědi uvedené na stránce, ve 100+ jazycích. Metered na stránku, žádné překvapení.

Přehled

PDF.chat API je malé REST rozhraní. Nejprve vy POST dokument, který jej pohltí a získá zpět práci s textem dokumentu a členěním na stránku (text, svazovací krabice, důvěra). POST otázky proti této práci a získat odpovědi zakotvené v dokumentu, každý citace stránky, ze které pochází. Práce 5 stránek nebo méně návrat v řadě; větší pracovní místa se vrátí okamžitě s pending status, že jste volit do done.

  • Základní URL: https://pdf.chat
  • Dokumenty v: PDF, plus Word, PowerPoint, text a obrázky (PNG, JPG, WEBOP, GIF, BMP, TIFF)
  • Chat mimo: odpovědi s citacemi stránek; přepisy přes historický cíl
  • Zpracované znění: txt, md, docx, pdf, csv, json
  • Čtecí motory: cpu (rychlé, tištěné dokumenty) a vlm (premium AI, rukopis, komplexní uspořádání, matematika)

Ověření

Ověřte si to. API žeton (najdete to na svém stránka účtu) jako hlavička:

Authorization: Bearer YOUR_API_TOKEN

Můžete také projít ?api_token=… jako parametr dotazu. Použití je odměřeno na stránce vašeho účtu.

Odeslání dokumentu

POST /api/v1/ocr/, vícedílné nahrávání formuláře.

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"

Vrací práci. Pro ≤5-stránkové soubory je již done s textem; větší soubory se vracejí pending/processing, průzkum stavový cíl.

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

Získejte výsledek

GET /api/v1/ocr/<uuid>/, průzkum do status je done nebo failed.

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

Stáhnout formát

GET /api/v1/ocr/<uuid>/download/?format=md, exportovat výsledek. format je jedním z 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 s dokumentem

Ptejte se na hotovou práci. Odpovědi jsou uzemněny pouze ve vytaženém textu a citujte zdrojovou stránku. Vyžaduje to, že účet je uveden na účtu, funkce chat je brána na účet.

POST /api/v1/chat/<uuid>/, JSON tělo {"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?"}'

Vrací zprávu asistenta s odpovědí a seznam citovaných stránek:

{"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/, Přineste kompletní přepis konverzace pro práci.

Příklady kódů

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?"}'

Parametry

PoleTypPopis zboží
filefilePotřebné. Obraz nebo PDF k zpracování.
tierstringcpu (přednastaveno, rychle/tištěno) nebo vlm (premium AI: rukopis, rozvržení, matematika).
languagestringauto (přednastaveno) nebo jazykový kód (en, ch, ja, ar,...).
toolstringVolitelný kulka (např. summarize-pdf, ask-pdf) na předrámování chat pro tento úkol.

Omezení chyb

KódVýznam
400Žádný soubor, nepodporovaný typ nebo příliš velký soubor.
401Chybí nebo je neplatná API žeton.
402Z stránek, denní / měsíc zdarma dosaženo, nebo žádné úvěry. Tělo zahrnuje used/cap.
404Job UUID nenalezen.
409Stáhnout požadované před dokončením práce.

Každá stránka zpracovávala náklady úvěry (1/page na rychlé úrovni, více na prémie). Placené plány zvýšit per-file stránky uzávěry a přidat prioritu. Viz ceny.

Často kladené otázky

Vytvořte si volný účet a otevřete si stránka účtu, Váš žeton je zde zobrazen s kopírovacím tlačítkem.

Ano, soubory 5 stran nebo méně vrátí celý výsledek v řádku odpovědi POST, takže není potřeba žádné průzkumy pro většinu obrázků a krátkých PDF.

Více než 100, včetně latiny, CJK, arabsky, akrilice a indické skripty. language=auto detekovat nebo předat konkrétní kód.

Nahrávky jsou zpracovávány pouze proto, aby odpovídaly na vaše otázky a automaticky je smazaly. Nikdy neprodáváme, nesdílíme ani netrénujeme na vašich dokumentech.

Použití je odměřována na stránku proti vašemu účtu: anonymní hovory získat denní příspěvek na IP, volné účty měsíční kbelík, a placené plány používat zakoupené úvěry s vyšší per-file strana čepice a priorita. Když dojde dostanete 402 s použitým a čepice v těle.

Můžete odeslat PNG, JPG, WEBOP, GIF, BMP, TIFF, a vícestránkový PDF. Výsledky stáhnout jako txt, md, docx, pdf (vyhledatelný), csv, nebo json přes parametr formátu download.

400 je chybějící soubor, nepodporovaný typ, nebo soubor příliš velký; 401 chybějící nebo neplatný žeton; 402 z stránek; 404 neznámé zaměstnání UUID; a 409 ke stažení požadované před dokončením práce. Chybové těla obsahují krátkou zprávu.

Objekt práce se statusem, úrovní, jazykem, storno_count a střední_condience, plus celý text a markdown. Série stránek rozbije každou stránku do bloků s textem, vázaným boxem (bbox) a důvěrou v jednotlivé bloky.

Použijte Cpu (default) pro rychlé, levné rozpoznávání čistých tištěných dokumentů. Použijte vlm, prémiový AI motor, pro rukopis, komplexní nebo více-sloupců rozvržení, matematika, a překlad, kde je mnohem přesnější.

Nástroj Pass s kulkou (například shrnout-pdf nebo zeptat-pdf) pro předrámování chat pro tento úkol, takže asistent je naladěn shrnout nebo odpovědět na otázky týkající se dokumentu.

Soubory 5 stran nebo méně návratů v odpovědi POST. Větší soubory se vrátí okamžitě jako probíhající nebo zpracování, a budete volit GET /api / v1/ocr /<uuid>/ dokud se stav neudělá nebo nezdaří. Placené plány zvýší uzávěr záložky v jednotlivých souborech.

API je jednoduchý REST přes HTTPS, takže pracuje z jakéhokoli jazyka s HTTP klientem, viz Python, Node.js a CURL příklady výše. Neexistuje žádný SDK k instalaci; několik řádků standardního HTTP kódu jsou vše, co potřebujete.