PDF.chat API

PDF файлын жүктөп алыңыз жана chat менен бирге өзүңүздүн тиркемеңизден - суроолоруңузду коюңуз жана 100дөн ашык тилдеги баракчага цитаталар менен жоопторду алыңыз. Бир барак үчүн өлчөмү, эч кандай таң калуу жок.

Кыскача баяндама

PDF.chat API - бул кичинекей REST интерфейси. Алды менен сиз POST Документти киргизүү үчүн документти тандап, документтин тексти жана ар бир беттин бөлүнүшү (текст, чектөө кутучалары, ишенимдүүлүк) менен тапшырманы алууну тандаңыз. Андан кийин POST Бул тапшырмага суроолор коюлат жана документте берилген жоопторду, ар биринин бетин келтирип, алууга болот. 5 же андан аз беттен турган тапшырмалар тексттин ичинде кайтарылат; чоңураак тапшырмалар тез арада "%s" менен кайтарылат 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 (premium AI: кол жазма, макет, математика).
languagestringauto (стандартты) же тил коду (en, ch, ja, ar, …
toolstringОпциональный инструментальный слаг (например, summarize-pdf, ask-pdf) бул тапшырма үчүн chatди алдын ала фреймдөө үчүн.

Каталар жана чектөөлөр

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

Каждый обработанный страницы стоит кредитов (1/страница в быстром режиме, больше в премиум режиме). Платежные планы увеличивают страницу на файл и добавляют приоритет. Посмотрите баасы.

Кайра-кайра берилүүчү суроолор

акысыз эсеп-фактураны түзүп, өзүңүздүн эсептик жазуусу, сиздин тегиңиз копиялоо баскычын көрсөтүү менен көрсөтүлөт.

Да, файлы размером 5 страниц или меньше возвращают полный результат в POST ответе, поэтому для большинства изображений и коротких PDF не требуется проверка.

100дөн ашык, анын ичинде латиница, CJK, араб, кирилл жана инди жазуулары. language=auto аныктоо үчүн же белгилүү бир кодду өткөрүү үчүн.

Жүктөлгөн файлдар сиздин суроолоруңузга жооп берүү үчүн гана иштелип чыгат жана автоматтык түрдө өчүрүлөт. Биз документтериңизди эч качан сатпайбыз, бөлүшпөйбүз же окута албайбыз.

Колдонуу ар бир барак үчүн эсептик жазуу балансына ылайык эсептелет: анонимдүү чалуулар күнүнө бир IPге, акысыз эсептик жазуулар ай сайын бир контейнерге, төлөнүүчү пландар сатып алынган кредиттерди колдонуп, ар бир файлга чектелген барактарды жана приоритетти жогорулатат. Эгерде сизде акча жок болсо, анда сиз 402-кодду аласыз, анын ичинде колдонулган жана чектөөлөр.

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

400 - жок болгон файл, колдоосуз түр же файлдын көлөмү өтө чоң; 401 - жок же жараксыз теги; 402 - беттер жок; 404 - тапшырманын белгисиз UUID; жана 409 - тапшырма аяктаганга чейин жүктөп алуу талап кылынган. Ката тексти кыска билдирүүнү камтыйт.

Задание с объектом состояния, уровня, языка, page_count и mean_confidence, плюс полный текст и маркdown. Страницамассив разделяет каждую страницу на блоки с их текстом, границей (bbox) и блоковой надежностью.

Процессорду колдонуу (адаттагы) таза басылган документтерди тез жана арзан баада таанып билүү үчүн. vlm, AI-дин премиум-двигателя, кол жазма, татаал же көп-багандуу пландаштыруулар, математика жана которуу үчүн колдонулат, анда ал алда канча так.

Слюг (мисалы, summarize-pdf же ask-pdf) менен жабдууларды өткөрүп берүү, бул chatди бул тапшырмага алдын ала даярдайт, ошондуктан жардамчы документти кыскача баяндап же суроолорго жооп берет.

5 же андан аз барактагы файлдар POST жоопунда тексттик түрдө кайтарылат. Чоң файлдар күтүлүүдө же иштелип жатат деп тез эле кайтарылат, жана сиз GET /api/v1/ocr/ суроосун бересиз<uuid>/ статусу бүтүрүлгөн же жаңылышканга чейин. Акы төлөнүүчү пландар файлдын ар бир бетинин чектөөсүн жогорулатат.

API HTTPS аркылуу жөнөкөй REST, ошондуктан ал HTTP клиенти менен каалаган тилде иштей алат, Python, Node.js жана cURL мисалдарын караңыз. Орнотуу үчүн SDK жок; стандарттуу HTTP кодунун бир нече саптары гана керек.