
Perpustakaan Klien Python untuk mesin pencari qdrant vector.
Perpustakaan Klien dan SDK untuk Mesin Pencari Vektor Qdrant.
Perpustakaan berisi definisi jenis untuk semua API Qdrant dan memungkinkan untuk membuat permintaan sinkronisasi dan async.
Klien memungkinkan panggilan untuk semua metode API Qdrant secara langsung. Ini juga menyediakan beberapa metode pembantu tambahan untuk operasi yang sering diperlukan, misalnya pengunggahan koleksi awal.
Lihat QuickStart untuk detail lebih lanjut!
Dokumentasi API Klien Python tersedia di Python-client.qdrant.tech
pip install qdrant-client

Klien Python memungkinkan Anda menjalankan kode yang sama dalam mode lokal tanpa menjalankan server Qdrant.
Cukup inisialisasi klien seperti ini:
from qdrant_client import QdrantClient
client = QdrantClient ( ":memory:" )
# or
client = QdrantClient ( path = "path/to/db" ) # Persists changes to diskMode lokal berguna untuk pengembangan, pembuatan prototipe dan pengujian.
pip install qdrant-client[fastembed]
Fastembed adalah perpustakaan untuk membuat embeddings vektor cepat di CPU. Ini didasarkan pada runtime ONNX dan memungkinkan untuk menjalankan inferensi pada CPU dengan kinerja seperti GPU.
Klien Qdrant dapat menggunakan fastembed untuk membuat embeddings dan mengunggahnya ke Qdrant. Ini memungkinkan untuk menyederhanakan API dan membuatnya lebih intuitif.
from qdrant_client import QdrantClient
# Initialize the client
client = QdrantClient ( ":memory:" ) # or QdrantClient(path="path/to/db")
# Prepare your documents, metadata, and IDs
docs = [ "Qdrant has Langchain integrations" , "Qdrant also has Llama Index integrations" ]
metadata = [
{ "source" : "Langchain-docs" },
{ "source" : "Linkedin-docs" },
]
ids = [ 42 , 2 ]
# Use the new add method
client . add (
collection_name = "demo_collection" ,
documents = docs ,
metadata = metadata ,
ids = ids
)
search_result = client . query (
collection_name = "demo_collection" ,
query_text = "This is a query document"
)
print ( search_result )Fastembed juga dapat memanfaatkan GPU untuk embeddings yang lebih cepat. Untuk mengaktifkan dukungan GPU, instal
pip install ' qdrant-client[fastembed-gpu] ' from qdrant_client import QdrantClient
# Initialize the client
client = QdrantClient ( ":memory:" ) # or QdrantClient(path="path/to/db")
client . set_model ( client . DEFAULT_EMBEDDING_MODEL , providers = [ "CUDAExecutionProvider" , "CPUExecutionProvider" ])Catatan:
fastembed-gpudanfastembedsaling eksklusif. Anda hanya dapat menginstal salah satunya.Jika Anda sebelumnya memasang
fastembed, Anda mungkin perlu memulai dari lingkungan yang baru untuk memasangfastembed-gpu.
Untuk terhubung ke server Qdrant, cukup tentukan host dan port:
from qdrant_client import QdrantClient
client = QdrantClient ( host = "localhost" , port = 6333 )
# or
client = QdrantClient ( url = "http://localhost:6333" )Anda dapat menjalankan Qdrant Server secara lokal dengan Docker:
docker run -p 6333:6333 qdrant/qdrant:latestLihat lebih banyak opsi peluncuran di Repositori Qdrant.
Anda dapat mendaftar dan menggunakan qdrant cloud untuk mendapatkan akun tingkat gratis dengan RAM 1GB.
Setelah Anda memiliki kunci cluster dan API Anda, Anda dapat menghubungkannya seperti ini:
from qdrant_client import QdrantClient
qdrant_client = QdrantClient (
url = "https://xxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxxx.us-east.aws.cloud.qdrant.io:6333" ,
api_key = "<your-api-key>" ,
)Buat koleksi baru
from qdrant_client . models import Distance , VectorParams
client . create_collection (
collection_name = "my_collection" ,
vectors_config = VectorParams ( size = 100 , distance = Distance . COSINE ),
)Masukkan vektor ke dalam koleksi
import numpy as np
from qdrant_client . models import PointStruct
vectors = np . random . rand ( 100 , 100 )
# NOTE: consider splitting the data into chunks to avoid hitting the server's payload size limit
# or use `upload_collection` or `upload_points` methods which handle this for you
# WARNING: uploading points one-by-one is not recommended due to requests overhead
client . upsert (
collection_name = "my_collection" ,
points = [
PointStruct (
id = idx ,
vector = vector . tolist (),
payload = { "color" : "red" , "rand_number" : idx % 10 }
)
for idx , vector in enumerate ( vectors )
]
)Cari vektor serupa
query_vector = np . random . rand ( 100 )
hits = client . search (
collection_name = "my_collection" ,
query_vector = query_vector ,
limit = 5 # Return 5 closest points
)Cari vektor serupa dengan kondisi penyaringan
from qdrant_client . models import Filter , FieldCondition , Range
hits = client . search (
collection_name = "my_collection" ,
query_vector = query_vector ,
query_filter = Filter (
must = [ # These conditions are required for search results
FieldCondition (
key = 'rand_number' , # Condition based on values of `rand_number` field.
range = Range (
gte = 3 # Select only those results where `rand_number` >= 3
)
)
]
),
limit = 5 # Return 5 closest points
)Lihat lebih banyak contoh dalam dokumentasi kami!
Untuk mengaktifkan (biasanya, lebih cepat) mengunggah koleksi dengan GRPC, gunakan inisialisasi berikut:
from qdrant_client import QdrantClient
client = QdrantClient ( host = "localhost" , grpc_port = 6334 , prefer_grpc = True )Mulai dari versi 1.6.1, semua metode klien Python tersedia dalam versi async.
Untuk menggunakannya, cukup impor AsyncQdrantClient alih -alih QdrantClient :
from qdrant_client import AsyncQdrantClient , models
import numpy as np
import asyncio
async def main ():
# Your async code using QdrantClient might be put here
client = AsyncQdrantClient ( url = "http://localhost:6333" )
await client . create_collection (
collection_name = "my_collection" ,
vectors_config = models . VectorParams ( size = 10 , distance = models . Distance . COSINE ),
)
await client . upsert (
collection_name = "my_collection" ,
points = [
models . PointStruct (
id = i ,
vector = np . random . rand ( 10 ). tolist (),
)
for i in range ( 100 )
],
)
res = await client . search (
collection_name = "my_collection" ,
query_vector = np . random . rand ( 10 ). tolist (), # type: ignore
limit = 10 ,
)
print ( res )
asyncio . run ( main ())Keduanya, GRPC dan API REST didukung dalam mode async. Lebih banyak contoh dapat ditemukan di sini.
Proyek ini menggunakan kait git untuk menjalankan formatter kode.
Pasang pre-commit dengan pip3 install pre-commit dan atur kait dengan pre-commit install .
Pra-berkomitmen membutuhkan python> = 3.8