PDF.chat APIa

Igo PDF bat eta chat zure aplikaziotik — egin galderak eta jaso erantzunak orrialdean, 100 hizkuntza baino gehiagotan. Orri bakoitzeko neurketa, sorpresarik gabe.

Orokorra

PDF.chat APIa REST interfaze txiki bat da. Lehenengo, POST dokumentu bat dokumentua harrapatzeko eta dokumentuaren testuarekin eta orrialde bakoitzeko banaketarekin (testua, muga-koadroak, konfiantza) lan bat itzultzeko. Ondoren, POST galderak egin lan horren aurka eta dokumentuan oinarritutako erantzunak jaso, bakoitzak bere orrialdea aipatuz. 5 orri edo gutxiagoko lanak lerroan itzultzen dira; lan handiagoek berehala itzultzen dira pending egoera done.

  • Oinarrizko URLa: https://pdf.chat
  • Dokumentuak: PDF, Word, PowerPoint, testua eta irudiak (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat kanpoan: erantzunak orrialde-aipamenekin; transkribapenak historiaren amaiera-puntuaren bidez
  • Prozesatutako testua irteerako: txt, md, docx, pdf, csv, json
  • Irakurketa-motorrak: cpu (dokumentu azkarrak, inprimatuak) eta vlm (AI premium, eskuz idaztea, diseinu konplexua, matematika)

Autentifikazioa

Autentifikatu zure API token-a (Topatu zure ordenagailuan) kontu-orrialdea) Bearer goiburu gisa:

Authorization: Bearer YOUR_API_TOKEN

Pasatu ere egin dezakezu. ?api_token=… kontsulta-parametro gisa. Erabilera zure kontuko orri-balantzearen arabera neurtzen da.

Bidali dokumentua

POST /api/v1/ocr/, zati anitzeko formularioa igotzen.

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"

Lanaren informazioa itzultzen du. ≤5 orrialdeko fitxategientzat jadanik dago done testuarekin; fitxategi handiagoak itzuliko dira pending/processing, egoeraren amaiera-puntua galdetu.

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

Lortu emaitza

GET /api/v1/ocr/<uuid>/, galdetu status da done edo failed.

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

Deskargatu formatu bat

GET /api/v1/ocr/<uuid>/download/?format=md, esportatu emaitza. format hauetako bat da 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 dokumentu batekin

Egin galdera amaitu den lan bati buruz. Erantzunak erauzitako testuan bakarrik oinarritzen dira eta iturburu-orrialdea aipatzen dute. Kontu-tokena behar da, chat ezaugarria kontu-gateatua da.

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

Laguntzailearen mezua itzultzen du bere erantzunarekin eta aipaturiko orrialdeen zerrendarekin:

{"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/, lortzen du lan baten elkarrizketa-transkribapen osoa.

Kodearen adibideak

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

Parametroak

EremuaMotaAzalpena
filefileBeharrezkoa. Prozesatzeko irudia edo PDFa.
tierstringcpu (lehenetsia, azkarra/inprimatua) edo vlm (AI premium: eskuz idaztea, diseinua, matematika).
languagestringauto (lehenetsia) edo hizkuntza-kode bat (en, ch, ja, ar, …).
toolstringAukerazko tresna slug-a (adib. summarize-pdf, ask-pdfchat ordenagailuak chat ordenagailuak chat ordenagailuak

Erroreak eta mugak

KodeaEsanahi
400Fitxategirik ez, onartzen ez den mota edo fitxategi handia.
401API token falta da edo baliogabea da.
402Orrialderik ez, eguneko/hileko muga librea lortu da, edo krediturik ez. Gorputza honela dago osatuta: used/cap.
404Ez da lanaren UUIDa aurkitu.
409Deskarga eskatu da lanaren amaiera baino lehen.

Prozesatutako orrialde bakoitzak kreditu-kostu bat du (1/orrialde maila azkarrean, gehiago premium mailan). Ordaindutako planek fitxategiko orrialde-mugak handitzen dituzte eta lehentasuna gehitzen dute. Ikusi prezioa.

Maiz egiten diren galderak

Sortu kontu doakoa eta ireki zure kontu-orrialdea, zure token-a kopiatzeko botoi batekin agertzen da.

Bai, 5 orri edo gutxiagoko fitxategiek emaitza osoa itzultzen dute POST erantzunean, beraz, ez da galdeketarik behar irudi gehienentzat eta PDF laburretarako.

100 baino gehiago, latinezko, CJK, arabiar, ziriliko eta indiar idazkera barne. Erabili language=auto kode jakin bat detektatu edo pasatzeko.

Igoketak zure galderei erantzuteko bakarrik prozesatu eta automatikoki ezabatzen dira. Ez dugu inoiz salduko, partekatuko edo zure dokumentuetan trebatuko.

Erabilera orri bakoitzeko neurtzen da zure kontuaren balantzearen arabera: dei anonimoak IP bakoitzeko eguneko muga bat jasotzen dute, doako kontuek hileko muga bat, eta ordaindutako planek erositako kredituak erabiltzen dituzte fitxategi bakoitzeko orrialdeen muga eta lehentasun handiagoarekin. Amaitzen duzunean, 402 mezua jasotzen duzu, gorputzean erabilita eta mugatuta.

PNG, JPG, WEBP, GIF, BMP, TIFF eta orrialde anitzeko PDFak bidali ditzakezu. Emaitzak txt, md, docx, pdf (bilagarria), csv edo json gisa deskargatzen dira, deskarga-amaierako puntuaren formatu-parametroaren bidez.

400 fitxategi bat falta da, onartzen ez den mota edo fitxategi handiegia da; 401 token bat falta da edo baliogabea da; 402 orrialderik ez; 404 lanaren UUID ezezaguna; eta 409 lanaren amaiera baino lehen deskarga eskatu da. Errore-gorputzek mezu labur bat dute.

Lana egiteko objektu bat, egoera, maila, hizkuntza, page_count eta mean_confidence dituena, testu osoa eta markdown gehituz. Page array-ak orri bakoitza testua, muga-koadroa (bbox) eta bloke bakoitzeko konfiantza duten blokeetan zatitzen du.

Erabili PUZ (lehenetsia) inprimatutako dokumentu garbiak azkar eta kostu txikiz ezagutzeko. Erabili vlm, AI motor premiuma, eskuz idazteko, diseinu konplexu edo zutabe anitzekoetarako, matematikarako eta itzulpenerako, zehatzagoa delako.

Pasatu tresna bat slug batekin (adibidez summarize-pdf edo ask-pdf) chat-a zeregin horretarako aurremarkatzeko, laguntzaile hau dokumentuari buruzko galderak laburbiltzeko edo erantzuteko egokituta egon dadin.

5 orri edo gutxiagoko fitxategiak POST erantzunean itzultzen dira lerroan. Fitxategi handiagoak berehala itzultzen dira zain edo prozesatzen bezala, eta GET /api/v1/ocr/ galdetzen duzu<uuid>/ egoera egina edo huts egina izan arte. Ordainpeko planek fitxategi bakoitzeko orrialdeen muga igotzen dute.

APIa HTTPS-en REST soila da, beraz, HTTP bezeroa duen edozein hizkuntzatan funtzionatzen du, ikusi Python, Node.js eta cURL adibideak goian. Ez dago SDKrik instalatzeko; HTTP kode estandarreko lerro batzuk behar dituzu.