PDF.chat API

Išsiųskite PDF ir chat su juo iš savo app — užduoti klausimus ir gauti atsakymus į nurodytus puslapyje, 100+ kalbomis. Metered per puslapį, jokių staigmenų.

Apžvalga

PDF.chat API yra maža REST sąsaja. Pirmas POST dokumentas, kuriuo jis įsimaišys ir bus grąžintas į darbą su dokumento tekstu ir suskirstymu per puslapį (tekstas, susiejimo laukeliai, pasitikėjimas). Tada Jūs POST klausimai prieš šį darbą ir gauti atsakymus pagrįstas dokumente, kiekvienas nurodymas puslapio jis atėjo iš. Darbo vietos 5 puslapiai ar mažiau grįžti į internetą; didesni darbai grįžti iš karto su pending būsena, kad jūs apklausos iki done.

  • Pagrindinis URL: https://pdf.chat
  • Dokumentai: PDF, plius žodis, PowerPoint, tekstas, ir paveikslėliai (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat out: atsakymai su puslapio citatomis; stenogramos per istorijos vertinamąją baigtį
  • Išbrauktas tekstas: txt, md, docx, pdf, csv, json
  • Skaitytuvai: cpu (greiti spausdinti dokai) ir vlm (pirminė AI, rašyba ranka, sudėtingas išdėstymas, matematika)

Autentikacija

Autentifikuoti savo API žetonas (nustatykite ant paskyros puslapis) kaip kabinos antraštė:

Authorization: Bearer YOUR_API_TOKEN

Taip pat galite perduoti ?api_token=… kaip užklausos parametras. Naudojimas matuojamas pagal jūsų sąskaitos puslapio balansą.

Pateikti dokumentą

POST /api/v1/ocr/, Daugiadalis forma įkelti.

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"

Grąžina darbą. ≤5 puslapių failams tai jau done su tekstu; didesni failai grįžta pending/processing, apklausti būklės vertinamąją baigtį.

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

Gaukite rezultatą

GET /api/v1/ocr/<uuid>/, apklausa iki status st done arba failed.

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

Atsiųsti formatą

GET /api/v1/ocr/<uuid>/download/?format=md, eksportuoja rezultatą. format yra vienas iš 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 su dokumentu

Užduoti klausimus apie baigtą darbą. Atsakymai pagrįsti tik išgautu tekstu ir nurodo pradinį puslapį. Reikalauja sąskaitos raktas, chat funkcija yra apskaitinė.

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

Grąžina pagalbinį pranešimą su savo atsakymą ir nurodytų puslapių sąrašą:

{"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/, Gaukite pilną pokalbio stenogramą už darbą.

Kodų pavyzdžiai

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

Parametrai

LaukasTipasAprašymas
filefileReikalinga. Vaizdas arba PDF apdoroti.
tierstringcpu (numatyta, greitai/atspausdinta) arba vlm (pirminė AI – rašymas, išdėstymas, matematika).
languagestringauto (numatyta) arba kalbos kodas (en, ch, ja, ar,...).
toolstringNeprivalomas įrankis įstumiamas į šliuzą (pvz., summarize-pdf, ask-pdf) šiai užduočiai iš anksto numatyti chat.

Klaidos ir ribos

KodasReikšmė
400Nėra failo, nepalaikomas tipas ar per didelis failas.
401Trūksta arba netinkamas API žetonas.
402Iš puslapių, dienos / mėnesio nemokamai riba pasiektas, arba nėra kreditų. Kūnas apima used/cap.
404Nerastas darbas UUID.
409Atsisiųsti užklaustą prieš užbaigiant darbą.

Kiekvienas puslapis perdirbtas išlaidų kreditai (1/ puslapis greito pakopa, daugiau dėl priemokų). Mokami planai padidinti failo viršutinės ribos ir pridėti prioritetą. kainodara.

Dažnai užduodami klausimai

Sukurti nemokamą sąskaitą ir atidaryti savo paskyros puslapis, jūsų žetonas yra rodomas su kopijavimo mygtuką.

Taip, 5 puslapių ar mažiau failus grąžinti visą rezultatą į Pont atsakymą, todėl nėra apklausa dauguma vaizdų ir trumpi PDF.

Daugiau nei 100, įskaitant lotynų, CJK, arabų, Kirilica ir indikų scenarijus. Naudojimas language=auto nustatyti arba perduoti konkretų kodą.

Įkeliami tik atsakant į jūsų klausimus ir automatiškai ištrinami. Niekada neparduodame, nedaliname ar netraukiame jūsų dokumentų.

Naudojimas matuojamas pagal jūsų sąskaitos likutį: anoniminiai skambučiai gauna per IP dienpinigius, nemokamą sąskaitą, mėnesinę kibirkštį, ir apmokėti planai naudoti įsigytus kreditus su didesniais pagal failą puslapio viršūnių ir prioritetą. Kai baigsite, gausite 402 su naudojamais ir viršūnę organizme.

Galite siųsti PNG, JPG, WEBP, GIF, BMP, TIFF, ir kelių puslapių PDF. Rezultatai atsisiųsti kaip txt, md, DOCX, pdf (paieškamas), Csv, arba Json per atsisiuntimo baigties formato parametrą.

400 yra trūkstamas failas, nepalaikomas tipas, arba failas per didelis; 401 trūkstamas arba negaliojantis žetonas; 402 iš puslapių; 404 nežinomas darbas UUID; ir 409 parsisiųsti prašoma prieš užbaigiant darbą. Klaida įstaigos apima trumpą pranešimą.

Darbo objektas su būsena, pakopa, kalba, puslapis_skaičius, ir vidutinis_ pasitikėjimas, plius visas tekstas ir žymėjimas. Puslapiai masyvo pertraukia kiekvieną puslapį į blokus su savo tekstą, ribojantis laukelis (Bbox), ir kiekvienam blokui pasitikėjimą.

Naudokite cpu (numatytasis) greitai, pigių pripažinimo švarus spausdinti dokumentus. Naudokite Vlm, priemoka AI variklis, rankinio, sudėtingų ar kelių kolonėlių išdėstymo, matematikos, ir vertimo, kur jis yra daug tiksliau.

Perduoti įrankis su šliaužtu (pvz., sumary-pdf arba paklausti-pdf) iš anksto apibrėžti chat už tą užduotį, todėl padėjėjas yra nustatytas apibendrinti arba atsakyti į klausimus apie dokumentą.

Failai 5 puslapių arba mažiau grįžti į internetą į Point atsakymą. Didesni failai grįžti iš karto kaip laukia arba perdirbimo, ir jūs apklauskite GET /api/v1/ocr /<uuid>/ kol bus atlikta arba bus padarytas arba nepavyko. Mokami planai pakelti failo puslapio viršutinę ribą.

API yra paprastas REST over HTTPS, todėl ji veikia iš bet kurios kalbos su HTTP klientas, žr Python, Node.js, ir cURL pavyzdžiai pirmiau. Nėra SDK įdiegti; keletas eilučių standartinis HTTP kodas yra viskas, ko jums reikia.