PDF.chat API
אַרײַנשטעלן אַ PDF און chat מיט עס פֿון אייער אייגענע אַפּליקאַציע — פרעגן פֿראַגעס און באַקומען ענטפֿערס ציטירט צו דער בלעטערער, אין 100+ שפּראַכן. מעטערד פּער בלעטערער, קיין יבערראַשן.
איבער־פֿאַרבײַטונג
די PDF.chat API איז אַ קליין REST צובינד. ערשטער װעלסטו POST אַ דאָקומענט צו פֿאַרװײַלן און צוריקצושטעלן אַ אַרבעט מיט דעם דאָקומענט־טעקסט און אַ בלעטער־צונויפֿגײט (טעקסט, װײַטער־קעסטל, אױספֿיר). דעמאָלט װעלסטו POST פֿראַגעס קעגן דעם אַרבעט און באַקומען ענטפֿערס געגרינדעט אין דעם דאָקומענט, יעדער ציטירט די בלעטער פֿון וואָס עס קומט. אַרבעטן פֿון 5 בלעטער אָדער ווייניקער װײַזן זיך אױס אין שורה; גרעסערע אַרבעטן װײַזן זיך אױס אַװעק מיט אַ pending סטאַטוס װאָס דו װילסט װײַזן ביז done.
- באַזע URL:
https://pdf.chat - דאָקומענטן אין: PDF, און אויך וואָרט, פּאָװענטש, טעקסט און בילדער (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat out: ענטפֿערן מיט בלעטערער ציטירן; איבערשרײַבן װײַזט צו דער געשיכטע סוף־פּונקט
- טעקסט פֿאַרב
txt,md,docx,pdf,csv,json - לײענונג־מאַשינען:
cpu(פֿרײַטע, אױסגעדרוקטע דאָקומענטן) אוןvlm(פֿירערלעכע קײן, האַנט־שרײַב, קאָמפּליצירטע שריפֿטצײכן, מאַטאַמאַטישע)
אױטענטיפֿאַקאַציע
אױסגלײַכונג מיט דיין API טאַגאָן (פֿאַרהיטן דעם װײַזער) חשבון) װי אַ קאָפּ־צעטל:
Authorization: Bearer YOUR_API_TOKEN
איר קענט אויך אַרײַנשרײַבן ?api_token=… װי אַ פֿראַגע־פּאַראַמעטער. ניצט איז געװײנטלעך קעגן די בלעטערער־באַשלוס פֿון דיין קונה
אַרײַנשרײַבן אַ דאָקומענט
POST /api/v1/ocr/, אַרײַנשטעלן אַ פֿאָרמאַטירונג
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"
װײַזט צוריק דעם אַרבעט. פֿאַר ≤5־סײַטיק טעקע איז עס שוין דאָ done מיטן טעקסט; גרעסערע טעקע־נאָמען קומען צוריק pending/processing, פֿאַרװײַל די סטאַטוס סוף־פּונקט
{
"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 } ] } ]
}
קלײַב אַלץ אױסselect-action
GET /api/v1/ocr/<uuid>/, פֿראַגע ביז status איז done אָדער failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
אַרײַנשטעלן פֿאָרמאַטירונג
GET /api/v1/ocr/<uuid>/download/?format=md, אַרײַנשרײַב די רעזולטאטן format איז אײן פֿון 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
פֿראַגע וועגן אַ פֿאַרענדיקטן אַרבעט. ענטפֿערס זײַנען נאָר אױסגעפֿירט אין דעם אױסגעפֿירטן טעקסט און ציטירן דעם מקור־װײַז. דאַרף אַ קאָפּיע־טאָג, דער chat־פֿעיִקײט איז קאָפּיע־געשטראָכן
POST /api/v1/chat/<uuid>/, 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?"}'
װײַז צוריק דעם װײַזער־נאָוטבוק מיט זײַן ענטפֿער און אַ רשימה פֿון ציטירטע בלעטער:
{"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/, אַרײַנשטעלן די װײַטער־װײַז
קאָדירונג
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?"}'
פּאַראַמעטערס
| פֿעלדער | טיפּ: | באַשרײַבונג |
|---|---|---|
file | file | נייטיק בילד אָדער PDF צו באַהאַנדלען |
tier | string | cpu (געװײנטלעכער, שנעל/דרוקט) אָדער vlm (פֿאַרװײַז קײן װײַז) |
language | string | auto (געװײנטלעכער) אָדער אַ שפּראַך־קאָד (en, ch, ja, ar,...) |
tool | string | טעקסט פֿאַרב summarize-pdf, ask-pdf) צו װײַזן די chat פֿאַר דעם אַרבעט |
דורכפֿאַלן און װײַטער־פֿאַרבינדונגען
| קאָד | באַטרעף |
|---|---|
400 | ניט קײן טעקע, ניט געשטיצט טיפּ, אָדער טעקע צו גרײס |
401 | ניטאָ אַ װײַטער־פֿאַרבײַטונג |
402 | ניט גענוג בלעטער, טאָג־/מײַנלעך פרייהײט־לימיט דערגרייכט, אָדער קײן קרעדיטן. דער גוף אַרײַנשרײַבט used/cap. |
404 | אַרבעט UUID ניט געפֿונען |
409 | אַרײַנשטעלן %s |
יעדער זײַט װאָס איז באַהאַנדלט װײסט אַ צאָל קרעדיטס (1/װײַט אין דער שנעלער מדרגה, מער אין דער פּרעמיע). באַצאָלטע פּלאָנים װײַזן אַ טעקע־װײַט און װײַזן אַ פּריאָריטעט. זע װײַז.
פֿראַגעס
language=auto צו דערקענען אָדער איבערצוגעבן אַ באַזונדערע קאָד