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 (პვმთუმ 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?"}'

პარამეტრები

ველიტიპებიაღწერა
filefileჱაეყლზთრვლნჲ. ნახატის ან PDF- ის შემუშავება.
tierstringcpu (ნაგულისხმევი, სწრაფი/ბეჭდვა) ან vlm (პვმთსმ თლთ: პყკჲოთჟ, ჟყჟრჲწნთვ, მარვმართკა).
languagestringauto (ნაგულისხმევი) ან ენის კოდი (en, ch, ja, ar,...).
toolstringოპციური ინსტრუმენტის ჭრიჭინი (მაგ. summarize-pdf, ask-pdfჱა ეა ოპვეგთეთქ chat ჱა რაჱთ ჱაეყლზა.

შეცდომები და საზღვრები

კოდიმნიშვნელობა
400ფაილი არ არსებობს, ტიპს მხარდაჭერა არ გააჩნია ან ფაილი ძალიან დიდია.
401API ტოკენი არ არსებობს ან არასწორია.
402გვერდები ამოიწურა, დღიური/ თვეში ერთხელ თავისუფალი რიცხვი მიღწეულია ან კრედიტები არ არსებობს. სხეული მოიცავს used/cap.
404დავალების UUID ვერ მოიძებნა.
409ჩამოტვირთვა დავალების დასრულებამდე მოითხოვა.

ყოველი გვერდის დამუშავება ღირს კრედიტი (1/ გვერდი სწრაფი დონის შემთხვევაში, მეტი პრემიუმ დონის შემთხვევაში). გადახდილი გეგმები ზრდის გვერდის ფაილის მაქსიმალურ ზომას და მატებს პრიორიტეტს. იხილეთ ფასი.

ხშირად დასმული კითხვები

ჟყჱეაგაი ბვჱოლარვნ ჟყპრვზ თ ჲრგჲპთ ჟგჲწ ანგარიშის გვერდი, თქვენი ტოკენი იქ არის ნაჩვენები კოპირების ღილაკით.

დიახ, 5 გვერდიანი და ნაკლები ფაილები POST პასუხში უკან ბრუნავს სრულ შედეგს, ამიტომ უმეტეს გამოსახულებებსა და მოკლე PDF- ებს არ სჭირდებათ კითხვა.

100- ზე მეტი, მათ შორის ლათინური, CJK, არაბული, ცირილიკი და ინდოური სკრიპტები. გამოყენება language=auto ეა ჲრკპთვ თლთ ეა ოპვკაპა ჟოვუთტთფვნ კჲე.

ატვირთვები მხოლოდ თქვენი კითხვების პასუხების გასაცემად განიხილება და ავტომატურად იკარგება. ჩვენ არასდროს ვაყიდით, ვუზიარებთ ან ვასწავლით თქვენს დოკუმენტებს.

გამოყენება ანგარიშის ბალანსის მიხედვით ანგარიშდება გვერდზე: ანონიმური ზარები იღებენ IP- ზე ყოველდღიურ ოდენობას, უფასო ანგარიშები იღებენ თვეში ერთ ოდენობას, ხოლო გადახდილი გეგმები იყენებენ შეძენილი კრედიტების ფაილზე გვერდის ოდენობის მაღალ საზღვრებსა და პრიორიტეტებს. როდესაც ოდენობა ამოიწურება, თქვენ მიიღებთ 402 შეცდომას, რომლის ტექსტშიც მითითებულია გამოყენებული და საზღვრული ოდენობა.

შეგიძლიათ გაგზავნოთ PNG, JPG, WEBP, GIF, BMP, TIFF და მრავალ გვერდიანი PDF. შედეგები ჩამოტვირთეთ როგორც txt, md, docx, pdf (ძიების შესაძლებლობა), csv ან json ჩამოტვირთვის ბოლო წერტილის ფორმატში პარამეტრების გამოყენებით.

400 არის ფაილის არარსებობა, მხარდაჭერილ ტიპზე ნაკლები ან ფაილის ზომა ზედმეტია; 401 არის ფაილის არარსებობა ან არასწორი ტოკენი; 402 გვერდები არ არის; 404 უცნობი დავალების UUID; და 409 დავალების დასრულებამდე მოთხოვნილი ჩამოტვირთვა. შეცდომის ტექსტში მოცემულია მოკლე შეტყობინება.

დავალების ობიექტი სტატუსით, დონეთი, ენით, გვერდების რაოდენობით და საშუალო ნდობით, დამატებით სრული ტექსტი და მარკდაუნი. გვერდების მასივი ბლოკავს თითოეულ გვერდს ტექსტით, საზღვრის ბლოკით (bbox) და ბლოკის ნდობით.

CPU- ს გამოყენება (ნაგულისხმევი) სუფთა დაბეჭდილი დოკუმენტების სწრაფი და დაბალი ღირებულების აღსაქმელად. vlm- ის გამოყენება, ხელნაწერი, კომპლექსური ან მრავალსაუკუნოვანი განლაგების, მათემატიკისა და თარგმნისთვის, სადაც იგი უფრო ზუსტი იქნება.

გადასცეს ინსტრუმენტი slug- ით (მაგალითად summarize- pdf ან ask- pdf) chat- ის წინასწარ ჩასატარებლად ამ დავალებისთვის, ასე რომ ასისტენტი არის მორგებული დოკუმენტის შეჯამებას ან კითხვებზე პასუხს.

ფაილები 5 გვერდით ან ნაკლები POST პასუხში თავსდება. უფრო დიდი ფაილები თავსდება როგორც დარჩენილი ან დამუშავებული და თქვენ GET /api/v1/ocr/-ს კითხვას უგზავნით<uuid>/ სანამ სტატუსი არ დასრულდება ან ვერ მოხერხდება. ფასიანი გეგმები ზრდის გვერდების რაოდენობას ფაილზე.

API არის მარტივი REST HTTPS- ზე, ასე რომ ის მუშაობს ნებისმიერი ენა HTTP კლიენტით, იხილეთ Python, Node. js და cURL მაგალითები ზემოთ. არ არის SDK დაყენება; სტანდარტული HTTP კოდის რამდენიმე ხაზი არის ყველაფერი რაც გჭირდებათ.