Qdrant: создать коллекцию с заданной метрикой на Python

Реализуйте создание коллекции по параметрам задания. Учебная проверка использует mock клиента: важно правильно собрать конфигурацию и передать выбранную метрику расстояния.

Напишите код и проверьте решение. Продолжить тему можно в курсе Vector DB & RAG Developer.

Задание — создание коллекции

Напишите функцию create_articles_collection(client, collection_name, vector_size, distance_name), которая создаёт коллекцию в Qdrant с заданными параметрами и возвращает True.

Теория

Коллекция в Qdrant создаётся методом client.create_collection(). При создании обязательно задаются: vectors_config — объект models.VectorParams(size=..., distance=...), где distance берётся из класса models.Distance: COSINE, DOT, EUCLID.

Пример

result = create_articles_collection(client, "news", 128, "dot")
# Коллекция "news" создана с size=128, distance=Dot
# result == True

Особые случаи

Аргумент distance_name — строка в нижнем регистре: "cosine", "dot" или "euclid". Внутри функции нужно сопоставить её с атрибутом models.Distance.

Примечание

  • Важно: библиотека qdrant_client в этом задании — имитация (mock), а не настоящий Qdrant.
  • Замокированы: qdrant_client.QdrantClient, qdrant_client.models (и вложенные: VectorParams, Distance, PointStruct, Filter, FieldCondition, MatchValue, Range, PointIdsList, FilterSelector).
  • Если импортировать что-то незамокированное — вы увидите ImportError с подсказкой.
  • Аргумент client — уже созданный объект клиента, передаётся автоматически.
  • Функцию вызывать не нужно — это делается автоматически.

Пример

РешениеPython

Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.

Отправьте решение, чтобы увидеть результаты тестов.

Связанные задачи