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) etavlm(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
| Eremua | Mota | Azalpena |
|---|---|---|
file | file | Beharrezkoa. Prozesatzeko irudia edo PDFa. |
tier | string | cpu (lehenetsia, azkarra/inprimatua) edo vlm (AI premium: eskuz idaztea, diseinua, matematika). |
language | string | auto (lehenetsia) edo hizkuntza-kode bat (en, ch, ja, ar, …). |
tool | string | Aukerazko tresna slug-a (adib. summarize-pdf, ask-pdfchat ordenagailuak chat ordenagailuak chat ordenagailuak |
Erroreak eta mugak
| Kodea | Esanahi |
|---|---|
400 | Fitxategirik ez, onartzen ez den mota edo fitxategi handia. |
401 | API token falta da edo baliogabea da. |
402 | Orrialderik ez, eguneko/hileko muga librea lortu da, edo krediturik ez. Gorputza honela dago osatuta: used/cap. |
404 | Ez da lanaren UUIDa aurkitu. |
409 | Deskarga 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
language=auto kode jakin bat detektatu edo pasatzeko.