PDF.chat API

একটি HTTP অনুরোধ একটি ছবি বা PDF কে পরিষ্কার টেক্সট, Markdown, টেবিল এবং JSON এ রূপান্তর করে, ১০০+ ভাষায়। প্রতি পৃষ্ঠার জন্য পরিমাপ করা, কোন অবাক হবার কিছু নেই।

সারসংক্ষেপ

PDF.chat API একটি ছোট REST ইন্টারফেস। প্রথমে আপনি POST একটি নথিকে গ্রহণ করার জন্য এবং নথির টেক্সট এবং প্রতি পৃষ্ঠার বিভাজন (টেক্সট, সীমাবদ্ধ বাক্স, বিশ্বাস) সহ একটি কাজ ফিরিয়ে নেওয়ার জন্য। তারপর আপনি POST এই কাজের বিরুদ্ধে প্রশ্ন এবং নথিতে ভিত্তিক উত্তর পেতে, প্রত্যেকটি পৃষ্ঠা থেকে এটি এসেছে উদ্ধৃত করে। ৫ পৃষ্ঠা বা কম কাজ ইনলাইন ফিরিয়ে আনুন; বড় কাজ অবিলম্বে একটি বার্তা সহ ফিরিয়ে আনুন pending যে অবস্থায় আপনি ভোট দেন done.

  • ভিত্তি ইউ- আর- এল: https://pdf.chat
  • নথি: PDF, এবং Word, PowerPoint, টেক্সট এবং ছবি (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat বাইরে: পৃষ্ঠা উদ্ধৃতি সহ উত্তর; ইতিহাস শেষ বিন্দু ব্যবহার করে অনুবাদ
  • প্রসেস করা টেক্সট আউট: 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"

কাজটি ফিরিয়ে দেয় । ≤৫- পৃষ্ঠার ফাইলের জন্য এটি ইতিমধ্যেই আছে 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

সম্পন্ন কাজ সম্পর্কে প্রশ্ন করুন। উত্তর শুধুমাত্র এক্সট্র্যাক্ট করা টেক্সট এবং উৎস পৃষ্ঠার উপর ভিত্তি করে। একটি অ্যাকাউন্ট টোকেন প্রয়োজন, আড্ডা বৈশিষ্ট্য অ্যাকাউন্ট-গেটেড।

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ফাইল নেই, ফাইলের ধরন অসমর্থিত, অথবা ফাইলটি খুব বড় ।
401API টোকেন অনুপস্থিত অথবা অকার্যকর।
402পাতা শেষ, দৈনিক/মাসিক ফ্রি সীমা পৌঁছেছে, অথবা কোন ক্রেডিট নেই। মূল অংশে অন্তর্ভুক্ত আছে used/cap.
404কাজের UUID পাওয়া যায়নি ।
409কাজ শেষ হওয়ার আগে ডাউনলোড করার অনুরোধ করা হয়েছে ।

প্রতিটি পৃষ্ঠা প্রক্রিয়াকরণের জন্য খরচ ক্রেডিট (ফাস্ট স্তর-এ ১/পৃষ্ঠা, প্রিমিয়াম-এ আরও বেশি)। পরিশোধিত পরিকল্পনা প্রতি ফাইল পৃষ্ঠার সীমা বৃদ্ধি করে এবং অগ্রাধিকার যোগ করে। দেখুন মূল্য.

প্রায়শই জিজ্ঞাসিত প্রশ্ন

একটি বিনামূল্যে অ্যাকাউন্ট তৈরি করুন এবং আপনার অ্যাকাউন্ট পৃষ্ঠা, আপনার টোকেনটি সেখানে একটি কপি বাটন সহ দেখানো হয়েছে ।

হ্যাঁ, ৫ পৃষ্ঠা বা তার কম ফাইল POST প্রতিক্রিয়ায় সম্পূর্ণ ফলাফল ইনলাইনে ফিরিয়ে দেবে, তাই বেশিরভাগ ছবি এবং ছোট PDF-এর জন্য পোলিং করার প্রয়োজন নেই।

১০০ এরও বেশি, যার মধ্যে রয়েছে ল্যাটিন, সিজেকে, আরবি, সিরিলিক এবং ইন্ডিয়ান স্ক্রিপ্ট। ব্যবহার করুন language=auto সনাক্ত করতে, অথবা একটি নির্দিষ্ট কোড পাস করতে।

আপলোড করা ফাইল শুধুমাত্র আপনার প্রশ্নের উত্তর দিতে প্রক্রিয়াজাত করা হয় এবং স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। আমরা কখনো আপনার নথি বিক্রি করি না, শেয়ার করি না বা আপনার নথির উপর প্রশিক্ষণ দেই না।

ব্যবহার প্রতি পৃষ্ঠার জন্য আপনার অ্যাকাউন্টের ভারসাম্য অনুযায়ী পরিমাপ করা হয়: বেনামী কল প্রতি IP প্রতি দিনের অনুদান পাবে, বিনামূল্যে অ্যাকাউন্ট মাসিক বাক্স, এবং পেমেন্ট পরিকল্পনা ক্রয়কৃত ক্রেডিট ব্যবহার করে উচ্চতর প্রতি ফাইল পৃষ্ঠা ক্যাপ এবং অগ্রাধিকার। যখন আপনি শেষ হয়ে যাবেন আপনি একটি 402 পাবেন ব্যবহার করা এবং ক্যাপ প্রধান অংশে।

আপনি PNG, JPG, WEBP, GIF, BMP, TIFF এবং বহু-পৃষ্ঠার PDF পাঠাতে পারেন। ফলাফল ডাউনলোড করা হবে txt, md, docx, pdf (সর্চযোগ্য), csv, অথবা json ডাউনলোডের শেষ বিন্দুর ফরম্যাট পরামিতি ব্যবহার করে।

৪০০ হল একটি ত্রুটিপূর্ণ ফাইল, অসমর্থিত ধরন, অথবা ফাইলটি খুব বড়; ৪০১ একটি ত্রুটিপূর্ণ অথবা অবৈধ টোকেন; ৪০২ পৃষ্ঠার বাইরে; ৪০৪ একটি অজানা কাজ UUID; এবং ৪০৯ একটি ডাউনলোড কাজ শেষ করার আগে অনুরোধ করা হয়েছে । ত্রুটিপূর্ণ বডি একটি সংক্ষিপ্ত বার্তা অন্তর্ভুক্ত করে ।

অবস্থা, স্তর, ভাষা, page_count এবং mean_confidence সহ একটি কাজ অবজেক্ট, পাশাপাশি পূর্ণ টেক্সট এবং markdown। পৃষ্ঠা অ্যারে প্রত্যেক পৃষ্ঠাকে তাদের টেক্সট, সীমাবদ্ধ বাক্স (bbox) এবং প্রতি ব্লক বিশ্বাসের সাথে ব্লকে বিভক্ত করে।

দ্রুত, কম খরচে পরিষ্কার মুদ্রণকৃত নথি সনাক্ত করার জন্য সিপিইউ ব্যবহার করুন (ডিফল্ট) । হাতের লেখা, জটিল বা বহু- কলাম বিন্যাস, গণিত এবং অনুবাদ করার জন্য vlm ব্যবহার করুন, প্রাইম AI ইঞ্জিন, যেখানে এটি অনেক বেশি সঠিক।

টুলটি একটি স্লাগ (উদাহরণস্বরূপ summarize-pdf বা ask-pdf) সহযোগে প্রবেশ করান যাতে chat-এর জন্য সেই কাজের জন্য পূর্ব-ফ্রেম করা যায়, যাতে সহায়ক নথির সারসংক্ষেপ বা প্রশ্নের উত্তর দিতে সক্ষম হয়।

৫ পৃষ্ঠা অথবা কম ফাইল POST প্রতিক্রিয়ায় ইনলাইনে ফিরে আসে। বড় ফাইল অবিলম্বে অপেক্ষা করা অথবা প্রক্রিয়াকরণের জন্য ফিরে আসে, এবং আপনি GET /api/v1/ocr/-কে পোল করেন<uuid>/ স্ট্যাটাস শেষ অথবা ব্যর্থ হওয়া পর্যন্ত ।

API HTTPS এর উপরে REST, তাই এটি HTTP ক্লায়েন্টের সাথে যে কোন ভাষা থেকে কাজ করে, পাইথন, Node.js, এবং cURL উপরে উদাহরণ দেখুন। ইনস্টল করার জন্য কোন SDK নেই; কিছু লাইন আদর্শ HTTP কোড আপনার সব প্রয়োজন।