PDF.chat API

Ngarko një PDF dhe chat me të nga aplikimi juaj — bëj pyetje dhe merr përgjigje të cituara në faqe, në më shumë se 100 gjuhë. Matur për faqe, pa surpriza.

Përmbledhja

API PDF.chat është një ndërfaqe e vogël REST. Së pari ju POST një dokument për ta marrë atë dhe të kthehet një punë me tekstin e dokumentit dhe një shpërndarje për faqe (tekst, kuti kufizuese, besueshmëri). Pastaj ju POST pyetje kundër atij punës dhe merr përgjigjet e bazuara në dokument, secila duke cituar faqen nga e cila vjen. Punët me 5 faqe ose më pak kthehen në rresht; punët më të mëdha kthehen menjëherë me një pending status done.

  • URL e bazë: https://pdf.chat
  • Dokumentet në: PDF, plus Word, PowerPoint, tekst dhe imazhe (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat jashtë: përgjigje me citime faqesh; transkripte nëpërmjet pikës së fundit të historisë
  • Teksti i përpunuar jashtë: txt, md, docx, pdf, csv, json
  • Motorët e leximit: cpu (dokumente të shpejta, të shtypura) dhe vlm (AI premium, shkrim me dorë, strukturë komplekse, matematikë)

Autentifikim

Autentikohu me Token API (Gjej atë në Faqja e llogarisë) si një header Bearer:

Authorization: Bearer YOUR_API_TOKEN

Mund të kalosh edhe ?api_token=… si parametri i kërkesës. Përdorimi matët me balancin e faqes të llogarisë suaj.

Dërgo një dokument

POST /api/v1/ocr/, ngarko formën me shumë pjesë.

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"

Kthen punën. Për file ≤5-faqe është tashmë done me tekstin; kthehen file më të mëdhenj pending/processing, pyet pikën e fundit të gjendjes.

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

Marr një rezultat

GET /api/v1/ocr/<uuid>/, pyetje deri status është done ose failed.

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

Shkarko një format

GET /api/v1/ocr/<uuid>/download/?format=md, eksporto rezultatin. format është një nga 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 me një dokument

Bëj pyetje rreth një pune të përfunduar. Përgjigjet bazohen vetëm në tekstin e nxjerrë dhe citojnë faqen burimore. Kërkon një token të llogarisë, funksioni chat është i lidhur me llogarinë.

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

Kthen mesazhin e ndihmës me përgjigjen e tij dhe një listë të faqes së cituar:

{"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/, të marr të gjithë bisedat për një punë.

Shembuj kodi

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

Parametrat

FushaLlojiPërshkrimi
filefileE nevojshme. Figura ose PDF për t'u përpunuar.
tierstringcpu (i prezgjedhur, i shpejtë/i printuar) ose vlm (AI premium: shkrimi me dorë, hartimi, matematika).
languagestringauto (e prezgjedhur) ose një kod gjuhe (en, ch, ja, ar, …).
toolstringNjë mjet opcional (p.sh. summarize-pdf, ask-pdf) për të para-frame chat për atë detyrë.

Gabime

KodiKuptimi
400Asnjë file, lloj i pasuportuar ose file shumë i madh.
401Token i munguar apo i pavlefshëm API.
402Pa faqe, kufijtë e përditshëm/mujorë të lirë të arritur, ose pa kreditë. Korpusi përfshin used/cap.
404UUID e punës nuk u gjet.
409Shkarkimi u kërkua para se të përfundonte detyra.

Çdo faqe e përpunuar kushton kredite (1/faqe në nivelin e shpejtë, më shumë në premium). Planet e paguar rrisin kufijtë e faqes për file dhe shtojnë përparësinë. Shiko çmimi.

Pyetja e shpeshtë

Krijo një llogari të lirë dhe hap Faqja e llogarisë, token juaj është shfaqur atje me një buton kopje.

Po, file me 5 faqe ose më pak kthen rezultatin e plotë në përgjigjen POST, kështu që nuk duhet të kërkohet për shumicën e figurave dhe PDF të shkurtra.

Mbi 100, duke përfshirë latinisht, CJK, arabisht, cirilik dhe shkrime indiane. Përdorimi language=auto për të zbuluar, ose për të kaluar një kod të veçantë.

Shkarkimet përpunohen vetëm për t'ju përgjigjur pyetjeve tuaja dhe fshihen automatikisht. Nuk shisim, ndajmë apo trajnojmë kurrë dokumentet tuaja.

Përdorimi matët për faqe në balancën e llogarisë suaj: thirrjet anonime marrin një pagesë ditore për IP, llogaritë pa pagesë marrin një kosh mujor dhe planet e paguar përdorin kreditë të blerë me një maksimum më të lartë për faqe për file dhe përparësi. Kur të përfundoni, merrni një 402 me përdorim dhe limit në trup.

Mund të dërgosh PNG, JPG, WEBP, GIF, BMP, TIFF dhe PDF me shumë faqe. Shkarko rezultatet si txt, md, docx, pdf (me mundësi kërkimi), csv ose json nëpërmjet parametrit të formatit të pikës së fundit të shkarkimit.

400 është një file që mungon, lloji i pasuportuar, ose file është tepër i madh; 401 një token që mungon ose është i pavlefshëm; 402 jashtë faqes; 404 një UUID i panjohur i punës; dhe 409 një shkarkim i kërkuar para se puna të përfundojë. Trupat e gabimeve përfshijnë një mesazh të shkurtër.

Një objekt pune me gjendjen, nivelin, gjuhën, page_count dhe mean_confidence, plus tekstin e plotë dhe markdown. Array i faqes ndanë çdo faqe në blloqe me tekstin e tyre, kutinë kufitare (bbox) dhe besueshmërinë për bllok.

Përdor CPU (e paracaktuar) për njohje të shpejtë dhe me kosto të ulët të dokumenteve të pastra të shtypura. Përdor vlm, motorin premium AI, për shkrimin me dorë, strukturën komplekse ose me shumë kolona, matematikën dhe përkthimin, ku është shumë më i saktë.

Paso instrumentin me një slug (p.sh. summarize-pdf ose ask-pdf) për të para-frame chat për atë detyrë, kështu që ndihmësi është i rregulluar për të përmbledhur ose për t'iu përgjigjur pyetjeve rreth dokumentit.

Filet me 5 faqe ose më pak kthehen në linjë në përgjigjen POST. Filet më të mëdhenj kthehen menjëherë si në pritje ose në përpunim, dhe ju pyetni GET /api/v1/ocr/<uuid>/ deri sa gjendja është e përfunduar ose dështon. Planet e paguar rrisin kufirin e faqes për file.

API është REST i thjeshtë mbi HTTPS, kështu që punon nga çdo gjuhë me një klient HTTP, shiko shembujt Python, Node.js dhe cURL më lart. Nuk ka SDK për t'u instaluar; disa rreshta të kodit standard HTTP janë gjithçka që ju duhet.