PDF.chat API
העלה PDF ו-chat עם זה מהיישום שלך ▪ שאל שאלות ולקבל תשובות מצוטטות לעמוד, ב ־ 100+ שפות. מְטָרָן לדף, ללא הפתעות.
סקירה
ה-PDF.chat איי.פי.איי הוא ממשק מנוחה קטן. POST מסמך שיבלע אותו ויקבל בחזרה עבודה עם הטקסט של המסמך והתמוטטות עמוד (טקסט, תיבות מוגבלות, ביטחון). POST שאלות נגד העבודה הזאת ולקבל תשובות מקורקעות במסמך, כל צטט את הדף ממנו הגיע. עבודות של 5 עמודים או פחות לחזור מקוון; עבודות גדולות יותר לחזור מיד עם pending מצב שאתה מסקר עד done.
- כתובת בסיס:
https://pdf.chat - מסמכים ב: PDF, PowerPoint, text, and images (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat החוצה: תשובות עם זימונים לדף; תמלילים דרך נקודת הסיום בהיסטוריה
- טקסט מעובד:
txt,md,docx,pdf,csv,json - קורא מנועים:
cpu(מסמכים מהירים, מודפסים)vlm(Premium 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 (Premium AL: כתב יד, פריסה, מתמטיקה). |
language | string | auto (ברירת מחדל) או קוד שפה (en, ch, ja, ar. |
tool | string | כלי אופציונלי, כלומר, שבלול (למשל: summarize-pdf, ask-pdfכדי להגדיר מראש את chat למשימה זו. |
שגיאה ומגבלות
| קוד | כלומר |
|---|---|
400 | אין קובץ, סוג לא נתמך, או קובץ גדול מדי. |
401 | אסימון API חסר או לא תקין. |
402 | מחוץ לדפים, גבול מדי יום/חודשי חופשי הגיע, או ללא אשראי. used/cap. |
404 | UUID איוב לא נמצא. |
409 | ההורדה התבקשה לפני סיום העבודה. |
כל דף מעובד עלויות אשראי (1/ page on the fast tile). functions paying rimps for-file page and add prisonity. ראה תמחור.
שאלות לעתים קרובות
language=auto כדי לזהות, או להעביר קוד ספציפי.