PDF.chat API
PDF və chat ilə birlikdə öz tətbiqinizdən yükləyin - suallar verin və 100-dən çox dildə səhifəyə istinad edilmiş cavablar alın. Səhifəyə görə ölçülür, təəccüblü şeylər yoxdur.
_Nəzarət
PDF.chat API kiçik bir REST interfeysidir. İlk öncə siz POST Sənədi qəbul etmək və sənədin mətni və səhifə başına bölünməsi (mətn, sərhəd qutusu, etibarlılıq) ilə iş geri almaq üçün sənədi seçin. Sonra siz POST Bu işlə bağlı suallar ver və hər biri səhifəni qeyd edərək sənəddə əsaslanan cavablar al. 5 və ya daha az səhifəlik işlər sətir daxilində geri qaytarılır; daha böyük işlər dərhal bir cavabla geri qaytarılır pending status done.
- Əsas Ünvan:
https://pdf.chat - Sənədlər PDF, Word, PowerPoint, mətn və şəkillər (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat daxil: səhifə istinadları ilə cavablar; keçmiş son nöqtəsi vasitəsilə transkriptlər
- Mətn çıxarışı:
txt,md,docx,pdf,csv,json - Oxuma motorları:
cpu(yüksək sürətli, çap olunmuş sənədlər) vəvlm(premium AI, əlyazma, mürəkkəb tərtibat, riyaziyyat)
Tanıtma
_Təsdiqlə API token (bu faylları tapın) hesab səhifəsi) bir Carrier başlığı olaraq:
Authorization: Bearer YOUR_API_TOKEN
Siz də keçə bilərsiniz ?api_token=… sorğu parametri olaraq. İstifadə hesabınızın səhifə balansına görə ölçülür.
Sənədi göndər
POST /api/v1/ocr/, çox hissəli form yükləməsi.
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"
İşi geri qaytarır. ≤5 səhifə faylları üçün artıq işdir done mətnlə; böyük fayllar geri gəlir pending/processing, vəziyyət son nöqtəsi sorğusunu apar.
{
"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 } ] } ]
}
Nəticə
GET /api/v1/ocr/<uuid>/, sorğu status :dir done ya da failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
Bir formatı yüklə
GET /api/v1/ocr/<uuid>/download/?format=md, nəticəni ixrac et format aşağıdakılardan biridir 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
Sənədlə söhbət et
Bitmiş iş haqqında suallar ver. Cavablar yalnız çıxarılmış mətn və mənbə səhifəsinə istinad edir. Hesab tokeni tələb edir, chat xüsusiyyəti hesab-qapılıdır.
POST /api/v1/chat/<uuid>/, JSON bədəni {"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?"}'
Yardımçı ismarışını cavabı və səhifələrin siyahısı ilə geri qaytarır:
{"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/, iş üçün tam söhbət transkriptini al
Kod nümunələ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?"}'
Parametrlər
| Sahə | Növ | İzahat |
|---|---|---|
file | file | Gərəklidir. İşlənəcək rəsm ya da PDF. |
tier | string | cpu (öncəki, sürətli/çap edilmiş) ya da vlm (premium AI: əlyazma, tərtibat, riyaziyyat). |
language | string | auto (ölçülü) ya da dil kodu (en, ch, ja, ar,...) |
tool | string | Seçilmiş alət sluq (məsələn summarize-pdf, ask-pdfchat-ci ildən etibarən bu prosessorlar istehsal olunur. |
Xətalar və məhdudiyyətlər
| Kod | Mə'na |
|---|---|
400 | Fayl yoxdur, dəstəklənməyən növ, ya da çox böyükdür. |
401 | Eksik ya da səhv API tokeni. |
402 | Səhifələr yox, günlük/aylıq azad limit çatıb, ya da kredit yoxdur. Cəmi daxildir used/cap. |
404 | İş UUID-i tapıla bilmədi. |
409 | İş bitməmişdən əvvəl yükləmə istənildi. |
Hər bir səhifə kreditlərə dəyər (yüksək səviyyədə 1/səhifə, premium səviyyədə daha çox). Ödənişli planlar fayl başına səhifə limitini artırır və prioritet əlavə edir. Bax qiymətləndirmə.
Tez-tez soruşulan suallar
language=auto müəyyən bir kodu aşkar etmək və ya keçmək üçün.