پایگاهِ دادهٔ برداری فقط فهرستی از عددها نیست؛ برایِ استفاده از نتیجهٔ جستوجو، بردار باید به شناسه و اطلاعاتِ منبع وصل باشد. نمرهٔ نزدیک بهتنهایی نمیگوید متنِ پشتِ آن هنوز وجود دارد یا همان نسخهٔ ثبتشده است. در این تمرین، این اتصال را با چهار بردارِ دستی و دو سندِ ساختگی در SQLite حافظهای بررسی میکنیم.
سه جزءِ یک رکورد را جدا ببینیم
شناسهٔ نقطه، خودِ بردار و اطلاعاتِ همراه یا payload سه نقشِ متفاوت دارند. شناسهٔ نقطه میتواند V2 باشد، درحالیکه شناسهٔ منبعِ آن D1 است؛ یکیگرفتنِ این دو الزامی نیست. چند قطعهٔ یک سند هم ممکن است چند رکوردِ برداری داشته باشند. در مرجعِ Qdrant، نقطه از بردار و payload اختیاری تشکیل میشود و شناسهٔ نقطه هم مدیریت میشود.
در فایلِ ما، اطلاعاتِ همراه شاملِ شناسهٔ منبع، SHA-256 متن و شناسهٔ فضایِ آموزشیِ toy-v1 است. دو مؤلفهٔ هر بردار را نویسنده تعیین کرده؛ مدلِ embedding اجرا نشده است. برابریِ طولِ دو بردار، سازگاریِ مدلِ سازنده یا معنایِ محورهایشان را ثابت نمیکند؛ شناسهٔ فضایِ مشترک هم اینجا تنها قراردادِ محلی است.
دو سند و چهار رکوردِ واردشده
D1 دربارهٔ دو روز زمانِ آمادهسازی و D2 دربارهٔ تأییدِ نوبت است؛ هر دو متنِ کوتاه اصیل و ساختگیاند. برایِ هرکدام hash از خودِ UTF-8 متن حساب میشود. جدولِ نقطهها را عمداً طوری میسازیم که یک رکورد به hash قدیمیِ D1 و یک رکورد به منبعِ ناموجود وصل باشد. این وضعیت، دادهٔ خرابِ آزمایش است و طرحِ توصیهشدهٔ پایگاهِ عملیاتی نیست.
| شناسهٔ نقطه | منبع | وضعیتِ اتصال |
|---|---|---|
| V1 | D1 | متنِ فعلی با hash ثبتشده متفاوت است |
| V2 | D1 | منبع و hash برابرند |
| V3 | ناموجود | رکوردِ منبع پیدا نمیشود |
| V4 | D2 | منبع و hash برابرند |
نزدیکترینِ خام، الزاماً قابلِ استفاده نیست
پرسشِ عددی [۱،۰] است و فاصلهٔ مربعیِ اقلیدسی را میگیریم. V1 با بردارِ [۱،۰] فاصلهٔ صفر دارد و نخستینِ خام است. V3 نیز نزدیک است، اما منبع ندارد. پس از بررسیِ اتصال و hash و فضایِ اعلامشده، V2 با بردارِ [۰٫۹،۰٫۱] نخستینِ باقیمانده است. کد این ترتیب و دلیلِ دو رد را واقعاً تولید میکند.
معتبرشدنِ اتصال به معنی درستبودنِ پاسخ، مجازبودنِ دسترسی یا جاریبودنِ حکمِ سند نیست. hash فقط برابریِ بایتهایِ متنِ انتخابی را بررسی میکند؛ منبعِ معتبرِ hash و قراردادِ متن هم باید روشن باشند. فایل، محتوایِ D1 را از نظرِ معنا، سیاست یا تأییدِ صاحبِ سند اعتبارسنجی نمیکند.
تکرارِ شناسه چه رفتاری دارد؟
همان V2 را با همان داده دوباره upsert میکنیم و شمارِ رکوردها چهار میماند. در این جدول، تعارضِ شناسه باعثِ بهروزرسانیِ همان سطر است؛ تاریخچهٔ خودکار ساخته نمیشود. مستندِ سرویسِ مرجع هم رفتارِ شناسهٔ یکسان را توضیح میدهد، ولی کدِ ما SQLite استانداردِ پایتون است و Qdrant یا سرویسِ برداریِ دیگری را اجرا نمیکند.
کلِ پایگاه با :memory: ساخته و در پایان بسته میشود؛ فایلِ مشتری، شبکه یا پایگاهِ موجود خوانده و تغییر داده نمیشود. این تمرین نه شاخصِ ANN میسازد، نه بازیابیِ چندمیلیونی را benchmark میکند و نه مجوزِ خودکارِ اصلاحِ دادهٔ واقعی میدهد.
از مخزنِ بردار به پاسخگوییِ مستند
مدلِ برداری با مدلِ مولد یک وظیفه ندارد؛ این صفحه مرحلهٔ نگهداریِ شناسه و اتصالِ خروجیِ بازیابی به متن را نشان داد. فیلترِ تاریخِ اعتبارِ سند هم موضوعِ دیگری است؛ برابریِ hash جایِ انتخابِ حکمِ معتبرِ تاریخِ سؤال را نمیگیرد.
برایِ بررسیِ کاربردِ چت، نمونهٔ مجازِ سند و انتظارِ بازیابی را در درخواستِ بررسیِ چتِ اپرا مشخص کنید. این فایل معماریِ داخلیِ محصول را اعلام نمیکند؛ خروجیِ مستقلش نشاندادنِ تفاوتِ «بردارِ نزدیک» و «متنِ منبعِ قابلِ اتصال» است.
فایل تمرین و منبع
رکوردِ بردار، شناسهٔ منبع و hash را در SQLite حافظهای بررسی کنید · ترتیبِ خام، دو رکوردِ ردشده و منبعِ قابلِ اتصال
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.