PDF.chat API
Lataa PDF ja chat omalla sovelluksellasi – kysy kysymyksiä ja saat sivulla olevat vastaukset 100+ kielellä.
Yleiskatsaus
PDF.chat API on pieni REST-rajapinta. Ensin POST Asiakirja, jolla se otetaan ja jonka avulla saa työpaikan takaisin asiakirjan tekstillä ja sivukohtainen erittely (teksti, rajalaatikot, itseluottamus). POST Työtä vastaan esitetyt kysymykset ja vastaukset perustuvat asiakirjaan, jossa kukin mainitaan sivulta, jolta se tuli. Työpaikkoja on 5 sivua tai vähemmän, ja suuremmat työt palaavat välittömästi, kun pending statusta, johon asti teet kyselyjä done.
- Perusverkko- osoite:
https://pdf.chat - Asiakirjat: PDF, sekä Word, PowerPoint, teksti ja kuvat (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat ulos: vastauksia sivuviittauksilla; dokumentit historian päätetapahtuman kautta
- Käsitelty teksti julki:
txt,md,docx,pdf,csv,json - Lukumoottorit:
cpu(nopea, painettu) javlm(premium tekoäly, käsiala, monimutkainen pohjapiirros, matematiikka)
Todentaminen
Osoita mielipiteesi API-tunnus (löydä se tilisivu) kantapäänä:
Authorization: Bearer YOUR_API_TOKEN
Voit myös läpäistä ?api_token=… kyselyparametrina. Käyttäjän käyttö on mittarina tilisi sivusaldoa vasten.
Lähetä asiakirja
POST /api/v1/ocr/, moniosainen lomake ladattava.
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"
Palauttaa työn. ≤5-sivuisille tiedostoille se on jo done tekstillä; suuremmat tiedostot tulevat takaisin pending/processing, kyselyn tilan päätetapahtuma.
{
"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 } ] } ]
}
Hanki tulos
GET /api/v1/ocr/<uuid>/, kyselyt, kunnes status is done tai failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
Lataa formaatti
GET /api/v1/ocr/<uuid>/download/?format=md, vie tulos. format on yksi 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 asiakirjaa
Kysy kysymyksiä valmiista työstä. Vastaukset perustuvat vain otetekstiin ja viittaavat lähdesivuun. Vaaditaan tilitunnus, chat ominaisuutta on tilikirjattu.
POST /api/v1/chat/<uuid>/, JSON-keho {"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?"}'
Palauttaa avustajaviestin vastauksensa ja listan mainituista sivuista:
{"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/, Hae koko keskusteluyhteys työpaikkaa varten.
Koodiesimerkit
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?"}'
Parametrit
| Kenttä | Tyyppi | Tavaran kuvaus |
|---|---|---|
file | file | Vaadittu. Kuva tai PDF käsittelyyn. |
tier | string | cpu (oletus, nopea/painoitettu) tai vlm (premium tekoäly: käsiala, pohjapiirros, matematiikka). |
language | string | auto (oletus) tai kielikoodi (en, ch, ja, ar,...). |
tool | string | Valinnainen työkalun luoti (esim. summarize-pdf, ask-pdf) esijärjestämään chat:n tehtävän. |
Virheitä ja rajoituksia
| Koodi | Merkitys |
|---|---|
400 | Ei tiedostoja, ei tukityyppiä tai liian suuria tiedostoja. |
401 | Puuttuva tai epäkelpo API-tunnus. |
402 | Sivuilta käsin päivittäin/kuukausittain vapaaraja saavutettu tai ei opintopisteitä. used/cap. |
404 | UUID-työtä ei löytynyt. |
409 | Lataa pyydetty ennen työn päättymistä. |
Jokainen käsitelty sivu maksaa hyvitykset (yksi sivu nopealla tasolla, enemmän palkkiolla). Maksetut suunnitelmat nostavat sivukohtaisia sivukattoja ja lisäävät prioriteettia. hinnoittelu.
Usein kysyttyjä kysymyksiä
language=auto tietyn koodin havaitsemiseksi tai sen välittämiseksi.