PDF.chat ألف
تحميل PDF و chat معه من تطبيقك الخاص - طرح الأسئلة والحصول على إجابات مستشهدة إلى الصفحة، في 100 + لغات. مقاسة لكل صفحة، لا مفاجآت.
ألف - استعراض عام
PDF.chat API هو واجهة REST صغيرة. POST وثيقة لتناولها والحصول على وظيفة مع نص الوثيقة وتفصيل لكل صفحة (النص، مربعات الحدود، الثقة). ثم أنت POST وتُعاد الوظائف التي تبلغ 5 صفحات أو أقل في السطر؛ وتعود الوظائف الأكبر حجما فورا مع قائمة بالوظائف التي تبلغ 5 صفحات أو أقل. pending الحالة التي تستطلع حتى done.
- العنوان الأساسي:
https://pdf.chat - الوثائق في: PDF، بالإضافة إلى Word وPowerPoint والنصوص والصور (PNG و JPG و WEBP و GIF و BMP و TIFF)
- Chat من بينهم: الردود مع اقتباسات الصفحات؛ النصوص المستنسخة من خلال نقطة نهاية التاريخ
- النص المجهز:
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 مع وثيقة
يسأل أسئلة حول عمل تم إنجازه. الإجابات تستند فقط في النص المستخرج وتستشهد بصفحة المصدر. يتطلب رمز حساب، الخاصية 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 (ذكاء اصطناعي عالي المستوى: الكتابة، التخطيط، الرياضيات) |
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 لاكتشاف أو إرسال رمز محدد