PDF.chat API
PDF আৰু chat আপলোড কৰক আপোনাৰ নিজস্ব এপ্লিকেচনৰ পৰা - প্ৰশ্ন কৰক আৰু পৃষ্ঠাত উদ্ধৃত উত্তৰসমূহ লাভ কৰক, 100+ ভাষাত। প্ৰতি পৃষ্ঠাত মেটাৰেড, কোনো অবাক নহয়।
সৰলৰূপে
PDF.chat API এটা সৰু REST আন্তঃপৃষ্ঠ। প্ৰথমে আপুনি POST এটা দস্তাবেজক ইঙ্গেষ্ট কৰিবলৈ আৰু দস্তাবেজৰ টেক্সট আৰু প্ৰতি পৃষ্ঠাত বিভাজন (লেখা, বাউণ্ডিং বাক্স, বিশ্বাস) সহ এটা কাম পুনৰ ল'বলৈ। তাৰ পিছত আপুনি POST এই কামৰ বিৰুদ্ধে প্ৰশ্ন কৰক আৰু দস্তাবেজত ভিত্তি কৰা উত্তৰসমূহ প্ৰাপ্ত কৰক, প্ৰত্যেকটি পৃষ্ঠাৰ পৰা ই আহিছিল। ৫ পৃষ্ঠা বা কমৰ কামসমূহ ইনলাইনত প্ৰেৰণ কৰক; ডাঙৰ কামসমূহ তৎক্ষণাত এটাৰ সৈতে প্ৰেৰণ কৰক 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 টোকেন (আপুনি আপোনাৰ একাওন্ট পৃষ্ঠা) এটা Bearer হেডাৰ হিচাপে:
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
সম্পূৰ্ণ কৰা কামৰ বিষয়ে প্ৰশ্ন কৰক। উত্তৰসমূহ কেৱল এক্সট্ৰেক্ট কৰা টেক্সটত ভিত্তি কৰা হয় আৰু উৎস পৃষ্ঠা উদ্ধৃত কৰে। এটা একাওন্ট টোকেনৰ প্ৰয়োজন, 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) to pre-frame the chat for that task. |
ত্ৰুটিসমূহ আৰু সীমাসমূহ
| কোড | অৰ্থ |
|---|---|
400 | নথিপত্ৰ নাই, অসমৰ্থিত ধৰণ, অথবা নথিপত্ৰ অতি ডাঙৰ। |
401 | API টোকেন অনুপস্থিত অথবা অবৈধ। |
402 | পৃষ্ঠাৰ সংখ্যা শেষ, দৈনিক/মাহবাৰ্ষিক মুক্ত সীমা উপনীত হৈছে, অথবা কোনো ক্ৰেডিট নাই। মূল অংশত অন্তৰ্ভুক্ত আছে used/cap. |
404 | কাৰ্য্যৰ UUID পোৱা নগল। |
409 | কাম সমাপ্ত হোৱাৰ পূৰ্বে ডাউনল'ড অনুৰোধ কৰা হৈছে । |
প্ৰত্যেক পৃষ্ঠা প্ৰক্ৰিয়াকৰণ কৰক মূল্য ক্ৰেডিট (1/পৃষ্ঠা দ্রুত স্তৰত, প্ৰিমিয়ামত অধিক)। পেইড প্লেনসমূহে প্ৰতি নথিপত্ৰ পৃষ্ঠাৰ চাপ বৃদ্ধি কৰে আৰু অগ্ৰাধিকাৰ যোগ কৰে। চাওক মূল্য.
প্ৰায়শঃ জিজ্ঞাসিত প্ৰশ্নসমূহ
language=auto এটা নিৰ্দিষ্ট কোড চিনাক্ত কৰিবলৈ বা প্ৰেৰণ কৰিবলৈ।