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(премиум AI, қўл ёзуви, мураккаб кўриниш, математика)
Тасдиқлаш
Сизнинг исмингиз билан тасдиқлаш API токен (Уни ўзингизнинг компьютерингизда топинг) ҳисоб саҳифаси) Carrier бошлиги сифатида:
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 (премиум AI: қўл ёзуви, кўриниш, математика). |
language | string | auto (одатдаги) ёки тил коди (en, ch, ja, ar(Бу оятда Аллоҳ таолонинг Ўзи ҳақидаги маълумотларни баён қилмоқда.) |
tool | string | Ижобий асбоб slug (масалан summarize-pdf, ask-pdf) бу вазифа учун chatни олдиндан фреймлаш учун. |
Хатолар ва чегаралар
| Код | Маънавий |
|---|---|
400 | Файл йўқ, қўлланмайдиган тур ёки файл жуда катта. |
401 | API токен йўқ ёки нодуруст. |
402 | Саҳифалар тугади, кунлик/ойлик эркинлик чегараси етилди ёки кредитлар йўқ. Ташкилот таркибида used/cap. |
404 | Иш UUID топилмади. |
409 | Иш тугашидан олдин юклаб олиш талаб қилинди. |
Ҳар бир саҳифани ишлаш кредитлар қийматига эга (тезкор даражада 1/саҳифа, премиум даражасида кўпроқ). Умумий тўловлар ҳар бир файл учун саҳифа қийматини оширади ва устуворликни қўшиб беради. Кўринг нарх.
Доимий сўраладиган саволлар
language=auto аниқ кодни аниқлаш ёки ўтказиш учун.