SSD Nodes Learn 🎉 VPS $5.50/महिन्यापासून
मार्गदर्शक Matt Connorद्वारे Matt Connor

तांत्रिक पुस्तक एजंट स्किलमध्ये कसे रूपांतरित करावे?

तुमच्या तांत्रिक पुस्तकांचे किंवा PDF दस्तऐवजांचे एजंट स्किलमध्ये रूपांतर करा. हे टूल केवळ आवश्यक माहिती इंडेक्स करते, ज्यामुळे टोकन बजेट वाचते आणि कोडिंग एजंट अधिक अचूक काम करतात.

तांत्रिक पुस्तक एजंट स्किलमध्ये रूपांतरित करणे: तुम्हाला काय मिळते

एखादे तांत्रिक पुस्तक एजंट स्किलमध्ये रूपांतरित करण्यासाठी, तुम्ही एका कन्व्हर्टरला PDF, EPUB, DOCX एक्सपोर्ट किंवा तुमच्या मालकीच्या अंतर्गत दस्तऐवजांच्या फोल्डरकडे निर्देशित करता. हे एक स्किल डिरेक्टरी तयार करते: एक एंट्री फाईल ज्यामध्ये नामनिर्देशित फ्रेमवर्क्स आणि प्रकरणांची अनुक्रमणिका असते, आणि प्रत्येक प्रकरणासाठी एक फाईल असते जी एजंट फक्त तेव्हाच वाचतो जेव्हा तुमच्या प्रश्नासाठी तिची गरज असते. पुस्तक कधीही कॉन्टेक्स्ट विंडोमध्ये जात नाही. फक्त इंडेक्स तिथे जातो.

हे शून्यापासून एजंट स्किल लिहिणे या कामाच्या अगदी उलट आहे, जिथे तुम्ही आधीच माहित असलेली प्रक्रिया एनकोड करता. येथे ज्ञान अस्तित्वात असते आणि कोणालाही ते मिळवता येत नाही: जसे की 800 पानांची व्हेंडर PDF, किंवा एखादे हँडबुक जे ते लिहिणारी व्यक्ती सोडून गेल्यापासून उघडले गेलेले नाही. हे काम कॉम्प्रेशन आणि इंडेक्सिंगचे आहे. जर 'स्किल' हा शब्द तुमच्यासाठी नवीन असेल, तर आधी एजंट स्किल म्हणजे नक्की काय हे वाचा.

येथे वापरलेला कन्व्हर्टर book-to-skill आहे, जे MIT-परवाना असलेले स्किल आहे आणि तुमच्या स्वतःच्या मशीनवर चालते. ऑगस्ट 2026 पर्यंतची सध्याची टॅग v1.4.0 आहे. ते तयार करत असलेली रचना साधनापेक्षा जास्त महत्त्वाची आहे आणि FAQ च्या आधीचा शेवटचा विभाग तीच रचना हाताने कशी तयार करायची हे दाखवतो.

टोकन बजेट संपूर्ण डिझाइनचा आधार का आहे

एखादे पुस्तक कॉन्टेक्स्ट विंडोमध्ये पेस्ट केल्यास, प्रत्येक संवादासाठी त्याचा पूर्ण आकार खर्च होतो. याउलट, एका स्किलसाठी फक्त त्याची एंट्री फाईल एकदाच लागते आणि त्यानंतर प्रश्नाशी संबंधित असलेले विशिष्ट चॅप्टर्सच वापरले जातात. हा प्रकल्प प्रत्येक जनरेट होणाऱ्या फाईलसाठी एक बजेट निश्चित करतो.

ChartDocumented token budget per generated file, book-to-skill v1.4.0
The data behind this chart
[
  {
    "label": "SKILL.md entry file",
    "tokens": "4,000"
  },
  {
    "label": "One chapter file",
    "tokens": "1,000"
  },
  {
    "label": "glossary.md",
    "tokens": "1,500"
  },
  {
    "label": "patterns.md",
    "tokens": "2,000"
  },
  {
    "label": "cheatsheet.md",
    "tokens": "1,000"
  }
]

एंट्री फाईल, SKILL.md, ही 4,000 टोकन्सच्या मर्यादेत ठेवली जाते आणि त्यात नामांकित फ्रेमवर्क्स व चॅप्टर इंडेक्सचा समावेश असतो. प्रत्येक चॅप्टर फाईल साधारण 1,000 टोकन्सची असते आणि जोपर्यंत तिची गरज भासत नाही, तोपर्यंत ती डिस्कवरच राहते. सपोर्टिंग फाईल्सचे बजेट असे आहे: glossary.md साठी 1,500 टोकन्स, patterns.md साठी 2,000 आणि cheatsheet.md साठी 1,000 टोकन्स.

ही बजेट्स Claude Code प्रत्यक्षात कॉन्टेक्स्ट कसा खर्च करतो, यानुसार ठरवली आहेत. स्किलची description फाईल स्किल लिस्टिंगमध्ये असते, जेणेकरून मॉडेलला स्किल अस्तित्वात असल्याची माहिती मिळते. जेव्हा स्किल इनव्होक (invoke) केली जाते, तेव्हा तिची बॉडी लोड होते आणि एकदा लोड झाल्यावर ती सत्राच्या उर्वरित काळासाठी कॉन्टेक्स्टमध्ये राहते. त्यामुळे एंट्री फाईलमधील प्रत्येक ओळ हा एक वारंवार होणारा खर्च आहे. सपोर्टिंग फाईल्स फक्त तेव्हाच लोड होतात जेव्हा एजंट त्या वाचतो, ज्यामुळे प्रति-चॅप्टर फाईल्स स्वस्त पडतात.

एंट्री फाईलच्या संख्येमागे एक कडक मर्यादा आहे. जेव्हा ऑटो-कॉम्पॅक्शन (auto-compaction) मोठ्या संवादाचा सारांश तयार करते, तेव्हा Claude Code प्रत्येक स्किलच्या सर्वात अलीकडील इनव्होकेशनला सारांशानंतर पुन्हा जोडतो. यामध्ये प्रत्येक स्किलचे पहिले 5,000 टोकन्स कायम ठेवले जातात, ज्यासाठी सर्व पुन्हा जोडलेल्या स्किल्ससाठी एकूण 25,000 टोकन्सचे बजेट असते. 5,000 टोकन्सच्या आत बसणारी एंट्री फाईल कॉम्पॅक्शननंतरही पूर्णपणे सुरक्षित राहते. 20,000 टोकन्सची एंट्री फाईल असेल, तर तिचा फक्त पहिला चतुर्थांश भाग परत येतो आणि त्यातील कोणते तीन चतुर्थांश भाग गहाळ झाले आहेत, हे सांगणारी कोणतीही यंत्रणा नसते.

यालाच प्रोग्रेसिव्ह डिस्क्लोजर (progressive disclosure) म्हणतात: एक छोटा इंडेक्स जो नेहमीच त्याच्या खर्चाच्या मोबदल्यात उपयुक्त ठरतो आणि मुख्य माहिती एका अशा दाराआड असते, जे एजंट स्वतःहून उघडतो. Claude Code आपली कॉन्टेक्स्ट विंडो कशी व्यवस्थापित करतो या लेखात या हिशोबाचा उर्वरित भाग स्पष्ट केला आहे.

तुमच्या VPS वर कन्व्हर्टर इंस्टॉल करा आणि एका विशिष्ट रिलीजवर पिन करा

हे स्किल एक git रिपॉझिटरी आहे. तुम्ही वापरत असलेल्या एजंटच्या स्किल्स डिरेक्टरीमध्ये ते क्लोन करा. डिरेक्टरीचे नाव हेच स्लॅश कमांड बनते, त्यामुळे क्लोन पाथ निवडताना काळजी घ्या.

git clone --depth 1 --branch v1.4.0 \
  https://github.com/virgiliojr94/book-to-skill.git \
  ~/.claude/skills/book-to-skill

--branch हे टॅग स्वीकारते, त्यामुळे हे v1.4.0 आणि त्यानंतरच्या कोणत्याही आवृत्तीला चेक आउट करते. याला पिन करा, कारण स्किल म्हणजे तुमच्या एजंटने पाळायच्या सूचनांचा संच असतो आणि त्या सूचनांमध्ये न तपासलेला बदल म्हणजे तुमच्या सर्व्हरवर चालणाऱ्या प्रक्रियेत झालेला बदल होय. GitHub Copilot CLI त्याऐवजी ~/.copilot/skills/ वाचते आणि Amp हे ~/.agents/skills/ वाचते.

एक ओळीचे इंस्टॉलेशन देखील उपलब्ध आहे, npx skills add virgiliojr94/book-to-skill, जे सध्याची लेटेस्ट आवृत्ती मिळवते. टूल वापरून पाहण्यासाठी याचा वापर करा. तुम्ही पुन्हा पुन्हा वापरत असलेल्या कोणत्याही गोष्टीसाठी पिन केलेले क्लोन वापरा.

आता सर्व्हरवर कोणते एक्सट्रॅक्टर्स आहेत याची खात्री करा:

cd ~/.claude/skills/book-to-skill
python3 scripts/extract.py --check

--check कोणते एक्सट्रॅक्टर्स इंस्टॉल आहेत हे सांगते आणि जे गहाळ आहेत त्यांच्यासाठी इंस्टॉलेशन कमांड प्रिंट करते. या पॅकेजसाठी Python 3.9 किंवा त्यापुढील आवृत्ती आवश्यक आहे.

जर क्लोनिंगनंतर ऑटो-कम्प्लीटमध्ये /book-to-skill दिसत नसेल, तर तुमचा एजंट रीस्टार्ट करा. Claude Code सत्र सुरू झाले तेव्हा अस्तित्वात असलेल्या स्किल डिरेक्टरीजवर लक्ष ठेवते, त्यामुळे दोन मिनिटांपूर्वी तुम्ही तयार केलेली ~/.claude/skills/ अजून मॉनिटर केली जात नाही.

तुम्हाला प्रत्यक्षात कोणत्या एक्सट्रॅक्टर्सची (extractors) गरज आहे?

Python व्यतिरिक्त कशाचीही आवश्यकता नाही, कारण प्रत्येक फॉरमॅटसाठी स्टँडर्ड लायब्ररीमध्ये पर्याय उपलब्ध आहे. हे पर्याय कमी प्रभावी आहेत, परंतु लहान सर्व्हरवर ज्या एक्सट्रॅक्टर्सची गरज नाही ते इन्स्टॉल करण्यात वेळ वाया घालवणे योग्य नाही.

  • pdftotext, हे poppler-utils पॅकेजमधील असून, मजकूर-प्रधान (text-heavy) PDF हाताळते आणि ते अत्यंत जलद आहे. ते sudo apt install poppler-utils वापरून इन्स्टॉल करा.
  • pypdf आणि pdfminer.six हे PDF साठी Python चे पर्याय आहेत.
  • docling हे तांत्रिक PDF साठी आहे, ज्यांचे महत्त्व त्यातील तक्ते आणि कोड लिस्टिंगमध्ये असते. हा प्रकल्प प्रति पान साधारण 1.5 सेकंद वेळ घेतो.
  • ebooklib आणि beautifulsoup4 हे EPUB योग्यरित्या वाचतात. त्याशिवाय, हे टूल स्टँडर्ड लायब्ररीच्या zipfile रीडरवर अवलंबून राहते.
  • python-docx हे DOCX वाचते आणि striprtf हे RTF वाचते.
  • MOBI आणि AZW फाइल्ससाठी Calibre चे ebook-convert आवश्यक आहे.
  • ocrmypdf हे स्कॅन केलेल्या पुस्तकांवर OCR (ऑप्टिकल कॅरेक्टर रिकग्निशन) चालवते, ज्यामध्ये कोणताही मजकूर स्तर (text layer) नसतो.

Ubuntu 24.04 वर एक साधे pip3 install pypdf खालील त्रुटीसह थांबते:

error: externally-managed-environment

हे pip खराब झाल्यामुळे होत नाही. Ubuntu आणि Debian सिस्टिममधील Python ला apt द्वारे व्यवस्थापित करतात, त्यामुळे pip त्यामध्ये काहीही लिहिण्यास नकार देते. यासाठी दोन उपाय आहेत. sudo apt install poppler-utils एक बायनरी इन्स्टॉल करते आणि त्यासाठी pip ची अजिबात गरज पडत नाही, आणि pdftotext बहुतेक मजकूर-प्रधान PDF स्वतःहून हाताळते. Python एक्सट्रॅक्टर्ससाठी, एक व्हर्च्युअल एन्व्हायरनमेंट तयार करा आणि तुमचा एजंट त्यातून सुरू करा, जेणेकरून स्किल ज्या python3 ला कॉल करते, तो इंटरप्रिटर पॅकेजेससह उपलब्ध असेल.

python3 -m venv ~/.venvs/book-to-skill
source ~/.venvs/book-to-skill/bin/activate
pip install "$HOME/.claude/skills/book-to-skill[pdf,epub,docx]"
claude

रिपॉझिटरीमध्ये pdf, epub, docx, rtf, technical आणि all हे एक्स्ट्राज घोषित केले आहेत, जिथे technical हे docling आहे. प्रकल्पाच्या इन्स्टॉल पेजवर pip install "book-to-skill[pdf,epub,docx]" देखील दिसते, परंतु ऑगस्ट 2026 पर्यंत हे नाव PyPI वर प्रकाशित झालेले नाही, म्हणून वरीलप्रमाणे तुमच्या स्वतःच्या चेकआउटवरून इन्स्टॉल करा.

docling जोपर्यंत एखाद्या पुस्तकासाठी त्याची गरज भासत नाही, तोपर्यंत इन्स्टॉल करू नका. हे मशीन लर्निंग स्टॅक इन्स्टॉल करते, त्यामुळे ते इन्स्टॉल करण्यापूर्वी लहान प्लॅनवर उपलब्ध डिस्क स्पेस तपासा.

फोल्डरमधील दस्तऐवजांवर, हेडलेस मोडसह प्रक्रिया करा

ही कमांड एक फाईल, एक फोल्डर, कोट केलेले ग्लोब (glob) किंवा एकाच वेळी अनेक पाथ स्वीकारते, त्यानंतर पर्यायी स्किलचे नाव देता येते. एका डिरेक्टरीमध्ये तुम्ही जे काही ठेवू शकता, ते सर्व येथे चालते, ज्यामध्ये RFC संच (Request for Comments, इंटरनेट प्रोटोकॉल परिभाषित करणारे दस्तऐवज) देखील समाविष्ट आहेत.

/book-to-skill ~/library/platform-docs/ platform-handbook
/book-to-skill "~/books/*.epub" my-library
/book-to-skill ~/papers/paper1.pdf ~/notes/export.txt unified-research

ग्लोबला कोट करा जेणेकरून स्किलला ते दिसण्यापूर्वी तुमचे शेल त्याचा विस्तार (expand) करणार नाही. कमांडला अस्तित्वात असलेल्या स्किल डिरेक्टरीकडे निर्देशित केल्यास, नवीन स्रोत दुसऱ्या स्किलऐवजी त्याच स्किलमध्ये समाविष्ट केले जातात.

इंटरअॅक्टिव्ह रनमध्ये तुम्हाला काही प्रश्न विचारले जातात. साहित्य तांत्रिक आहे की मजकूर-प्रधान, हे एक्सट्रॅक्टर ठरवते. तुम्हाला संदर्भ खोली (reference depth) हवी आहे की अभ्यासाची खोली (study depth), हे प्रति-धडा बजेट ठरवते. स्किलला काय नाव द्यावे आणि ते कोणत्या स्किल रूटमध्ये असावे, हे देखील विचारले जाते. जनरेशनपूर्वी हे टोकन आणि वेळेचा अंदाज देखील दर्शवते आणि तुमच्या पुष्टीकरणाची वाट पाहते.

हेडलेस रनमध्ये या प्रश्नांची उत्तरे देण्यासाठी कोणीही नसते. वापरकर्ता-आह्वान करण्यायोग्य स्किल्स claude -p मध्ये काम करतात: प्रॉम्प्ट स्ट्रिंगमध्ये स्लॅश कमांड टाका आणि रन सुरू होण्यापूर्वी Claude Code त्याचा विस्तार करते. त्यामुळे त्याच प्रॉम्प्टमध्ये प्रश्नांची उत्तरे द्या.

claude -p "/book-to-skill ~/library/platform-docs/ platform-handbook
The sources are technical. Use reference depth. Write the skill to
~/.claude/skills/. Do not publish it to GitHub. Proceed without asking me." \
  --allowedTools "Bash,Read,Write,Edit"

--allowedTools रनसाठी आवश्यक असलेल्या टूल्सना आधीच मंजूर (pre-approve) करते, कारण टर्मिनल नसताना येणारा परवानगी प्रॉम्प्ट रनला कधीही पूर्ण होऊ देत नाही. --output-format json जोडल्यास निकालामध्ये total_cost_usd समाविष्ट होते, जे तुमच्या बिलाऐवजी क्लायंट-साइड अंदाज असतो.

कोणत्याही मॉडेलने वाचण्यापूर्वी, एक्सट्रॅक्शन प्रत्येक स्रोताला /tmp अंतर्गत एका तात्पुरत्या वर्क डिरेक्टरीमध्ये एकत्रित करते आणि रनची शेवटची पायरी ती डिरेक्टरी हटवते. ज्या स्रोताचे एक्सट्रॅक्शन अयशस्वी होते, तो वगळला जातो जेणेकरून बॅच प्रक्रिया सुरू राहते; याचा अर्थ असा की तुम्ही दिलेल्या फाईल्सपेक्षा कमी फाईल्स वाचूनही रन यशस्वी झाल्याचा अहवाल देऊ शकतो. अंतिम अहवालातील फाईल इन्व्हेंटरीची फोल्डरमधील फाईल्सशी तुलना करा. एखादा धडा गहाळ असणे म्हणजे सहसा एखादा स्रोत गहाळ असणे होय.

रनसाठी असा सर्व्हर द्या जो एजंटला देण्यासाठी तुम्हाला सोयीस्कर वाटतो. Claude Code सुरक्षितपणे VPS वर चालवणे या विषयामध्ये परवानगीच्या बाजू कव्हर केल्या आहेत.

आउटपुट कोठे जाते जेणेकरून तुमचा कोडिंग एजंट ते शोधू शकेल

तयार केलेले skill एका skills root मध्ये साठवले जाते. त्यापैकी दोन महत्त्वाचे आहेत.

  • ~/.claude/skills/<skill-name>/ हे वैयक्तिक आहे आणि त्या मशीनवरील प्रत्येक प्रोजेक्टमध्ये उपलब्ध असते.
  • .claude/skills/<skill-name>/ हे रिपॉझिटरीच्या आत असते आणि त्यासोबतच प्रवास करते.

यापैकी कोणत्याही एकाच्या आत तुम्हाला SKILL.md मिळते, जे एक chapters/ डिरेक्टरी आहे. यामध्ये प्रत्येक प्रकरणासाठी एक फाईल आणि इतर सहाय्यक फाईल्स असतात. डिरेक्टरीचे नाव हेच कमांड असते, त्यामुळे ~/.claude/skills/platform-handbook/ वापरल्यास तुम्हाला /platform-handbook मिळते आणि त्यानंतर तुम्ही एखादा विषय किंवा साधा प्रश्न विचारू शकता.

सुविधेपेक्षा परवाना (licensing) लक्षात घेऊन root निवडा. तुम्ही विकत घेतलेल्या पुस्तकातून तयार केलेले skill तुमच्या वैयक्तिक डिरेक्टरीमध्ये असावे. तुमच्या टीमने लिहिलेल्या डॉक्युमेंटेशनमधून तयार केलेले skill रिपॉझिटरीमध्ये असावे, ज्यामुळे एकाधिक रिपॉझिटरीजमध्ये एक skill शेअर करणे ही पुढील सोडवण्याची समस्या बनते.

तुम्ही प्रत्येक नवीन skill जोडता तेव्हा एक खर्च वाढतो. प्रत्येक skill चे वर्णन skill लिस्टिंगमध्ये राहते जेणेकरून मॉडेल ते वापरण्याचा निर्णय घेऊ शकेल. एकत्रित वर्णनाचा मजकूर प्रति एंट्री 1,536 कॅरेक्टर्सवर मर्यादित केला जातो आणि संपूर्ण लिस्टिंगसाठी एक बजेट असते. दहा पुस्तकांपासून तयार केलेली skills म्हणजे दहा वर्णने त्या बजेटसाठी स्पर्धा करतात. ज्यांना तुम्ही नेहमी नावाने हाक मारता, त्यांच्यासाठी तयार केलेल्या frontmatter मध्ये एक ओळ जोडा:

---
name: platform-handbook
description: Frameworks and chapter index from the internal platform handbook.
disable-model-invocation: true
---

disable-model-invocation: true सह वर्णन पूर्णपणे संदर्भाबाहेर राहते आणि तुम्ही /platform-handbook टाईप करता तेव्हा skill पूर्णपणे लोड होते. तुम्ही स्वयंचलित शोध (automatic discovery) सोडून देता आणि तुम्हाला अधिक शांत कॉन्टेक्स्ट विंडो मिळते.

परवाना: MIT परवाना कन्व्हर्टरसाठी आहे, पुस्तकासाठी नाही

याबाबत स्पष्ट राहा, कारण येथे होणारी चूक तांत्रिक स्वरूपाची नाही.

  • MIT परवाना केवळ कन्व्हर्टरचा कोड आणि त्याच्या स्किलची व्याख्या यावर लागू होतो. तुम्ही त्याला दिलेल्या डॉक्युमेंटबद्दल तो काहीही भाष्य करत नाही.
  • तुम्ही विकत घेतलेल्या पुस्तकावर, तुमच्या नियंत्रणाखालील हार्डवेअरवर कन्व्हर्टर चालवणे म्हणजे तुम्ही तुमच्या स्वतःच्या प्रतीवरून नोट्स तयार करत आहात.
  • निकाल प्रकाशित करणे म्हणजे वितरण करणे होय, आणि टूलवरील MIT परवाना तुम्हाला दुसऱ्याच्या पुस्तकापासून तयार केलेली कोणतीही गोष्ट वितरित करण्याचा अधिकार देत नाही.
  • आउटपुट हे एक व्युत्पन्न कार्य (derivative work) आहे. फ्रेमवर्क्स आणि प्रकरणांमधील मुख्य मुद्दे अजूनही मूळ स्रोताद्वारे आकारलेले असतात आणि व्युत्पन्न कार्य अजूनही मूळ स्रोताच्या कॉपीराइटद्वारे नियंत्रित केले जाते.
  • तुम्ही पुन्हा वितरित करू शकत नाही अशा साहित्यापासून तयार केलेले स्किल त्याच मशीनवर राहते ज्यावर ते तयार केले गेले आहे. ते सार्वजनिक रिपॉझिटरीवर किंवा सामायिक टीम मार्केटप्लेसवर नसावे.
  • जेव्हा स्रोत तुमचा स्वतःचा असतो किंवा तो मुक्तपणे परवानाकृत असतो, तेव्हाच प्रकाशित करा: जसे की तुमच्या टीमने लिहिलेली कागदपत्रे किंवा असे मानक ज्याच्या अटी वितरणाची परवानगी देतात.

हे टूल याच तत्त्वावर आधारित आहे. ते कोणत्याही पुस्तकातील मजकूर सोबत देत नाही, एक्सट्रॅक्शन स्थानिक पातळीवर चालते आणि त्याची पब्लिश स्टेप रिपॉझिटरीच्या दृश्यमानतेबद्दल (visibility) एक स्वतंत्र प्रश्न विचारते, ज्यामध्ये केवळ public किंवा private हे शब्द स्वीकारले जातात. त्या प्रॉम्प्टला परवाना देण्याचा निर्णय समजा, कारण तो तसाच आहे.

अंतर्गत हँडबुक्समध्ये दुसरी समस्या असते. त्यामध्ये अनेकदा कोणालाही कल्पना नसेल इतक्या प्रमाणात क्रेडेंशियल्स असतात आणि कन्व्हर्टर अशा PDF चे रूपांतर अशा फाईलमध्ये करतो जी कोणीही उघडत नाही, पण तुमचा एजंट ती मागणीनुसार वाचतो. तयार केलेल्या फाईल्स कमिट करण्यापूर्वी एकदा वाचा आणि keeping secrets out of your AI agents पहा.

एका रूपांतरणाचा खर्च किती असतो?

खालील आकडेवारी ही प्रकल्पाने स्वतः प्रकाशित केलेली मोजमापे आहेत, आमची नाहीत.

ChartCost to convert one full-length book, as published by the project
The data behind this chart
[
  {
    "label": "Think Python 2",
    "cost_usd": 0.88
  },
  {
    "label": "Working Backwards",
    "cost_usd": 0.96
  },
  {
    "label": "Pro Git",
    "cost_usd": 1.23
  },
  {
    "label": "Moby-Dick",
    "cost_usd": 1.42
  }
]

प्रकल्पाने मोजलेल्या 4 पुस्तकांसाठी, एका रूपांतरणाचा खर्च 0.88 ते 1.42 US डॉलर्सच्या दरम्यान होता, तर Pro Git साठी हा खर्च 1.23 इतका होता. हे आकडे Claude Sonnet 4.5 वर मोजले गेले आहेत, ज्यामध्ये tiktoken कडून मिळालेल्या टोकन गणनेसाठी cl100k_base चा वापर केला आहे. ही माहिती ऑगस्ट 2026 पर्यंत प्रकल्पाच्या docs/performance.md मध्ये प्रकाशित करण्यात आली आहे. तुमचा प्रत्यक्ष खर्च तुम्ही वापरत असलेले मॉडेल आणि किमतींनुसार बदलू शकतो.

प्रकल्पाने असेही नमूद केले आहे की, संपूर्ण पुस्तक संदर्भात (context) पेस्ट करण्यापेक्षा, कौशल्यातून (skill) एका प्रश्नाचे उत्तर मिळवण्यासाठी 24 ते 51 पट कमी टोकन्स लागतात. याकडे बचतीचे एक स्वरूप म्हणून पहा, हमी म्हणून नाही, कारण ते पुस्तक आणि प्रश्नावर अवलंबून असते. तांत्रिक मुद्दा स्पष्ट आहे: रूपांतरणासाठी एकदाच पैसे द्यावे लागतात, तर संपूर्ण पुस्तक संदर्भात टाकल्यास प्रत्येक संभाषणासाठी पुन्हा पैसे मोजावे लागतात.

PDF पेस्ट करणे किंवा RAG इंडेक्स तयार करणे का नको?

PDF पेस्ट करणे हे एका दस्तऐवजाबद्दलच्या एका प्रश्नासाठी योग्य उत्तर आहे. पण जेव्हा त्याच पुस्तकाची गरज मंगळवारी आणि पुन्हा शुक्रवारी असते, तेव्हा ते चुकीचे ठरते, कारण प्रत्येक वेळी तुम्हाला त्या पूर्ण फाईलचा आकार मोजावा लागतो.

Retrieval किंवा RAG (retrieval augmented generation) क्वेरीच्या वेळी शोध घेते आणि तुमच्या शब्दांशी जुळणारे उतारे परत देते. जेव्हा तुम्हाला नेमके वाक्य हवे असते, तेव्हा हे प्रभावी ठरते. मात्र, जेव्हा एखादी उपयुक्त माहिती संपूर्ण प्रकरणाभर विखुरलेली असते, तेव्हा हे कमकुवत ठरते, कारण कोणताही एक उतारा ती माहिती पूर्णपणे देऊ शकत नाही. एक Skill ही माहिती रूपांतरणाच्या वेळी एकदाच काढून घेते आणि उताऱ्यांऐवजी तिची रचना साठवून ठेवते.

प्रामाणिक मर्यादा अशी आहे की, तयार केलेली Skill हा मॉडेलने लिहिलेला एक माहिती कमी असलेला सारांश असतो. हे अभ्यासासाठीचे एक साधन आहे आणि मूळ स्रोत हा मूळच राहतो. जेव्हा नेमक्या शब्दांना कायदेशीर किंवा प्रोटोकॉलचे महत्त्व असते, तेव्हा PDF जवळ ठेवा आणि त्यातूनच संदर्भ द्या. MCP सर्व्हर्स आणि रूल्स फाईल्सच्या तुलनेत Skills मध्ये प्रत्येक पद्धत कुठे वापरावी, हे स्पष्ट केले आहे.

अपयशाचे प्रकार आणि तुम्हाला दिसणारे संदेश

स्कॅन केलेली PDF काहीही आउटपुट देत नाही. एक्सट्रॅक्टर सुरुवातीच्या पानांवर मजकूर स्तर (text layer) तपासतो आणि 400 पानांच्या प्रतिमांवर प्रक्रिया करण्याऐवजी स्पष्टीकरणासह थांबतो. प्रथम ocrmypdf input.pdf output.pdf चालवा आणि त्यानंतर आउटपुट फाईल त्याला इनपुट म्हणून द्या.

pip इन्स्टॉल करण्यास नकार देते. Ubuntu 24.04 वरील error: externally-managed-environment ही सिस्टिम Python ला सुरक्षित ठेवण्यासाठी apt द्वारे केलेली सोय आहे. वरील व्हर्च्युअल एन्व्हायरनमेंट वापरा किंवा poppler-utils इन्स्टॉल करा आणि pip पूर्णपणे वगळा.

प्रकरणे (chapters) चुकीच्या पद्धतीने येतात. चॅप्टर डिटेक्शन Chapter 7 सारख्या स्पष्ट शीर्षकांचा आणि त्यांच्या भाषिक प्रकारांचा शोध घेते. ज्या पुस्तकात केवळ साधी विभाग शीर्षके किंवा रोमन अंक वापरले आहेत, तिथे चुकीचे विभाजन होते. अशा वेळी सॉफ्टवेअरने अंदाज लावण्यापेक्षा प्रकरणांची सुरुवात कोठून होते हे सांगणे हाच उपाय आहे.

कमांड अस्तित्वात नाही. ऑटो-कम्प्लीटमध्ये /book-to-skill दिसत नसेल, तर याचा अर्थ असा की तुमच्या सेशननंतर स्किल्स डिरेक्टरी तयार झाली आहे. एजंट रीस्टार्ट करा.

Docling ला खूप वेळ लागतो. प्रति पान साधारण 1.5 सेकंद या वेगाने मोठ्या पुस्तकासाठी CPU चा बराच वेळ खर्च होतो. शेअर केलेल्या सर्व्हरवर ही प्रक्रिया इतर होस्ट केलेल्या सेवांशी स्पर्धा करते. जेव्हा रन कंटेंट प्रकाराबद्दल विचारते तेव्हा "text-heavy" असे उत्तर द्या किंवा तुम्ही स्वतः scripts/extract.py चालवत असाल तर --mode text पास करा. --mode technical हे उत्तर docling निवडते.

स्त्रोत शांतपणे नाहीसा होतो. जी फाईल वाचता येत नाही, ती बॅच पूर्ण करण्यासाठी वगळली जाते. त्यानंतर रन तुम्ही दिलेल्या स्त्रोतांपेक्षा कमी स्त्रोतांवर यशस्वी झाल्याचा अहवाल देते. हे केवळ अंतिम अहवालातील फाईल इन्व्हेंटरीमध्ये दिसून येते.

हीच पद्धत हाताने लागू करा

हे साधन केवळ सोयीसाठी आहे. याची रचना हीच हस्तांतरणीय गोष्ट आहे आणि कोणत्याही संदर्भासाठी ती टेक्स्ट एडिटर वापरून तयार करता येते.

  1. एक एन्ट्री फाइल लिहा आणि ती कन्व्हर्टर ज्या 4,000 टोकन्सना लक्ष्य करते, त्यांच्या जवळ ठेवा. त्यामध्ये नामनिर्देशित संकल्पना त्यांच्या अचूक मांडणीसह लिहा आणि प्रत्येक तपशील फाइल व त्या फाइलमध्ये असलेले विषय यांची एक यादी (index) समाविष्ट करा.
  2. माहितीचे विभाजन साधारणपणे 1,000 टोकन्सच्या फाइल्समध्ये करा. प्रत्येक फाइलमध्ये एकच विषय असावा आणि फाइलचे नाव वाचूनच त्यातील आशय समजेल असे ठेवा.
  3. एन्ट्री फाइलमधून या प्रत्येक फाइलचे वर्णन करा आणि ती कधी वाचावी, हे स्पष्ट करणारे वाक्य लिहा.

पायरी 3 ही अशी गोष्ट आहे जी लोक सहसा टाळतात, पण याच पायरीमुळे ही पद्धत प्रभावी ठरते. एजंट इंडेक्स वाचूनच कोणती फाइल उघडायची हे ठरवतो, त्यामुळे ज्या फाइलचे वर्णन इंडेक्समध्ये नाही, ती फाइल एजंट कधीच उघडत नाही. इंडेक्स हेच मुख्य उत्पादन आहे आणि चॅप्टर फाइल्स हे केवळ साठवणुकीचे माध्यम आहे.

एन्ट्री फाइलला कॉम्पॅक्शन बजेटच्या मर्यादेत ठेवा, म्हणजे संपूर्ण रचना दीर्घ सत्रातही टिकून राहील. कन्व्हर्टरने फाइल्स लिहिल्या असोत किंवा तुम्ही, हा नियम दोन्ही ठिकाणी लागू होतो.

FAQ

मी विकत घेतलेल्या पुस्तकावरून तयार केलेले स्किल प्रकाशित करू शकतो का?

नाही, जोपर्यंत त्या पुस्तकाचा परवाना पुनर्वितरणाची परवानगी देत नाही तोपर्यंत हे शक्य नाही. कन्व्हर्टरवरील MIT परवाना केवळ कन्व्हर्टरच्या कोडला लागू होतो, तुम्ही दिलेल्या साहित्याला नाही, आणि तयार केलेले स्किल हे त्या पुस्तकाचे व्युत्पन्न कार्य (derivative work) असते. ते तुमच्या स्वतःच्या मशीनवर ~/.claude/skills/ मध्ये ठेवा. तुम्ही स्वतः लिहिलेल्या दस्तऐवजीकरणासाठी किंवा मुक्त परवाना असलेल्या स्रोतांसाठी प्रकाशन करणे योग्य आहे. हे साधन स्वतःच रिपॉझिटरीच्या दृश्यतेबद्दल विचारते आणि केवळ public किंवा private स्वीकारते, त्यामुळे हा निर्णय जाणीवपूर्वक घेतला जातो.

मला docling ची गरज आहे की pdftotext पुरेसे आहे?

गद्य मजकुरासाठी poppler-utils मधील pdftotext पुरेसे आहे आणि ते अत्यंत जलद काम करते. जेव्हा पुस्तकाचे मूल्य त्यातील तक्ते आणि कोड लिस्टिंगमध्ये असते, तेव्हा docling इंस्टॉल करा, कारण साधा मजकूर काढणारे साधन (plain text extractor) नेमके तेच घटक वगळते. यात वेगाचा फरक पडतो: हा प्रकल्प docling चा वेग प्रति पान अंदाजे 1.5 सेकंद मोजतो, त्यामुळे 300 पानांचे मॅन्युअल प्रक्रिया करण्यासाठी VPS वर काही मिनिटांचा CPU वेळ लागू शकतो.

माझ्या VPS वर pip हे externally-managed-environment मुळे का अपयशी ठरते?

Ubuntu 24.04 आणि सध्याचे Debian हे सिस्टम Python ला apt द्वारे व्यवस्थापित मानतात, त्यामुळे pip त्यात काहीही इंस्टॉल करण्यास नकार देते आणि error: externally-managed-environment हा एरर दाखवते. python3 -m venv ~/.venvs/book-to-skill वापरून व्हर्च्युअल एन्व्हायर्नमेंट तयार करा, ते सक्रिय करा, तिथे एक्सट्रॅक्टर्स इंस्टॉल करा आणि त्यानंतर त्याच शेलमधून तुमचा एजंट सुरू करा. हे स्किल python3 ला कॉल करते, त्यामुळे ते तुमच्या PATH वर असलेल्या इंटरप्रिटरचा वापर करते, जो आता व्हर्च्युअल एन्व्हायर्नमेंटमधील इंटरप्रिटर आहे.

माझे तयार केलेले स्किल स्लॅश कमांड म्हणून का दिसत नाही?

याची दोन कारणे आहेत. कमांडचे नाव डिरेक्टरीच्या नावावरून येते, त्यामुळे स्किल हे ~/.claude/skills/<name>/SKILL.md किंवा .claude/skills/<name>/SKILL.md मध्ये असणे आवश्यक आहे आणि SKILL.md चे स्पेलिंग अगदी तसेच असावे. जर पाथ बरोबर असेल, तर एजंट रीस्टार्ट करा. Claude Code आधीच मॉनिटर करत असलेल्या स्किल डिरेक्टरीमधील बदल स्वीकारते, परंतु सेशन सुरू झाल्यानंतर तयार केलेली स्किल्स डिरेक्टरी अजिबात मॉनिटर केली जात नाही.