breadcrumbs_delimiter هوش مصنوعی breadcrumbs_delimiter Qdrant: قابلیت های جستجوی خود را با جستجوی برداری کارآمد افزایش دهید
هوش مصنوعی

Qdrant: قابلیت های جستجوی خود را با جستجوی برداری کارآمد افزایش دهید

اردیبهشت 19, 1402 0012

Qdrant یک موتور جستجوی برداری و پایگاه داده با کارایی بالا است که خدمات قابل اعتماد و آماده تولید را با یک API ساده برای ذخیره، جستجو و مدیریت بردارها و سایر ابرداده ها ارائه می دهد. Qdrant در نظر گرفته شده است تا فیلتر گسترده ای را ارائه دهد، و آن را به ویژه برای برنامه هایی که نیاز به شبکه عصبی یا تطابق مبتنی بر معنایی، جستجوی وجهی، و سایر موارد استفاده مرتبط دارند، مناسب می کند.

Qdrant به زبان برنامه نویسی Rust نوشته شده است که نوید سرعت، عملکرد و قابلیت اطمینان بی نظیر را حتی در شرایط بار بسیار زیاد می دهد. معیارهای Qdrant نشان دهنده ظرفیت آن برای مدیریت کارآمد و سریع حجم عظیمی از داده های با ابعاد بالا است.

Qdrant به شما امکان می‌دهد جاسازی‌ها یا رمزگذارهای شبکه عصبی را به برنامه‌های کامل برای مطابقت، جستجو، توصیه و موارد دیگر تبدیل کنید. API کاربرپسند و ویژگی‌های جستجوی گسترده آن، ایجاد برنامه‌های جستجوی مشابه پیچیده را بدون نگرانی در مورد زیرساخت اصلی آن آسان می‌کند.

نصب محلی

کلاینت Qdrant را با استفاده از pip نصب کنید.

pip install qdrant-client

کلاینت پایتون به شما امکان می دهد همان کد را در حالت محلی بدون راه اندازی سرور Qdrant اجرا کنید. به عبارت ساده، کلاینت را به صورت زیر مقداردهی اولیه کنید:

از واردات qdrant_client QdrantClient

client = QdrantClient(path="path/to/db")

Qdrant نصب با استفاده از Docker

ساده ترین روش برای شروع با Qdrant اجرای آن از تصویر داکر است. DockerHub همیشه بیشترین نسخه های اخیر.

اطلاعات sudo docker

تصویر را برای Docker بکشید

docker pull qdrant/qdrant

کانتینر را اجرا کنید

docker run -p 6333:6333 
    -v $(pwd)/path/to/data:/qdrant/storage 
    qdrant/qdrant

این دستور یک نمونه Qdrant را با استفاده از تنظیمات پیش‌فرض راه‌اندازی می‌کند. تمام داده ها را در فهرست ./path/to/data ذخیره می کند.

اکنون Qdrant باید در localhost:6333 قابل دسترسی باشد.

اتصال به ابر Qdrant

می‌توانید ثبت‌نام کنید و از Qdrant Cloud برای دریافت یک ردیف رایگان استفاده کنید.

هنگامی که خوشه و کلید API خود را دارید، می‌توانید به این شکل به آن متصل شوید:

از واردات qdrant_client QdrantClient

qdrant_client = QdrantClient(
    url="https://xxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxxx.us-east.aws.cloud.qdrant.io:6333"،
    api_key="",
)

نمونه‌ها

یک مجموعه جدید ایجاد کنید

از qdrant_client.models import Distance, VectorParams

client.recreate_collection(
    collection_name="مجموعه_من"،
    vectors_config=VectorParams(اندازه=100، فاصله=فاصله.COSINE)،
)

درج بردارها در مجموعه

وارد کردن numpy به عنوان np
از qdrant_client.models وارد کردن PointStruct

بردارها = np.random.rand(100، 100)
client.upsert(
    collection_name="مجموعه_من"،
    امتیاز=[
        PointStruct(
            id=idx
            vector=vector.tolist(),
            payload={"color": "red", "rand_number": idx % 10}
        )
        برای idx، بردار در enumerate(بردارها)
    ]
)

بردارهای مشابه را جستجو کنید

query_vector = np.random.rand(100)
بازدید = client.search(
    collection_name="مجموعه_من"،
    query_vector=query_vector،
    limit=5 # برگرداندن 5 نزدیکترین نقطه
)

بردارهای مشابه با شرایط فیلتر را جستجو کنید

از qdrant_client.models وارد کردن فیلتر، FieldCondition، محدوده

بازدید = client.search(
    collection_name="مجموعه_من"،
    query_vector=query_vector،
    query_filter=فیلتر(
        must=[ # این شرایط برای نتایج جستجو لازم است
            شرایط فیلد(
                key='rand_number'، # شرط بر اساس مقادیر فیلد 'rand_number'.
                محدوده=محدوده(
                    gte=3 # فقط آن دسته از نتایجی را انتخاب کنید که "rand_number" >= 3 باشد
                )
            )
        ]
    )
    limit=5 # برگرداندن 5 نزدیکترین نقطه
)

gRPC

برای فعال کردن (معمولاً، بسیار سریعتر) بارگذاری مجموعه با gRPC، از مقداردهی اولیه زیر استفاده کنید:

از واردات qdrant_client QdrantClient

client = QdrantClient(host="localhost", grpc_port=6334, prefer_grpc=True)

کارخواه ناهمگام

کاربرهای تولید خودکار خام از روش‌های همگام‌سازی پشتیبانی می‌کنند. به طور معمول، شما نیازی به استفاده مستقیم از آنها ندارید، اما اگر به عملکرد اضافی نیاز دارید، می توانید.

Async gRPC

نمونه ای از استفاده از سرویس گیرنده خام async gRPC:

از qdrant_client import QdrantClient, grpc

کلاینت = QdrantClient (prefer_grpc=True, timeout=3.0)

grpc_collections = client.async_grpc_collections

res = در انتظار grpc_collections.List(grpc.ListCollectionsRequest(), timeout=1.0)

توسعه

این پروژه از git hook برای اجرای قالب‌کننده‌های کد استفاده می‌کند.

pre-commit را با pip3 install pre-commit نصب کنید و قلاب‌ها را با pre-commit install راه‌اندازی کنید.

استراحت

اسناد آنلاین OpenAPI 3.0 اینجا موجود است. OpenAPI تولید کلاینت را برای تقریباً هر فریمورک یا زبان برنامه نویسی آسان می کند. همچنین می‌توانید تعاریف OpenAPI خام را دانلود کنید .

همچنین، موتور جستجوی Google و ChatGPT OpenAI.

ویژگی ها

فیلتر کردن و بارگذاری بار

بارهای JSON را می‌توان با بردارهایی در Qdrant مرتبط کرد که بسته به مقادیر بارگذاری، هم ذخیره‌سازی و هم فیلتر کردن را فراهم می‌کند. برخلاف Elastic Search post-filtering، ترکیب‌های مختلفی از شرایط باید، باید و must_not را فعال می‌کند و بازیابی همه بردارهای مرتبط را تضمین می‌کند.

Rich انواع داده

باربری برداری از طیف گسترده ای از انواع داده ها و شرایط پرس و جو، مانند تطبیق متن، محدوده های عددی، مکان های جغرافیایی و موارد دیگر پشتیبانی می کند. این شرایط فیلتر به شما این امکان را می دهد که منطق تجاری منحصر به فردی را در کنار تطبیق شباهت ایجاد کنید.

برنامه ریزی پرس و جو و شاخص های بارگذاری بار

برای بهینه سازی اجرای پرس و جو، برنامه ریز پرس و جو از اطلاعات بارگیری ذخیره شده در حافظه پنهان استفاده می کند. برای مثال، فضاهای جستجوی کوچک‌تر که توسط فیلترها محدود شده‌اند، ممکن است از نیروی بی‌رحمانه کامل بر یک فهرست بهره ببرند.

SIMD شتاب سخت افزار

Qdrant با استفاده از معماری‌های مدرن CPU x86-x64، عملکرد جستجوی بالاتری را در سخت‌افزار مدرن ارائه می‌دهد.

نوشتن -پیش ثبت نام

Qdrant با تأیید به‌روزرسانی‌ها، حتی در زمان قطع برق، از ماندگاری داده‌ها پشتیبانی می‌کند. گزارش به روز رسانی همه عملیات را ثبت می کند و امکان بازسازی آسان آخرین وضعیت پایگاه داده را فراهم می کند.

استقرار توزیع شده

از تاریخ نسخه 8.0، Qdrant از استقرار توزیع شده پشتیبانی می کند. چندین ماشین Qdrant یک خوشه برای مقیاس بندی افقی تشکیل می دهند که از طریق پروتکل Raft هماهنگ شده است..

مستقل

Qdrant مستقل از پایگاه‌های داده خارجی یا کنترل‌کننده‌های ارکستراسیون عمل می‌کند، که پیکربندی را ساده می‌کند.

این مقاله به شما کمک می کند تا در مورد Qdrant بیاموزید. ما اطمینان داریم که برای شما مفید بوده است. لطفاً نظرات و انتقادات خود را در بخش نظرات زیر به اشتراک بگذارید.

به این نوشته امتیاز بدهید!

افراد نیوز

افراد نیوز

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  • ×