PDF.chat API
Ανεβάστε ένα PDF και chat με αυτό από τη δική σας εφαρμογή □ Ρωτήστε ερωτήσεις και να πάρει απαντήσεις που αναφέρονται στη σελίδα, σε 100+ γλώσσες. Μετρηθείτε ανά σελίδα, δεν εκπλήξεις.
Επισκόπηση
Το PDF.chat API είναι μια μικρή διεπαφή REST. POST ένα έγγραφο για να το καταπιεί και να πάρει πίσω μια δουλειά με το κείμενο του εγγράφου και μια ανάλυση ανά σελίδα (κείμενο, δεσμευμένα κουτιά, εμπιστοσύνη). POST Οι θέσεις εργασίας 5 σελίδων ή λιγότερο επιστρέφουν σε απευθείας σύνδεση. pending κατάσταση που θα δημοσκοπήσετε μέχρι done.
- Βάση URL:
https://pdf.chat - Έγγραφα: PDF, συν Word, PowerPoint, κείμενο, και εικόνες (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat έξω: απαντήσεις με αναφορές σελίδας; αντίγραφα μέσω του τελικού σημείου του ιστορικού
- Επεξεργασμένο κείμενο:
txt,md,docx,pdf,csv,json - Κινητήρες ανάγνωσης:
cpu(γρήγορος, τυπωμένος γιατρός) καιvlm(premium AI, γραφικός χαρακτήρας, πολύπλοκη διάταξη, μαθηματικά)
Ταυτοποίηση
Αυθεντικά με σας Σύμβολο API (Βρείτε το στο δικό σας Σελίδα λογαριασμού) ως κεφαλίδα Bearer:
Authorization: Bearer YOUR_API_TOKEN
Μπορείς επίσης να περάσεις ?api_token=… ως παράμετρος ερώτησης. Η χρήση μετράται στο υπόλοιπο της σελίδας του λογαριασμού σας.
Υποβολή εγγράφου
POST /api/v1/ocr/, multipart form upload.
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 είναι λογαριασμό-gated.
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 AI: γραφικός χαρακτήρας, διάταξη, μαθηματικά). |
language | string | auto (προκαθορισμένο) ή κωδικός γλώσσας (en, ch, ja, ar,...). |
tool | string | Προαιρετική σφαίρα εργαλείων (π.χ. summarize-pdf, ask-pdf) να προσχεδιάσει τις chat για την εν λόγω εργασία. |
& Όρια σφαλμάτων
| Κωδικός | Σημασία |
|---|---|
400 | Κανένα αρχείο, μη υποστηριζόμενο τύπο, ή αρχείο πολύ μεγάλο. |
401 | Λείπει ή είναι άκυρο. |
402 | Από σελίδες, καθημερινά / μηνιαία δωρεάν όριο που επιτυγχάνεται, ή χωρίς πιστώσεις. used/cap. |
404 | Η δουλειά UUID δεν βρέθηκε. |
409 | Η λήψη ζητήθηκε πριν από την ολοκλήρωση της εργασίας. |
Κάθε σελίδα που επεξεργάζεται πιστώσεις κόστους (1/σελίδα για την ταχεία βαθμίδα, περισσότερο για πριμοδότηση). τιμές.
Συχνές ερωτήσεις
language=auto να ανιχνεύσει ή να περάσει έναν συγκεκριμένο κωδικό.