PDF.chat API
PDF файлын жүктеп, chat-нан астам сұрақ қойып, 100-ден астам тілде жауап алыңыз. Әрбір бет үшін есептеледі, ештеңе таңқаларлық емес.
Тұжырымдамасы
PDF.chat API - шағын REST интерфейсі. Алдымен POST Құжатты қабылдап, мәтінін және бетті бөлуін (мәтін, шектеу қоршаулары, сенімділік) қамтитын тапсырма алу үшін құжатты таңдаңыз. Содан кейін POST Тапсырмаға сұрақтар қойып, жауаптарын құжаттан алып, әрбір сұралған бетті келтіреді. 5 беттен кем тапсырмалар жолда қайтарылады; үлкен тапсырмалар бірден сұраусыз қайтарылады. pending сұраусыз күй- жай done.
- Негізгі URL:
https://pdf.chat - Құжаттар: PDF, сонымен қатар Word, PowerPoint, мәтін және суреттер (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat out: беттің дәйексөзімен жауап береді; журналдың соңы арқылы көшірмейді
- Жұмысталған мәтін шығысы:
txt,md,docx,pdf,csv,json - Оқу тетігі:
cpu(жедел, басып шығарылған құжаттар) жәнеvlm(ең жақсы ДЖ, қолтаңба, күрделі пішімі, математика)
Аутентификация
Аутентификация API токені (оны компьютеріңізде табуға болады) тіркелгі парақшасы) Bearer айдары ретінде:
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 } ] } ]
}
Нәтижесін алу
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 (premium AI: қолтаңба, орналасу, математика). |
language | string | auto (әдетті) немесе тіл коды (en, ch, ja, ar,...). |
tool | string | Қосымша құрал slug (мысалы summarize-pdf, ask-pdfchat-нан астам түрі белгілі. |
Қателер мен шектеулер
| Код | Мағынасы |
|---|---|
400 | Файлы жоқ, түрі қолдау таппаған немесе файл тым үлкен. |
401 | API токені жоқ не жарамсыз. |
402 | Беттер жоқ, күнделікті/ айлық бос уақыт шегі жетті, немесе кредиттер жоқ. Мәтінінде мыналар бар used/cap. |
404 | Тапсырманың UUID- і табылмады. |
409 | Тапсырма аяқталу алдында жүктеп алу сұралды. |
Әрбір өңделген бет кредитке бағаланады (жедел деңгейде 1/ бет, премиум деңгейде көбірек). Ақылы жоспарлар файлдағы бет санының шектеуін арттырып, артықшылықты қосады. Қараңыз бағасы.
Жиі қойылатын сұрақтар
language=auto анықтау немесе белгіленген кодты беру үшін.