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

Параметрлер

ӨрісТүріСипаттамасы
filefileНегізгі. Процесстелетін кескін не PDF.
tierstringcpu (әдетті, жылдам/басып шығару) не vlm (premium AI: қолтаңба, орналасу, математика).
languagestringauto (әдетті) немесе тіл коды (en, ch, ja, ar,...).
toolstringҚосымша құрал slug (мысалы summarize-pdf, ask-pdfchat-нан астам түрі белгілі.

Қателер мен шектеулер

КодМағынасы
400Файлы жоқ, түрі қолдау таппаған немесе файл тым үлкен.
401API токені жоқ не жарамсыз.
402Беттер жоқ, күнделікті/ айлық бос уақыт шегі жетті, немесе кредиттер жоқ. Мәтінінде мыналар бар used/cap.
404Тапсырманың UUID- і табылмады.
409Тапсырма аяқталу алдында жүктеп алу сұралды.

Әрбір өңделген бет кредитке бағаланады (жедел деңгейде 1/ бет, премиум деңгейде көбірек). Ақылы жоспарлар файлдағы бет санының шектеуін арттырып, артықшылықты қосады. Қараңыз бағасы.

Жиі қойылатын сұрақтар

Тіркелгіні құру тіркелгі парақшасы, жетоныңыз көшірмелеу батырмасымен көрсетіледі.

Иә, 5 бет немесе одан аз файлдар POST жауапында толық нәтижесін қайтарады, сондықтан суреттер мен қысқа PDF файлдар үшін сұрау қажет емес.

100- ден астам, оның ішінде латын, иероглиф, араб, кирил және үнді жазулары. language=auto анықтау немесе белгіленген кодты беру үшін.

Жүктелген файлдар тек сұрақтарыңызға жауап беру үшін ғана өңделеді және автоматты түрде өшіріледі. Біз құжаттарды сатуға, бөлісуге немесе оқытуға болмайды.

Қолдануы әрбір бет үшін есептік жазба балансыңызға қарай есептеледі: анонимді шақырулар күн сайын IP- адресіне қарай шектеледі, тегін тіркелгілер ай сайын шектеледі, төлемді жоспарлар сатып алынған кредиттерді файлға қарай бет мөлшері мен артықшылығы жоғары болғанда пайдаланады. Кредиттеріңіз біткенше, 402 деген қате хабарлама пайда болады, оның мазмұны қолданылған және шектеулі деген сөздермен толтырылады.

PNG, JPG, WEBP, GIF, BMP, TIFF және көп бетті PDF файлдарын жібере аласыз. Нәтижелер txt, md, docx, pdf (іздеу мүмкіндігі бар), csv немесе json пішімінде жүктеп алынады.

400 деген файл жоқ, қолдауы жоқ немесе файл өте үлкен; 401 деген жоқ немесе жарамсыз белгі; 402 деген беттер жоқ; 404 деген тапсырманың беймәлім UUID- і; 409 деген тапсырма біткенше жүктеп алу керек. Қатенің мазмұны қысқа хабарлама.

Тапсырма нысаны, күйі, деңгейі, тілі, бет_ саны, mean_ confidence, толық мәтіні мен маркері бар. Беттер жиыны әрбір бетті мәтінімен, шектеу қоршауымен (bbox) және блок бойынша сенімділігімен блоктарға бөледі.

Процессорды (әдетті) таза басылған құжаттарды тез, арзан бағамен танып- білу үшін қолдану. vlm, AI- нің жоғары деңгейдегі тетігін қолтаңба, күрделі немесе көп бағанды сәйкестіктер, математика және аудару үшін қолдану, онда ол дәлдігі жоғары болады.

chat- ге осы тапсырма үшін алдын- ала фрейм жасау үшін slug (мысалы summarize- pdf не ask- pdf) құралын беру, сонда көмекші құжат туралы сұрақтарға жауап беруге немесе құжатты тұжырымдауға бейімделеді.

5 немесе одан аз бетті файлдар POST жауапында жол ішінде қайтарылады. Үлкен файлдар бірден күтіп тұрған немесе өңдеуде деп қайтарылады, GET / api/ v1/ ocr / сұрауын орындаңыз<uuid>/ күй- жайы біткен не жаңылысқанша. Ақылы жоспарлар бір файлға беттеу шегін көтереді.

API HTTPS арқылы REST- ті қолданады, сондықтан HTTP клиенті бар кез келген тілде жұмыс істейді, Python, Node. js, cURL мысалдарын қараңыз. Орнату керек SDK жоқ, тек қана стандартты HTTP кодының бірнеше жолы керек.