fullseye

Fullseye को AI assistant के RAG के रूप में इस्तेमाल करना (Claude Code के लिए)

日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch · हिन्दी

Fullseye चलाने का सुझाया गया तरीका है किसी AI coding assistant के knowledge base (RAG) के रूप में। क्योंकि हर op के साथ एक machine-readable Markdown note होता है (docs/ops, एक single source of truth), किसी अतिरिक्त vector database या embedding service की ज़रूरत नहीं। जो भी environment grep कर सकता है, वह पहले से ही एक RAG है।

अपनाने के तीन स्तर (tiers) दिए गए हैं। Tiers 0/1 में कोई external dependency नहीं (Fullseye repository के अंदर ही पूरे)।

PyPI से इस्तेमाल: जिस environment में आप pip install fullseye करते हैं, वहाँ console script fullseye-rag उपलब्ध होती है। Checkout (clone / pip install -e .) skill से पूरा docs/ops corpus pin करता है; सिर्फ़ wheel वाला install इसकी जगह bundled OP_CATALOG.md (AI के लिए सभी ops का catalog) pin करता है (अगर बाद में आपको हर op के पूरे notes चाहिए, तो बस repo clone करके फिर से चलाएँ)। Update करने के लिए py -3.11 tools/update_fullseye.py चलाएँ (dirty tree को मना करता है, --ff-only, backup के ऊपर skill update करता है, और Studio settings को नहीं छूता — इस तरह design किया गया है कि आपका environment न बिगड़े)।

अंदर जाने का रास्ता एक नहीं है (पहले यह पढ़ें)

केवल documents मिलने पर Codex और Copilot दोनों पहली बार में task से op तक का index नहीं ढूँढ पाए (2026-09-15), क्योंकि यह guide उसकी ओर इशारा नहीं करती थी। अंदर जाने के पाँच रास्ते हैं:

  1. task से → docs/CAPABILITIES.en.md। हर task की एक file (docs/capabilities/) में recommended pipeline (क्रमबद्ध ops) / विकल्प / सीमाएँ / वास्तविक माप में calibration; tests/test_capabilities.py जाँचता है कि हर op मौजूद है और types (in → out) एक step से अगले step तक जुड़ते हैं।
  2. आप जो करना चाहते हैं, अपने शब्दों में → fullseye-rag search / fullseye.search_ops (अगला section)।
  3. op के नाम या concept से → docs/ops/INDEX.md → family index → op note।
  4. program से → fs.op_find(query) (free text, stems) / fs.op_assist(op) (spec, presets, आगे क्या जोड़ें) / fs.op_path(from_sort, to_sort) (type A से type B तक op chain) / fs.op_producers(sort) (वह type बनाने वाले ops) / fs.op_accepts(op) (मापे गए स्वीकार्य types); command line पर fullseye has <op> (HALCON नाम से भी)।
  5. index files → docs/OP_INDEX.json (हर op का type contract) और wheel के साथ आने वाली OP_CATALOG.md।

Windows shell में notes को स्पष्ट रूप से UTF-8 में पढ़ें — वे बिना BOM के UTF-8 हैं; default code page से खोलने पर जापानी text बिगड़ जाता है और AI “पढ़ नहीं पाया” को “मौजूद नहीं” समझ लेता है (Codex में सच में हुआ)। PowerShell: Get-Content -Encoding utf8; Python: PYTHONUTF8=1।


यहाँ से शुरू करें: आप जो करना चाहते हैं, उसके हिसाब से ops ढूँढें (हर tier में काम करता है)

fullseye-rag search "remove noise"          # command (works with just pip install fullseye)
fullseye-rag search "Rauschen entfernen" -k 5 --lang en
import fullseye
fullseye.search_ops("edge detection", k=5)   # Python; over MCP use fullseye_find_ops

हर op summary सात भाषाओं में index की गई है (Japanese original के साथ English, Simplified और Traditional Chinese, Korean, German और Hindi अनुवाद; Hindi में technical terms English में रहते हैं, इसलिए उन्हें English में search करें), साथ में op name, HALCON name और in/out types भी; results ranked रूप में लौटते हैं, summary आपकी query की भाषा में और note का path साथ में। Note bodies Japanese में हैं, इसलिए “Rauschen”, “降噪” या “잡음” के लिए grep करने पर कुछ नहीं मिलता — यह search आपकी अपनी भाषा में ops ढूँढती है। कोई embeddings नहीं और कोई external service नहीं (BM25, सिर्फ़ standard library)। यह synonyms नहीं जानती: अगर hits कम लगें, तो दूसरे शब्दों में लिखें या English आज़माएँ। अगर आपको name पहले से पता है, तो MCP fullseye_search_ops (substring match) तेज़ है। चलाने लायक example: py -3.11 examples/find_ops_by_meaning.py।


Tier 0: बस repository खोलें (शून्य steps)

Claude Code में Fullseye repository का checkout खोलें, और आप docs/ops/INDEX.md तथा हर op के notes को सीधे search और reference कर सकते हैं। Corpus repository का content है (wheel में bundled नहीं), इसलिए अगर आपने सिर्फ़ pip install किया है, तो repository भी clone करें।

docs/ops/2d/<category>/<op>.md   # call form, type contract, HALCON alias, references, related ops
docs/ops/3d/<category>/<op>.md
docs/ops/INDEX.md                # whole table of contents, auto-generated by walking the folder tree
docs/ops/<family>/guides/<name>.md   # हर family की how-to guides (math, diagrams, canonical citations)
docs/OP_INDEX.json               # machine-readable index of the registry

Tier 1: इसे skill के रूप में हमेशा उपलब्ध रखें (सुझाया गया; bundled installer)

अगर आप अपने project में काम करते हुए Fullseye से सलाह लेना चाहते हैं, तो bundled setup script एक बार चलाएँ:

py -3.11 tools/setup_claude_rag.py              # install (re-run = update)
py -3.11 tools/setup_claude_rag.py --uninstall  # remove

Bundled skill skills/fullseye-ops को ~/.claude/skills/fullseye-ops में copy किया जाता है, और SKILL.md की FULLSEYE_REPO = line अपने-आप इस checkout के absolute path पर pin हो जाती है (ताकि AI को पता रहे कि corpus कहाँ है, चाहे वह किसी भी project में काम कर रहा हो)। जिस checkout में corpus (docs/ops) नहीं मिलता, वहाँ यह install करने से मना कर देती है (fail-closed)।

इसके बाद image-processing / geometric-vision विषयों पर Claude Code अपने-आप यह skill invoke करता है और यह flow चलाता है: docs/ops में search (retrieve) → ऐसे ops चुनें जिनके types (sorts) जुड़ते हों और implement करें → bundled worked example से verify करें। Skill body खुद ही “AI के लिए इस्तेमाल के निर्देश” है। इसे हाथ से install करने के लिए बस skills/fullseye-ops को ~/.claude/skills/ में copy करें (path pin के बिना AI हर बार repo की location ढूँढता है)।

Tier 2 (optional): clustered corpus — external tools के साथ एक advanced रूप

आप एक “navigable corpus” भी बना सकते हैं, जो 3,629 notes को hierarchical तरीके से topic clusters में बाँटता है और हर cluster का LLM summary देता है। अंदर हम RAPTOR fork का corpus2skill इस्तेमाल करते हैं (TF-IDF + k-means + LLM summary), लेकिन यह एक optional optimization है, ज़रूरत नहीं। एकमात्र ज़रूरत है “docs/ops को input के रूप में लेना और हर cluster की SKILL.md hierarchy निकालना”, इसलिए कोई भी बराबर का tool इसकी जगह ले सकता है।

फिर से ingest करने का example (notes update करने के बाद) — ईमानदारी से, ठीक वैसे ही दर्ज जैसे हम अंदर चलाते हैं:

$env:RAPTOR_DIR="<path-to-raptor-checkout>"
py -3.11 raptor_corpus2skill.py --source <fullseye>/docs/ops --name fullseye_ops_corpus_v2 `
  --overwrite --max-depth 2 --max-clusters 6 --min-cluster-size 8   # needs ANTHROPIC_API_KEY

सावधानी: clustered corpus ingest के समय का snapshot होता है। अगर आप docs/ops update करते हैं, तो फिर से ingest किए बिना यह पुराना पड़ जाता है (Tiers 0/1 कभी पुराने नहीं पड़ते क्योंकि वे हमेशा live notes पढ़ते हैं)।


Tier 3 (bundled): literature layer — manufacturing knowledge को “कौन से ops इस्तेमाल करें” में समेटना

Op note बताता है “यह op क्या करता है”; वह यह नहीं बताता कि “इस process में, इस part के लिए मुझे क्या measure करना चाहिए”। docs/literature/ यह कमी पूरी करता है: external literature corpora (mechanical design, mechatronic parts, manufacturing processes, driving simulation और evaluation, sensor simulation — लगभग 8,900 OpenAlex metadata records; हर field के लिए एक theme → op table) को हर cluster के हिसाब से summarise किया गया है, साथ में हर cluster में इस्तेमाल होने वाले ops (हाथ से लिखी theme → op table, जिसके op names generation के समय shipped notes से जाँचे जाते हैं) और provenance के रूप में representative papers का title / year / DOI। इसे ऐसे पढ़ें: process, part या driving-evaluation topic → literature cluster → इस्तेमाल होने वाले ops → op note (type contract, चलाने लायक example) → implementation। Abstracts copy नहीं किए जाते, और ops कभी भी word overlap से नहीं चुने जाते (measure करने पर पता चला कि यह generic words पर असंबंधित ops ला देता था, इसलिए हटा दिया गया)। क्योंकि corpora repo के बाहर रहते हैं, सिर्फ़ यह layer tools/gen_literature_notes.py --rad-root <RAD> से फिर से बनाई जाती है, और tests/test_literature_notes.py इसके आकार की रक्षा करता है।

Optical metrology और inspection की विश्वसनीयता (POD, laser speckle, shape from polarization, global light transport, acceptance testing और uncertainty, synthetic data — 6 अक्ष) एक हाथ से चुनी गई परत है: papers हाथ से चुने गए हैं और हर अक्ष का overview हाथ से लिखा गया है (manifest docs/literature/curated/)।

असल में कहाँ से मिलती है: यह परत repository की files पढ़ने पर मिलती है (Claude Code skill fullseye-ops, checkout mode)। MCP server की search (fullseye_search_ops / fullseye_find_ops) और fullseye-rag search literature परत के clusters या papers नहीं लौटाते। लेकिन theme → op table में हाथ से लिखा context (“theme: यह op क्यों”, जापानी में और उसका English अनुवाद) meaning search के index में शामिल है, इसलिए shop-floor की भाषा (weld bead height, polishing removal) से भी op मिल जाता है और result के contexts field में दिखता है। wheel (pip install) में भी docs/literature नहीं है।


यह क्यों काम करता है (design का तर्क)

  1. md = single source of truth: notes registry से deterministically auto-generate होते हैं, और एक CI drift test यह लागू करता है कि “committed note == current code से generate हुआ note”। AI जो document पढ़ता है और असली code हमेशा एक ही version के होते हैं (frontmatter version + fingerprint)।
  2. Type (sort) contract: हर note में in:/out: और “related ops जिनके types जुड़ते हैं” होते हैं, ताकि AI pipeline को type-check करते हुए जोड़ सके।
  3. Verifiable: हर op का एक ground-truth worked example है (examples/ / examples_3d/), ताकि AI अपना proposal खुद चलाकर जाँच सके।
  4. Display तक end to end: Studio (py -3.11 studio.py) खोलें, और AI ने जो जोड़ा है उसे इंसान उसी screen पर image windows और 3-D views के रूप में देख सकता है (scripts dev_open_window आदि से कई windows रख सकती हैं)।