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 токен Сезнең компьютерда хисап бите) йөкләүченең башлыгы буларак:
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 (Казан, 1996) (авторлык, тәрҗемә, аңлатмалар). |
language | string | auto (стандарт) яки тел коды (en, ch, ja, ar(Казан шәһәре). |
tool | string | РФ су реестры мәгълүматлары: Слюдянка (Слюдянка). summarize-pdf, ask-pdf) to pre-frame the chat for that task. |
Хаталар һәм чикләүләр
| Код | Мәгънә |
|---|---|
400 | Файль юк, файлның төре ярдәм итми яки файл бик зур. |
401 | API токен юк яки дөрес түгел. |
402 | Бәйләнешләр саны җитми, көнлек/айлык бушлай чик җитте яки кредитлар юк. Төркем эчендә used/cap. |
404 | Таләпнең UUIDы табылмады. |
409 | Таләп тәмамланмас борын төшерү сорала. |
Һәр эшкәртелгән бит кредитлар белән бәяләнә (1/бет тизрәк дәрәҗәдә, күбрәк премиум дәрәҗәдә). Плата планнары файлга бер битне арттыра һәм өстенлекне өсти. Карагыз бәяләү.
Кайвакыт бирелә торган сораулар
language=auto билгеләнгән кодны ачыклау яки тапшыру өчен.