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?"}'
Параметрлер
| Поле | Тип | Сүрөт |
|---|---|---|
file | file | Зарыл. Ажыратуу үчүн сүрөт же PDF. |
tier | string | cpu (стандарттуу, тез/басылган) же vlm (premium AI: кол жазма, макет, математика). |
language | string | auto (стандартты) же тил коду (en, ch, ja, ar, … |
tool | string | Опциональный инструментальный слаг (например, summarize-pdf, ask-pdf) бул тапшырма үчүн chatди алдын ала фреймдөө үчүн. |
Каталар жана чектөөлөр
| Код | Мааниси |
|---|---|
400 | Файл жок, түр колдобойт же файл өтө чоң. |
401 | API-токен жок же жараксыз. |
402 | Бардык беттер, күндүк/айлык акысыз чектөө же кредиттер жок. Түшүндүрмө used/cap. |
404 | Задание UUID табылган жок. |
409 | Заданын аягына чейин жүктөп алуу талап кылынды. |
Каждый обработанный страницы стоит кредитов (1/страница в быстром режиме, больше в премиум режиме). Платежные планы увеличивают страницу на файл и добавляют приоритет. Посмотрите баасы.
Кайра-кайра берилүүчү суроолор
language=auto аныктоо үчүн же белгилүү бир кодду өткөрүү үчүн.