PDF.chat API
PDF ଏବଂ chatକୁ ଆପଣଙ୍କ ନିଜ ଆପରୁ ଆହରଣ କରନ୍ତୁ - ପ୍ରଶ୍ନ ପଚାରନ୍ତୁ ଏବଂ ପୃଷ୍ଠାରେ ଉଲ୍ଲେଖିତ ଉତ୍ତର ପାଇବେ, 100+ ଭାଷାରେ। ପ୍ରତି ପୃଷ୍ଠାରେ ମିଟର, କୌଣସି ଅଦ୍ଭୁତ ନାହିଁ।
ସମୀକ୍ଷା
PDF.chat API ଗୋଟିଏ ଛୋଟ REST ଅନ୍ତରାପୃଷ୍ଠ ଅଟେ । ପ୍ରଥମେ ଆପଣ POST ଏହାକୁ ଗ୍ରହଣ କରିବା ପାଇଁ ଗୋଟିଏ ଦଲିଲ ଏବଂ ଦଲିଲ ପାଠ୍ୟ ସହିତ ଗୋଟିଏ କାର୍ଯ୍ୟକୁ ଫେରାଇ ଆଣନ୍ତୁ ଏବଂ ପ୍ରତି-ପୃଷ୍ଠା ବିଭାଜନ (ପାଠ୍ୟ, ସୀମା ବାକ୍ସ, ବିଶ୍ୱାସ) । ତା'ପରେ ଆପଣ POST ଏହି କାର୍ଯ୍ୟ ବିରୋଧରେ ପ୍ରଶ୍ନ ଏବଂ ଦଲିଲରେ ଆଧାରିତ ଉତ୍ତର ପାଇବେ, ପ୍ରତ୍ୟେକଟି ପୃଷ୍ଠାରୁ ଆସିଛି।5ପୃଷ୍ଠା କିମ୍ବା କମ୍ କାର୍ଯ୍ୟଗୁଡ଼ିକ ରେଖାଗତ ଭାବରେ ଫେରିଯାଏ; ବଡ଼ କାର୍ଯ୍ୟଗୁଡ଼ିକ ତୁରନ୍ତ ଗୋଟିଏ ସହିତ ଫେରିଯାଏ pending ସ୍ଥିତି ଯାହାକୁ ଆପଣ ପଲସନ୍ଦ କରନ୍ତି done.
- ଆଧାର URL:
https://pdf.chat - ଦଲିଲଗୁଡ଼ିକ: PDF, ବୈଧ ଶବ୍ଦ, Powerpoint, ପାଠ୍ୟ ଏବଂ ପ୍ରତିଛବିଗୁଡ଼ିକ (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat out: ପୃଷ୍ଠା ଉଲ୍ଲେଖ ସହିତ ଉତ୍ତର; ପୁରୁଣା ତଥ୍ୟ ଅନ୍ତିମ ବିନ୍ଦୁ ମାଧ୍ୟମରେ ଅନୁବାଦ
- ପାଠ୍ୟକୁ ପ୍ରକ୍ରିୟାକରଣ କରନ୍ତୁ:
txt,md,docx,pdf,csv,json - ପଢ଼ା ଯନ୍ତ୍ର:
cpu(ଶୀଘ୍ର, ମୁଦ୍ରଣ ଦଲିଲଗୁଡ଼ିକ) ଏବଂvlm(ପ୍ରୀମିୟମ AI, ହସ୍ତଲିଖନ, ଜଟିଳ ବିନ୍ୟାସ, ଗଣିତ)
ବୈଧିକରଣ
ଆପଣଙ୍କର ବୈଧିକରଣ ସହିତ ବୈଧିକରଣ କରନ୍ତୁ 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
ଗୋଟିଏ ସମାପ୍ତ କାର୍ଯ୍ୟ ବିଷୟରେ ପ୍ରଶ୍ନ ପଚାରନ୍ତୁ। ଉତ୍ତରଗୁଡ଼ିକ କେବଳ କାଢ଼ିବା ପାଠ୍ୟରେ ଆଧାରିତ ଏବଂ ଉତ୍ସ ପୃଷ୍ଠାକୁ ଉଲ୍ଲେଖ କରିଥାଏ। ଗୋଟିଏ ଖାତା ଟୋକନ ଆବଶ୍ୟକ, 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 (ପ୍ରୀମିୟମ 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 ଗୋଟିଏ ନିର୍ଦ୍ଦିଷ୍ଟ ସଂକେତକୁ ଅନୁସନ୍ଧାନ କରିବା ପାଇଁ, କିମ୍ବା ପାସ କରିବା ପାଇଁ।