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?"}'

Парамтерлар

ДоираТуриТасвирлаш
filefileКўрсатма Ишлаб чиқиш учун тасвир ёки PDF.
tierstringcpu (одатий, тез/босилган) ёки vlm (премиум AI: қўл ёзуви, кўриниш, математика).
languagestringauto (одатдаги) ёки тил коди (en, ch, ja, ar(Бу оятда Аллоҳ таолонинг Ўзи ҳақидаги маълумотларни баён қилмоқда.)
toolstringИжобий асбоб slug (масалан summarize-pdf, ask-pdf) бу вазифа учун chatни олдиндан фреймлаш учун.

Хатолар ва чегаралар

КодМаънавий
400Файл йўқ, қўлланмайдиган тур ёки файл жуда катта.
401API токен йўқ ёки нодуруст.
402Саҳифалар тугади, кунлик/ойлик эркинлик чегараси етилди ёки кредитлар йўқ. Ташкилот таркибида used/cap.
404Иш UUID топилмади.
409Иш тугашидан олдин юклаб олиш талаб қилинди.

Ҳар бир саҳифани ишлаш кредитлар қийматига эга (тезкор даражада 1/саҳифа, премиум даражасида кўпроқ). Умумий тўловлар ҳар бир файл учун саҳифа қийматини оширади ва устуворликни қўшиб беради. Кўринг нарх.

Доимий сўраладиган саволлар

Бепул ҳисобни яратинг ва ўзингизнинг ҳисоб саҳифаси, сизнинг тегингиз нусха кўчириш тугмаси билан кўрсатилади.

Ҳа, 5 саҳифа ёки ундан кам файллар POST жавобида тўлиқ натижани қайтаради, шунинг учун кўплаб суратлар ва қисқа PDFлар учун сўровга эҳтиёж йўқ.

100 дан ортиқ, жумладан латин, CJK, араб, кирилл ва ҳинд ёзувлари. language=auto аниқ кодни аниқлаш ёки ўтказиш учун.

Юклаб олишлар фақат саволларингизга жавоб бериш учун ишлатилади ва автоматик равишда ўчирилади. Биз ҳеч қачон ҳужжатларингизни сотмаймиз, ўртоқлашмаймиз ёки ўқитмаймиз.

Ишлатилиши ҳар бир саҳифа учун ҳисоб балансингизга қараб ўлчанади: нотаниш қўнғироқлар ҳар бир IP учун кунлик квота олади, бепул ҳисоблар ойлик bucket ва тўловли планлар харид қилинган кредитларни ҳар бир файл учун юқори саҳифа чегараси ва устуворлиги билан фойдаланади. Сиз тугаганингизда, сиз 402 билан фойдаланилган ва чегараланган тана билан 402 ни оласиз.

Сиз PNG, JPG, WEBP, GIF, BMP, TIFF ва кўп саҳифали PDF форматларида юборишингиз мумкин. Натижаларни юклаб олиш охиридаги формат параметри орқали txt, md, docx, pdf (қидириш мумкин), csv ёки json шаклида юклаб олишингиз мумкин.

400 йўқотилган файл, қўлланилмайдиган тур ёки файл жуда катта; 401 йўқотилган ёки ноқонуний теги; 402 саҳифалар йўқ; 404 номаълум иш UUID; ва 409 иш тугашидан олдин юклаб олиш сўралган. Хатолар таркибига қисқа хабар ҳам киради.

Ҳолат, даража, тил, саҳифа_сони ва mean_confidence билан иш объекти, шунингдек, тўлиқ матн ва маркdown. Саҳифалар мажмуаси ҳар бир саҳифани матн, чегараланган қути (bbox) ва блок ишончлилиги билан блокларга ажратади.

Тўлиқ босилган ҳужжатларни тез ва арзон баҳода таниб олиш учун CPU (одатдаги) ни қўллаш. vlm, premium AI моторини қўлёзма, мураккаб ёки кўп-стуллар учун, математика ва таржима учун, бу жуда аниқроқ бўлган жойда қўллаш.

Бу вазифа учун chatни олдиндан фреймлаш учун slug (масалан summarize-pdf ёки ask-pdf) билан асбобни ўтказинг, шунинг учун ёрдамчи ҳужжат ҳақидаги саволларни қисқача ёки жавобан бериш учун созланган.

5 саҳифа ёки ундан кам файллар POST жавобида устун ичида қайтарилади. Кўп файллар тезда кутилаётган ёки ишлаётган сифатида қайтарилади ва сиз GET /api/v1/ocr/ сўровини ўтказасиз<uuid>/ токи ҳолат тугалланган ёки хато бўлгангача. Қўлланган режалар ҳар бир файл учун саҳифа лимитини оширади.

API HTTPS устидан оддий REST бўлиб, HTTP клиенти билан ҳар қандай тилдан ишлайди, Python, Node.js ва cURL мисолларини кўринг. Ўрнатиш учун SDK йўқ; стандарт HTTP кодининг бир неча сатрлари сизга керак бўлган барча нарса.