منصوبے کے بارے میں
# QMD - Query Markup Documents
QMD ایک آن ڈیوائس سرچ انجن ہے جو ذاتی علم کے ڈیٹابیس، دستاویزات، میٹنگ نوٹس اور مارک ڈاؤن پر مبنی کسی بھی مواد کے لیے ڈیزائن کیا گیا ہے۔ یہ مکمل طور پر مقامی طور پر چلتا ہے، BM25 فل ٹیکسٹ سرچ، ویکٹر سیمینٹک سرچ اور LLM پر مبنی دوبارہ درجہ بندی کو یکجا کرتا ہے، بغیر ڈیٹا کو بیرونی سروسز کو بھیجے اعلیٰ معیار کے نتائج فراہم کرتا ہے۔
## اہم خصوصیات
- **ہائبرڈ سرچ پائپ لائن**: BM25 (FTS5)، ویکٹر سمیلیرٹی سرچ اور LLM دوبارہ درجہ بندی کو یکجا کرتا ہے۔ کوری توسیع typed ذیلی سوالات پیدا کرتی ہے (`lex` کلیدی الفاظ کے لیے، `vec` dens ویکٹرز کے لیے، `hyde` فرضی دستاویز ایمبیڈنگز کے لیے) جو مناسب بیک اینڈز کو بھیجے جاتے ہیں، Reciprocal Rank Fusion (RRF) کے ذریعے ملائے جاتے ہیں اور LLM کے ذریعے دوبارہ درجہ بند کیے جاتے ہیں۔
- **Context Tree**: کلیکشنز میں درجہ بندی والا سیاق و سباق شامل کریں (مثلاً `qmd://notes` → "ذاتی نوٹس اور آئیڈیاز") جو مماثل دستاویزات کے ساتھ واپس کیا جاتا ہے، جس سے LLM کو بہتر سیاق و سباق کے فیصلے کرنے میں مدد ملتی ہے۔
- **مقامی ماڈلز**: ہگنگ فیس سے ڈاؤن لوڈ کردہ GGUF ماڈلز استعمال کرتا ہے اور مقامی طور پر کیش کرتا ہے۔ ڈیفالٹ ایمبیڈنگ ماڈل `embeddinggemma-300M-Q8_0` (~300MB) ہے۔ حسب ضرورت ماڈلز `QMD_EMBED_MODEL` ماحولیاتی متغیر کے ذریعے سیٹ کیے جا سکتے ہیں (مثلاً کثیر لسانی کارپورا کے لیے)۔
- **AST سے آگاہ چنکنگ**: کوڈ فائلوں (TypeScript, JavaScript, Python, Go, Rust) کے لیے اختیاری tree-sitter پر مبنی چنکنگ اعلیٰ معیار کے ٹکڑے تیار کرتی ہے؛ دیگر فائل اقسام regex پر مبنی چنکنگ استعمال کرتی ہیں۔
- **MCP سرور**: ایک Model Context Protocol سرور پیش کرتا ہے جس میں سوال، دستاویزات کی بازیافت، بیچ بازیافت اور اسٹیٹس چیک کے ٹولز ہوتے ہیں۔ سیکیورٹی خصوصیات (DNS rebinding حملوں کو روکنے کے لیے origin/host کی تصدیق) کے ساتھ stdio اور HTTP ٹرانسپورٹ سپورٹ کرتا ہے۔
- **SDK**: TypeScript/JavaScript SDK کے ذریعے پروگرامیٹک رسائی جس میں تلاش، دستاویز کی بازیافت، سیاق و سباق کے انتظام اور کوری توسیع کے طریقے موجود ہیں۔
## فوری آغاز
# Install globally (Node or Bun)
npm install -g @tobilu/qmd
# or
bun install -g @tobilu/qmd
# Create collections
qmd collection add ~/notes --name notes
qmd collection add ~/Documents/meetings --name meetings
# Add context
qmd context add qmd://notes "Personal notes and ideas"
# Generate embeddings
qmd embed
# Search
qmd search "project timeline" # Fast keyword search
qmd vsearch "how to deploy" # Semantic search
qmd query "quarterly planning process" # Hybrid + reranking (best quality)
## CLI کمانڈز
- `qmd collection add <path> --name <name> [--mask <glob>]` — کلیکشن شامل کریں
- `qmd collection show <name>` — کلیکشن کی تفصیلات دکھائیں
- `qmd collection include/exclude <name>` — کلیکشن کی شمولیت ٹوگل کریں
- `qmd collection update-cmd <name> '<command>'` — اپڈیٹ کمانڈ سیٹ کریں
- `qmd embed [--chunk-strategy auto]` — ویکٹر ایمبیڈنگز بنائیں
- `qmd search <query> [-c <collection>] [--json] [--files] [--min-score <n>]` — کلیدی لفظ تلاش
- `qmd vsearch <query>` — سیمینٹک تلاش
- `qmd query <query>` — دوبارہ درجہ بندی کے ساتھ ہائبرڈ تلاش
- `qmd get <path|docid>` — دستاویز حاصل کریں
- `qmd multi-get <glob>` — متعدد دستاویزات حاصل کریں
- `qmd mcp [--http] [--port <n>] [--host <addr>] [--daemon]` — MCP سرور شروع کریں
- `qmd status` — انڈیکس ہیلتھ اور MCP اسٹیٹس دکھائیں
## MCP سرور
نمایاں ٹولز:
- `query` — typed ذیلی سوالات، RRF فیوژن اور اختیاری دوبارہ درجہ بندی کے ساتھ تلاش
- `get` — پاتھ، docid یا لائن رینج کے ذریعے دستاویز حاصل کریں
- `multi_get` — glob، کوما سے الگ فہرست یا docids کے ذریعے بیچ بازیافت
- `status` — انڈیکس ہیلتھ اور کلیکشن کی معلومات
HTTP ٹرانسپورٹ (ڈیفالٹ پورٹ 8181) فراہم کرتا ہے:
- `POST /mcp` — MCP Streamable HTTP
- `POST /query` (عرف `/search`) — MCP پروٹوکول کے بغیر ساختی تلاش
- `GET /health` — لائیونس چیک
سیکیورٹی: غیر loopback `Origin` ہیڈر والی درخواستیں مسترد کر دی جاتی ہیں (403)۔ `Host` کی تصدیق DNS rebinding کو روکتی ہے۔ ماحولیاتی متغیرات `QMD_ALLOWED_ORIGINS` اور `QMD_ALLOWED_HOSTS` مجاز origins/hosts کو بڑھا سکتے ہیں۔
## SDK استعمال
const { QmdStore } = require('@tobilu/qmd')
const store = new QmdStore({ dbPath: './qmd.db', collections: { notes: { path: '/path/to/notes' } } })
// Simple search (auto-expanded)
const results = await store.search({ query: 'authentication flow' })
// Structured query with typed sub-queries
const results2 = await store.search({
queries: [
{ type: 'vec', query: 'why do database connections time out under load' },
{ type: 'lex', query: 'connection timeout' }
],
collections: ['docs', 'notes']
})
// Disable reranking for speed
const fast = await store.search({ query: 'auth', rerank: false })
// Metadata filtering
const published = await store.search({
query: 'typescript',
filter: { key: 'topics', operator: 'all', value: ['typescript'] }
})
// Direct backend access
const bm25Results = await store.bm25Search('auth')
const vectorResults = await store.vectorSearch('auth')
// Query expansion
const expanded = await store.expandQuery('auth flow', { intent: 'user login' })
// Document retrieval
const doc = await store.get('docs/readme.md')
const body = await store.getDocumentBody('docs/readme.md', { maxLines: 100 })
// Context management
await store.addContext('docs', '/api', 'REST API reference documentation')
await store.removeContext('docs', '/api')
## تلاش کی پائپ لائن کی تفصیلات
1. **Query Expansion**: اصل سوال (وزن ×2) + 1 LLM تغیر
2. **Parallel Retrieval**: ہر سوال FTS اور ویکٹر انڈیکس دونوں میں تلاش کرتا ہے
3. **Top-Rank Bonus**: کسی بھی فہرست میں #1 رینک والی دستاویزات کو +0.05، #2-3 کو +0.02 ملتا ہے
4. **Top-K Selection**: دوبارہ درجہ بندی کے لیے ٹاپ 30 امیدوار لیں
5. **Re-ranking**: LLM ہر دستاویز کو اسکور کرتا ہے (yes/no مع logprobs confidence)
اسکور کی حدود: 0.0–0.2 کم مطابقت، زیادہ قدریں بہتر مماثلت ظاہر کرتی ہیں۔
## ماڈل کنفگریشن
ڈیفالٹ ماڈلز:
- ایمبیڈنگ: `embeddinggemma-300M-Q8_0` (~300MB)
- دوبارہ درجہ بندی: LLM پر مبنی (مانگ پر ڈاؤن لوڈ ہوتا ہے)
حسب ضرورت ایمبیڈنگ ماڈل کی مثال:
export QMD_EMBED_MODEL="hf:Qwen/Qwen3-Embedding-0.6B-GGUF/Qwen3-Embedding-0.6B-Q8_0.gguf"
نوٹ: ایمبیڈنگ ماڈل تبدیل کرنے کے لیے تمام کلیکشنز کو دوبارہ ایمبیڈ کرنا ضروری ہے کیونکہ ویکٹر ایک دوسرے سے مطابقت نہیں رکھتے۔
## تقاضے
- Node.js یا Bun رن ٹائم
- ماڈلز اور ایمبیڈنگز کے لیے کافی مقامی اسٹوریج
- اختیاری: تیز تر LLM انفرنس کے لیے GPU/VRAM (ماڈلز درخواستوں کے درمیان VRAM میں لوڈ رہتے ہیں)
## لائسنس
اوپن سورس سافٹ ویئر۔ تفصیلات کے لیے ریپوزٹری دیکھیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.