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

ପ୍ରାଚଳଗୁଡ଼ିକ

କ୍ଷେତ୍ରପ୍ରକାରବର୍ଣ୍ଣନା
filefileଆବଶ୍ୟକୀୟ । ପ୍ରକ୍ରିୟାକରଣ ପାଇଁ ପ୍ରତିଛବି କିମ୍ବା PDF।
tierstringcpu ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ, ଶୀଘ୍ର/ମୁଦ୍ରଣ) କିମ୍ବା vlm (ପ୍ରୀମିୟମ AI: ହସ୍ତଲିଖନ, ବିନ୍ୟାସ, ଗଣିତ) ।
languagestringauto ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ) କିମ୍ବା ଗୋଟିଏ ଭାଷା ସଂକେତ (en, ch, ja, ar,...)
toolstringଇଚ୍ଛାରୂପୀ ସାଧନ ସ୍ଲଗ (ଯେପରିକି summarize-pdf, ask-pdfଏହି କାର୍ଯ୍ୟ ପାଇଁ chatକୁ ପୂର୍ବ-ଫ୍ରେମ କରିବା ଲାଗି ।

ତ୍ରୁଟି ଏବଂ ସୀମାଗୁଡିକ

ସଂକେତଅର୍ଥ
400କୌଣସି ଫାଇଲ ନାହିଁ, ଅସମର୍ଥିତ ପ୍ରକାର, କିମ୍ବା ଫାଇଲ ଅତ୍ୟଧିକ ବଡ଼।
401ଲୁପ୍ତ କିମ୍ବା ଅବୈଧ API ଟୋକନ।
402ପୃଷ୍ଠାଗୁଡିକ ବାହାରକୁ, ଦିନିକିଆ/ମାସିକ ମୁକ୍ତ ସୀମା ପହଞ୍ଚିଗଲା, କିମ୍ବା କୌଣସି କ୍ରେଡିଟ ନାହିଁ। ଶରୀରରେ ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି used/cap.
404କାର୍ଯ୍ୟ UUID ମିଳିଲା ନାହିଁ।
409କାର୍ଯ୍ୟ ସମାପ୍ତ ହେବା ପୂର୍ବରୁ ଆହରଣ ଅନୁରୋଧ କରାଯାଇଛି ।

ପ୍ରତ୍ୟେକ ପୃଷ୍ଠା ପ୍ରକ୍ରିୟାକରଣ ଖର୍ଚ୍ଚ କ୍ରେଡିଟ (1/ପୃଷ୍ଠା ଶୀଘ୍ର ସ୍ତରରେ, ଅଧିକ ପ୍ରିମିଆରେ)। ପୈଠିତ ଯୋଜନାଗୁଡ଼ିକ ପ୍ରତି ଫାଇଲ ପୃଷ୍ଠା ବର୍ଦ୍ଧନ କରିଥାଏ ଏବଂ ପ୍ରାଥମିକତା ଯୋଗ କରିଥାଏ। ଦେଖନ୍ତୁ ମୂଲ୍ୟ.

ସାଧାରଣ ପ୍ରଶ୍ନ

ଗୋଟିଏ ମୁକ୍ତ ଖାତା ନିର୍ମାଣ କରନ୍ତୁ ଏବଂ ଆପଣଙ୍କର ଖାତା ଖୋଲନ୍ତୁ ଖାତା ପୃଷ୍ଠା, ଆପଣଙ୍କର ଟୋକନକୁ ଗୋଟିଏ ନକଲ ବଟନ ସହିତ ସେଠାରେ ଦର୍ଶାଯାଇଛି ।

ହଁ,5ପୃଷ୍ଠା କିମ୍ବା କମ୍ ଫାଇଲଗୁଡ଼ିକ POST ଉତ୍ତରରେ ସମ୍ପୂର୍ଣ୍ଣ ରେଖାଗତ ଫଳାଫଳକୁ ଫେରାଇଥାଏ, ତେଣୁ ଅଧିକାଂଶ ପ୍ରତିଛବି ଏବଂ ଛୋଟ PDFଗୁଡ଼ିକ ପାଇଁ କୌଣସି ପୋଲିଂ ଆବଶ୍ୟକ ନୁହଁ।

ଲାଟିନ, CJK, ଆରବୀ, ସିରିଲିକ ଏବଂ ଭାରତୀୟ ସ୍କ୍ରିପ୍ଟଗୁଡ଼ିକ ସମେତ ୧୦୦ରୁ ଅଧିକ ସ୍କ୍ରିପ୍ଟ । ବ୍ୟବହାର କରନ୍ତୁ 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), ଏବଂ ପ୍ରତି-ବୃକ୍ଷ ବିଶ୍ୱାସ।

cpu ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ) କୁ ଶୀଘ୍ର, ସ୍ୱଚ୍ଛ ମୁଦ୍ରଣ ଦଲିଲଗୁଡ଼ିକର କମ-ଖର୍ଚ୍ଚ ବିବେଚନା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ। vlm, ପ୍ରିମିଆ AI ଯନ୍ତ୍ର,କୁ ହାତଲିଖନ, ଜଟିଳ କିମ୍ବା ବହୁ-ସ୍ତମ୍ଭ ବିନ୍ୟାସ, ଗଣିତ, ଏବଂ ଅନୁବାଦ ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ, ଯେଉଁଠାରେ ଏହା ଅଧିକ ସଠିକ।

ସେହି କାର୍ଯ୍ୟ ପାଇଁ chat କୁ ପୂର୍ବ-ଫ୍ରେମ କରିବା ପାଇଁ ଗୋଟିଏ ସ୍ଲଗ ସହିତ ସାଧନକୁ ପାସ କରନ୍ତୁ (ଉଦାହରଣ ସ୍ୱରୂପ summarize-pdf କିମ୍ବା ask-pdf), ତେଣୁ ସହାୟକ ଦଲିଲ ବିଷୟରେ ପ୍ରଶ୍ନଗୁଡ଼ିକୁ ସାରାଂଶ କରିବା କିମ୍ବା ଉତ୍ତର ଦେବା ପାଇଁ ସଜଡ଼ା ହୋଇଛି।

POST ଉତ୍ତରରେ5ପୃଷ୍ଠା କିମ୍ବା କମ୍ ଫାଇଲଗୁଡ଼ିକ ରେଖାଗତ ଭାବରେ ଫେରିଆସିଥାଏ। ବଡ଼ ଫାଇଲଗୁଡ଼ିକ ତୁରନ୍ତ ଅପେକ୍ଷା କରୁଥିବା କିମ୍ବା ପ୍ରକ୍ରିୟାକରଣ କରୁଥିବା ଭାବରେ ଫେରିଆସିଥାଏ, ଏବଂ ଆପଣ GET /api/v1/ocr/କୁ ପଲଟି ପାରିବେ<uuid>/ ସ୍ଥିତି ସମ୍ପୂର୍ଣ୍ଣ କିମ୍ବା ବିଫଳ ହେବା ପର୍ଯ୍ୟନ୍ତ. ପୈଠିତ ଯୋଜନାଗୁଡ଼ିକ ପ୍ରତି ଫାଇଲ ପୃଷ୍ଠା ସୀମାକୁ ବଢ଼ାଇଥାଏ ।

API HTTPS ଉପରେ ସରଳ REST ଅଟେ, ତେଣୁ ଏହା HTTP ଗ୍ରାହକ ସହିତ କୌଣସି ଭାଷାରୁ କାମ କରେ, Python, Node.js, ଏବଂ cURL ଉଦାହରଣଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ । ସ୍ଥାପନ କରିବା ପାଇଁ କୌଣସି SDK ନାହିଁ; ମାନକ HTTP ସଂକେତର କିଛି ଧାଡ଼ି ଆପଣଙ୍କୁ ଆବଶ୍ୟକ ।