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
filefileGərəklidir. İşlənəcək rəsm ya da PDF.
tierstringcpu (öncəki, sürətli/çap edilmiş) ya da vlm (premium AI: əlyazma, tərtibat, riyaziyyat).
languagestringauto (ölçülü) ya da dil kodu (en, ch, ja, ar,...)
toolstringSeç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

KodMə'na
400Fayl yoxdur, dəstəklənməyən növ, ya da çox böyükdür.
401Eksik ya da səhv API tokeni.
402Sə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

Pulsuz hesab yaradın və hesabınızı açın hesab səhifəsi, tokeniniz orada bir kopya düyməsi ilə göstərilir.

Bəli, 5 və ya daha az səhifəlik fayllar POST cavabında tam nəticəni geri qaytarır, buna görə də çoxlu şəkillər və qısa PDF-lər üçün sorğu tələb olunmur.

Latin, CJK, ərəb, kiril və hindi yazıları daxil olmaqla 100-dən çox yazı növü. language=auto müəyyən bir kodu aşkar etmək və ya keçmək üçün.

Yükləmələr yalnız suallarınıza cavab vermək üçün işlənir və avtomatik olaraq silinir. Biz heç vaxt sənədlərinizi satmırıq, paylaşmırıq və ya öyrədirik.

İstifadə səhifə başına hesab balansınıza qarşı ölçülür: anonim zənglər IP başına gündəlik limit alır, pulsuz hesablar aylıq limit alır, ödənişli planlar isə daha yüksək fayl başına səhifə limiti və prioriteti olan kreditlər istifadə edir. Bu limit bitdikdə, istifadə edilmiş və limiti olan 402 səhifəsi alacaqsınız.

PNG, JPG, WEBP, GIF, BMP, TIFF və çox səhifəli PDF göndərə bilərsiniz. Nəticələr yükləmə son nöqtəsinin format parametri vasitəsilə txt, md, docx, pdf (axtarıla bilən), csv və ya json olaraq yüklənir.

400 eksik fayl, dəstəklənməyən növ, ya da çox böyük fayldır; 401 eksik ya da səhv tokendir; 402 səhifələr yoxdur; 404 namə'lum iş UUID'i; və 409 iş bitmədən əvvəl yükləmə istənilir. Xəta bədəni qısa bir ismarış daxil edir.

Vəziyyət, səviyyə, dil, page_count və mean_confidence ilə iş cismi, əlavə olaraq tam mətn və markdown. Səhifə sırası hər səhifəni öz mətni, sərhəd qutusu (bbox) və bloka görə etibarlılıqla bloklara ayırır.

Təmiz çap olunmuş sənədlərin sürətli və ucuz tanıması üçün cpu (öncəki) istifadə et. Əlavə AI mühərriki olan vlm-i əlyazma, mürəkkəb və çox sütunlu tərtiblər, riyaziyyat və tərcümə üçün istifadə et.

Bu iş üçün chat-i əvvəlcədən çərçivəyə salmaq üçün slug ilə (məsələn summarize-pdf ya da ask-pdf) vasitəni keçin, beləliklə köməkçi sənəd haqqında sualları qısa şəkildə və ya cavablandıracaq.

5 və ya daha az səhifəlik fayllar POST cavabında sətir daxilində geri qaytarılır. Böyük fayllar dərhal gözləmə və ya işləmə olaraq geri qaytarılır və siz GET /api/v1/ocr/ sorğusunu edirsiniz<uuid>/ vəziyyət bitənə və ya bacarılmayana qədər. Ödənişli planlar hər fayl üçün səhifə limitini artırır.

API HTTPS üzərində sadə REST'dir, buna görə HTTP müştərisi ilə hər hansı bir dildən işləyir, Python, Node.js və cURL nümunələrini yuxarıda gör. Qurulması lazım olan SDK yoxdur; standart HTTP kodunun bir neçə sətirinə ehtiyacınız var.