PDF.chat API

ផ្ទុកឡើងជា PDF និង chat ជាមួយវាពីកម្មវិធីផ្ទាល់ខ្លួនរបស់អ្នក - សំណួរនិងទទួលបានចម្លើយដែលបានលើកឡើងទៅទំព័រនេះ, ក្នុង 100 + ភាសា. វាស់តាមទំព័រ, គ្មានការភ្ញាក់ផ្អើល.

ទិដ្ឋភាព​ទូទៅ

PDF.chat API នេះ គឺជា ចំណុច ប្រទាក់ REST មួយ តិចតួច ។ ដំបូង អ្នក POST ឯកសារ​មួយ​ដើម្បី​ញ៉ាំ​វា​និង​ទទួល​បាន​ការងារ​ត្រឡប់​មក​វិញ​ជាមួយ​អត្ថបទ​របស់​ឯកសារ​និង​ការ​បែក​បាក់​ក្នុង​មួយ​ទំព័រ (អត្ថបទ ប្រអប់​កំណត់​ព្រំដែន ទំនុកចិត្ត) ។ បន្ទាប់​មក​អ្នក POST សំណួរប្រឆាំងនឹងការងារនោះនិងទទួលបានចម្លើយដែលផ្អែកលើនៅក្នុងឯកសារ, រៀងរាល់លើកឡើងទំព័រដែលវាមកពី. ការងារនៃ5ទំព័រឬតិចជាងត្រឡប់ inline; ការងារធំជាងនេះត្រឡប់ភ្លាមៗជាមួយ pending ស្ថានភាព​ដែល​អ្នក​បោះឆ្នោត​រហូត​ដល់ done.

  • URL មូលដ្ឋាន ៖ https://pdf.chat
  • ឯកសារ​ក្នុង ៖ PDF បន្ថែមទៀតពាក្យ PowerPoint អត្ថបទនិងរូបភាព (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat out: ចម្លើយ​ជាមួយ​ការ​ដកស្រង់​ទំព័រ​ អត្ថបទ​តាម​រយៈ​ចំណុច​បញ្ចប់​ប្រវត្តិ
  • អត្ថបទ​ដែល​បាន​ដំណើរការ​ចេញ ៖ 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, poll the status endpoint.

{
  "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 ​គឺ donefailed.

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 ជាមួយ​ឯកសារ

Ask questions about a finished job. Answers are grounded only in the extracted text and cite the source page. Requires an account token, the chat feature is account-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?"}'

ប៉ារ៉ាម៉ែត្រ

វាលប្រភេទ​សេចក្ដី​ពិពណ៌នា
filefileចាំបាច់ ។ រូបភាព ឬ PDF ដែល​ត្រូវ​ដំណើរការ ។
tierstringcpu (លំនាំដើម រហ័ស/ បោះពុម្ព) ឬ vlm (AI ប្រាក់​រង្វាន់: ការ​សរសេរ​ដោយ​ដៃ, ប្លង់, គណិតវិទ្យា) ។
languagestringauto (លំនាំដើម) ឬ​កូដ​ភាសា (en, ch, ja, ar,...)
toolstringឧបករណ៍ slug ជម្រើស (ឧ. summarize-pdf, ask-pdf) ដើម្បី មុន ស៊ុម chat សម្រាប់ ភារកិច្ច នោះ ។

កំហុស និង​ដែន​កំណត់

កូដអត្ថន័យ
400គ្មាន​ឯកសារ ប្រភេទ​ដែល​មិន​គាំទ្រ ឬ​ឯកសារ​ធំ​ពេក ។
401បាត់ ឬ​មិន​ត្រឹមត្រូវ API តូកុង ។
402ចេញនៃទំព័រ, កំណត់ដោយឥតគិតថ្លៃប្រចាំថ្ងៃ / ខែបានឈានដល់, ឬគ្មានឥណទាន. រាងកាយរួមបញ្ចូល used/cap.
404រក​មិន​ឃើញ UUID របស់​ការងារ ។
409បាន​ស្នើ​ការ​ទាញយក​មុន​ពេល​ការងារ​បញ្ចប់ ។

ទំព័រនីមួយៗដំណើរការចំណាយប្រាក់កក់ (1 / ទំព័រនៅលើជួរលឿន, ច្រើនទៀតលើប្រាក់រង្វាន់) ។ ផែនការបង់ប្រាក់បង្កើនក្បាលទំព័រឯកសារក្នុងមួយនិងបន្ថែមអាទិភាព។ មើល ការ​កំណត់​តម្លៃ.

សំណួរ​ដែល​សួរ​ញឹកញាប់

បង្កើតគណនីឥតគិតថ្លៃនិងបើករបស់អ្នក ទំព័រ​គណនី, សញ្ញា​សម្គាល់​របស់​អ្នក​ត្រូវ​បាន​បង្ហាញ​នៅ​ទីនោះ​ជាមួយ​ប៊ូតុង​ចម្លង ។

បាទ/ ចាស ឯកសារ​នៃ5ទំព័រ ឬ​តិច​ជាង​នេះ​ត្រឡប់​លទ្ធផល​ពេញលេញ​ក្នុង​បន្ទាត់​ក្នុង​ការ​ឆ្លើយតប POST ដូច្នេះ​គ្មាន​ការ​ស្ទង់​មតិ​ដែល​ត្រូវការ​សម្រាប់​រូបភាព​ភាគច្រើន និង PDFs ខ្លី ។

លើស​ពី 100 រួម​ទាំង​ស្គ្រីប​ឡាតាំង CJK អារ៉ាប់ ស៊ីរីល និង​ឥណ្ឌា ។ ប្រើ language=auto ដើម្បី​រក​ឃើញ ឬ​បញ្ជូន​កូដ​ជាក់លាក់ ។

ការ​ផ្ទុក​ឡើង​ត្រូវ​បាន​ដំណើរការ​តែ​ដើម្បី​ឆ្លើយ​សំណួរ​របស់​អ្នក និង​លុប​ដោយ​ស្វ័យ​ប្រវត្តិ ។ យើង​មិន​លក់​ទេ ចែក​រំលែក ឬ​បណ្តុះ​បណ្តាល​លើ​ឯកសារ​របស់​អ្នក ។

ការប្រើត្រូវបានវាស់តាមទំព័រប្រឆាំងនឹងសល់គណនីរបស់អ្នក: ការហៅអនាមិកទទួលបានការផ្តល់ប្រចាំថ្ងៃក្នុងមួយ IP, គណនីឥតគិតថ្លៃមួយខែមួយនិងផែនការបង់ប្រាក់ប្រើការទិញឥណទានជាមួយខ្ពស់ជាងនេះក្នុងមួយឯកសារទំព័រនិងអាទិភាព. នៅពេលដែលអ្នករត់ចេញអ្នកទទួលបាន 402 ជាមួយប្រើនិងមួកនៅក្នុងរាងកាយ.

អ្នកអាចផ្ញើ PNG, JPG, WEBP, GIF, BMP, TIFF និង PDF ទំព័រច្រើន។ លទ្ធផលទាញយកជា txt, md, docx, pdf (អាចស្វែងរកបាន), csv ឬ json តាមរយៈប៉ារ៉ាម៉ែត្រទ្រង់ទ្រាយនៃការទាញយកចំណុចបញ្ចប់។

៤០០ គឺ​ជា​ឯកសារ​ដែល​បាត់ ប្រភេទ​ដែល​មិន​គាំទ្រ ឬ​ឯកសារ​ធំ​ពេក ៤០១ បាត់ ឬ​តួអក្សរ​មិន​ត្រឹមត្រូវ ៤០២ ចេញ​ពី​ទំព័រ ៤០៤ UUID ការងារ​ដែល​មិន​ស្គាល់ និង ៤០៩ ការ​ទាញយក​ដែល​បាន​ស្នើ​មុន​ពេល​ការងារ​បញ្ចប់ ។ តួ​កំហុស​រួម​បញ្ចូល​សារ​ខ្លី ។

វត្ថុ​ការងារ​មួយ​ដែល​មាន​ស្ថានភាព កម្រិត ភាសា page_ count និង mean_ confidence បន្ថែម​អត្ថបទ​ពេញលេញ និង markdown ។ អ័ក្ស​ទំព័រ​បំបែក​ទំព័រ​នីមួយៗ​ទៅ​ជា​ប្លុក​ជាមួយ​អត្ថបទ​របស់​ពួក​គេ ប្រអប់​កំណត់​ព្រំដែន (bbox) និង​ភាព​ជឿជាក់​ក្នុង​មួយ​ប្លុក ។

ប្រើ cpu (លំនាំដើម) សម្រាប់​ការ​ទទួល​ស្គាល់​ឯកសារ​បោះពុម្ព​ស្អាត​ដែល​មាន​ល្បឿន​លឿន និង​មាន​តម្លៃ​ទាប ។ ប្រើ vlm ម៉ាស៊ីន AI ដ៏​ល្អ​បំផុត សម្រាប់​ការ​សរសេរ​ដោយ​ដៃ ប្លង់​ជួរឈរ​ស្មុគស្មាញ ឬ​ច្រើន គណិតវិទ្យា និង​ការ​បកប្រែ ដែល​វា​ត្រឹមត្រូវ​ជាង​មុន ។

ឧបករណ៍​បញ្ជូន​ជាមួយ slug (ឧទាហរណ៍ summarize- pdf ឬ ask- pdf) ដើម្បី​ស៊ុម​មុន chat សម្រាប់​ភារកិច្ច​នោះ ដូច្នេះ​អ្នក​ជំនួយការ​ត្រូវ​បាន​កំណត់​រចនាសម្ព័ន្ធ​ដើម្បី​សង្ខេប ឬ​ឆ្លើយ​សំណួរ​អំពី​ឯកសារ ។

ឯកសារ5ទំព័រឬតិចជាងនេះត្រឡប់ inline នៅក្នុងការឆ្លើយតប POST ។ ឯកសារធំជាងនេះមកវិញភ្លាមៗដូចជារង់ចាំឬដំណើរការហើយអ្នកបោះឆ្នោត GET /api/v1/ocr /<uuid>/ រហូត​ដល់​ស្ថានភាព​ត្រូវ​បាន​ធ្វើ​រួច ឬ​បរាជ័យ ។ ផែនការ​ដែល​បាន​បង់​ប្រាក់​បង្កើន​ចំណង​ជើង​ទំព័រ​ឯកសារ​ក្នុង​មួយ ។

API នេះគឺសាមញ្ញ REST លើ HTTPS, ដូច្នេះវាធ្វើការពីភាសាណាមួយជាមួយម៉ាស៊ីនភ្ញៀវ HTTP, មើល Python, Node.js, និងឧទាហរណ៍ cURL ខាងលើ. មិនមាន SDK ដើម្បីដំឡើង; បន្ទាត់មួយចំនួននៃកូដ HTTP ស្តង់ដារគឺទាំងអស់ដែលអ្នកត្រូវការ.