PDF.chat API

Uzstādiet PDF un chat ar to no savas lietotnes — uzdot jautājumus un saņemt atbildes uz lapu, 100+ valodās. Meted par lapu, nav pārsteigumu.

Pārskats

PDF.chat API ir maza REST saskarne. Vispirms POST dokuments, lai to iespiestu un saņemtu darbu ar dokumenta tekstu un sadalījumu par lapu (teksts, saistošā kaste, uzticamība). Tad jūs POST jautājumus pret šo darbu un saņemt atbildes, pamatojoties uz dokumentu, katru norādot lapu tā nāca no. Darbs 5 lapas vai mazāk atgriešanās tiešsaistē; lielāki darbi atgriežas nekavējoties ar pending statusu, ka jūs aptauja līdz done.

  • Pamata URL: https://pdf.chat
  • Dokumenti: PDF, plus vārds, PowerPoint, teksts, un attēli (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat izejošo: atbildes ar lapu citācijām; transkripti caur vēsturisko mērķa kritēriju
  • Izņemto tekstu: txt, md, docx, pdf, csv, json
  • Lasīšanas dzinēji: cpu (ātri iespiesti dok.) un vlm (premium AI, rokraksts, sarežģīts izkārtojums, matemātika)

Autentificēšana

Autentificēties ar savu API žetons (izskaidrojiet konta lapa) kā vestera galveni:

Authorization: Bearer YOUR_API_TOKEN

Jūs varat arī nodot ?api_token=… kā vaicājuma parametru. Izmantojums ir mērīts attiecībā pret jūsu konta lapas bilanci.

Iesniegt dokumentu

POST /api/v1/ocr/, multidaļējas formas augšupielāde.

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"

Atgriež darbu. Attiecībā uz ≤5 lapas failiem tas jau ir done tekstu; atgriežas lielākiem failiem pending/processing, apsekot statusa mērķa kritēriju.

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

Iegūt rezultātu

GET /api/v1/ocr/<uuid>/, aptauja līdz status s ta done vai failed.

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

Lejupielādēt formātu

GET /api/v1/ocr/<uuid>/download/?format=md, eksportēt rezultātu. format ir viens no 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 with a document

Uzdot jautājumus par pabeigtu darbu. Atbildes ir balstītas tikai iegūto tekstu un atsaucas uz avota lapu. Nepieciešams konta žetons, chat funkcija ir grāmatvedības.

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

Atgriež palīgziņojumu ar savu atbildi un sarakstu ar citētām lapām:

{"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/, Ielādējiet pilnu sarunu protokolu darbam.

Koda piemēri

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

Parametri

LauksVeidsApraksts
filefileNepieciešams. Attēls vai PDF apstrādāt.
tierstringcpu (noklusējums, ātrs/drukāts) vai vlm (Airija AI: rokraksts, izkārtojums, matemātika).
languagestringauto (noklusētā) vai valodas kods (en, ch, ja, ar,...).
toolstringNeobligāts darbarīka iegremdējums (piem., summarize-pdf, ask-pdf) to pre-frame the chat for that task.

Kļūdas & limiti

KodsNozīme
400Nav faila, neatbalstīta tipa vai faila pārāk liels.
401Trūkst vai nav spēkā API žetons.
402No lapām, dienas / mēnesī bezmaksas limits sasniegts, vai nav kredīti. used/cap.
404Nav atrasts darba UUID.
409Lejupielādēt pieprasīts pirms darbs pabeigts.

Katrā lapā apstrādātas izmaksu kredīti (1 lapa par ātru līmeni, vairāk par prēmiju). Palieliniet failu lapas griestiem un pievienot prioritāti. Skatīt cenu noteikšana.

Bieži uzdotie jautājumi

Izveidot bezmaksas kontu un atvērt savu konta lapa, jūsu žetons ir redzams tur ar kopiju pogu.

Jā, faili 5 lapas vai mazāk atgriež pilnu rezultātu inline pēc tam, lai nebūtu nepieciešams notvert vairumam attēlu un īsu PDF.

Vairāk nekā 100, ieskaitot latīņu, CJK, arābu, Kirilica un indiku skriptus. Izmantošana language=auto lai atklātu vai nodotu konkrētu kodu.

Uzsūtījumi tiek apstrādāti tikai, lai atbildētu uz jūsu jautājumiem un dzēsti automātiski. Mēs nekad pārdot, dalīties vai vilciens uz jūsu dokumentiem.

Lietošana tiek mērīta katrā lapā pēc konta bilances: anonīmi zvani saņemt vienu IP dienas naudu, bezmaksas kontu ikmēneša spaini, un apmaksāti plāni izmantot iegādātos kredītus ar augstāku failu lapas cepuru un prioritāti. Kad jūs iziet jūs saņemsiet 402 ar izmantoto un vāciņu organismā.

Jūs varat nosūtīt PNG, JPG, WEBP, GIF, BMP, TIFF, un vairāku lapu PDF. Rezultāti lejupielādēt kā txt, md, docx, pdf (izpētāms), csv, vai json izmantojot lejupielādes mērķapjoma formātu parametru.

400 ir trūkstošs fails, neatbalstīts tips vai fails pārāk liels; 401 trūkstošs vai nederīgs žetons; 402 no lapām; 404 nezināms darbs UUID; un 409 lejupielāde pieprasīta pirms darba pabeigšanas. Kļūdas iestādes ietver īsu vēstuli.

Darba objekts ar statusu, līmenis, valoda, lapa_number, un vidējā_ticamība, plus pilns teksts un atzīmes. Lappušu masīvs pārrauj katru lapu blokos ar savu tekstu, ribās rūtiņu (bbox), un par bloku pārliecību.

Izmantojiet cpu (noklusējuma) ātrai, lētai tīru drukātu dokumentu atzīšanai. Izmantojiet vlm, premium AI dzinēju, roku rakstīšanai, sarežģītiem vai vairāku kolonnu izkārtojumiem, matemātika, un tulkojums, ja tas ir daudz precīzāk.

Iziet rīks ar slug (piemēram, summarize-pdf vai jautā-pdf) iepriekš izstrādāt chat par šo uzdevumu, tāpēc asistents ir pielāgots, lai apkopotu vai atbildētu uz jautājumiem par dokumentu.

Faili 5 lapas vai mazāk atgriezeniski pēc pasta atbildē. Lielāki faili atgriezties uzreiz kā vēl nav pabeigta vai apstrādi, un jūs aptaujāt GET /api/v1/ocr /<uuid>/ līdz stāvoklis ir izdarīts vai neizdevās. Paceliet faila lapas vāku.

API ir vienkārša REST pār HTTPS, tāpēc tā darbojas no jebkuras valodas ar HTTP klientu, skatiet Python, Node.js, un cURL piemērus iepriekš. Nav SDK instalēt; dažas līnijas standarta HTTP kodu ir viss, kas jums nepieciešams.