К основному содержанию
скилл CX Codex

qdrant — скилл для Claude Code: что делает и как установить

Скилл даёт шаблоны интеграции векторной базы Qdrant в Java и Spring Boot через LangChain4j. Помогает настроить семантический поиск и хранилище эмбеддингов для RAG.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add giuseppe-trisciuoglio/developer-kit --skill qdrant -a claude-code
Открыть на GitHub

Что делает qdrant

Скилл содержит готовые примеры кода для Java-приложений: запуск Qdrant в Docker, подключение клиента через зависимость io.qdrant:client:1.15.0 в Maven или Gradle и создание коллекций с метрикой косинусного расстояния. Он описывает конфигурацию QdrantGrpcClient и бинов Spring Boot для связки с LangChain4j.

В коде заложены паттерны пакетной вставки точек PointStruct и фильтрованного поиска через SearchPoints. Для продакшена инструкция требует использовать gRPC-порт 6334. REST-порт 6333 оставлен только для отладки.

Главная ловушка при интеграции — несовпадение размерности векторов модели эмбеддингов и коллекции, из-за чего запись сразу падает с ошибкой. Скилл также напоминает о фильтрации найденного контента перед отправкой в LLM для защиты от инъекций.

Какие задачи решает

  • Развернуть локальный контейнер Qdrant через Docker для тестов
  • Настроить хранилище векторов QdrantEmbeddingStore в связке с LangChain4j
  • Собрать конфигурационный класс QdrantClient для Spring Boot
  • Реализовать фильтрованный поиск похожих документов по метаданным

Примеры запросов агенту

  • Настрой бин QdrantEmbeddingStore для Spring Boot с подключением по gRPC
  • Покажи пример пакетного создания точек PointStruct и их сохранения в Qdrant
  • Сделай контроллер для поиска похожих документов через AllMiniLmL6V2EmbeddingModel

Как установить qdrant

1Через Skills CLI (Vercel)

npx skills add giuseppe-trisciuoglio/developer-kit --skill qdrant -a claude-code

2Вручную: положить файлы

~/.claude/skills/qdrant/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/qdrant/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о qdrant

Как установить скилл qdrant в Claude Code?

Выполните команду npx skills add giuseppe-trisciuoglio/developer-kit --skill qdrant -a claude-code.

Что делает скилл qdrant?

Он предоставляет готовые шаблоны интеграции векторной базы Qdrant в Java и Spring Boot через LangChain4j, включая запуск в Docker, создание коллекций и фильтрованный поиск.

Какой порт использовать для подключения к Qdrant в продакшене?

Для рабочих нагрузок следует использовать gRPC-порт 6334. REST-порт 6333 предназначен только для отладки.

Исходный текст

SKILL.md · MIT
---
name: qdrant
description: Provides Qdrant vector database integration patterns with LangChain4j. Handles embedding storage, similarity search, and vector management for Java applications. Use when implementing vector-based retrieval for RAG systems, semantic search, or recommendation engines.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
---

# Qdrant Vector Database Integration

## Overview

Qdrant is an AI-native vector database for semantic search and similarity retrieval. This skill provides patterns for integrating Qdrant with Java applications, focusing on Spring Boot and LangChain4j integration.

## When to Use

- Semantic search or recommendation systems in Spring Boot applications
- RAG pipelines with Java and LangChain4j
- Vector database integration for AI/ML applications
- High-performance similarity search with filtered queries

## Instructions

### 1. Deploy Qdrant with Docker

```bash
docker run -p 6333:6333 -p 6334:6334 \
    -v "$(pwd)/qdrant_storage:/qdrant/storage:z" \
    qdrant/qdrant
```

Access: REST API at `http://localhost:6333`, gRPC at `http://localhost:6334`.

### 2. Add Dependencies

**Maven:**
```xml
<dependency>
    <groupId>io.qdrant</groupId>
    <artifactId>client</artifactId>
    <version>1.15.0</version>
</dependency>
```

**Gradle:**
```gradle
implementation 'io.qdrant:client:1.15.0'
```

### 3. Initialize Client

```java
QdrantClient client = new QdrantClient(
    QdrantGrpcClient.newBuilder("localhost").build());
```

For production with API key:
```java
QdrantClient client = new QdrantClient(
    QdrantGrpcClient.newBuilder("localhost", 6334, false)
        .withApiKey("YOUR_API_KEY")
        .build());
```

### 4. Create Collection

```java
client.createCollectionAsync("search-collection",
    VectorParams.newBuilder()
        .setDistance(Distance.Cosine)
        .setSize(384)
        .build()
).get();
```

**Validation:** Verify the collection was created by checking `client.getCollectionAsync("search-collection").get()`.

### 5. Upsert Vectors

```java
List<PointStruct> points = List.of(
    PointStruct.newBuilder()
        .setId(id(1))
        .setVectors(vectors(0.05f, 0.61f, 0.76f, 0.74f))
        .putAllPayload(Map.of("title", value("Spring Boot Documentation")))
        .build()
);
client.upsertAsync("search-collection", points).get();
```

**Validation:** Check that `client.upsertAsync(...).get()` completes without throwing.

### 6. Search Vectors

```java
List<ScoredPoint> results = client.queryAsync(
    QueryPoints.newBuilder()
        .setCollectionName("search-collection")
        .setLimit(5)
        .setQuery(nearest(0.2f, 0.1f, 0.9f, 0.7f))
        .build()
).get();
```

Filtered search:
```java
List<ScoredPoint> results = client.searchAsync(
    SearchPoints.newBuilder()
        .setCollectionName("search-collection")
        .addAllVector(List.of(0.62f, 0.12f, 0.53f, 0.12f))
        .setFilter(Filter.newBuilder()
            .addMust(range("category", Range.newBuilder().setEq("docs").build()))
            .build())
        .setLimit(5)
        .build()).get();
```

## LangChain4j Integration

For RAG pipelines, use LangChain4j's high-level abstractions:

```java
EmbeddingStore<TextSegment> embeddingStore = QdrantEmbeddingStore.builder()
    .collectionName("rag-collection")
    .host("localhost")
    .port(6334)
    .apiKey("YOUR_API_KEY")
    .build();
```

Spring Boot configuration with LangChain4j:
```java
@Bean
public EmbeddingStore<TextSegment> embeddingStore() {
    return QdrantEmbeddingStore.builder()
        .collectionName("rag-collection")
        .host(host)
        .port(port)
        .build();
}

@Bean
public EmbeddingModel embeddingModel() {
    return new AllMiniLmL6V2EmbeddingModel();
}
```

## Spring Boot Integration

Inject the client via configuration:

```java
@Configuration
public class QdrantConfig {
    @Value("${qdrant.host:localhost}")
    private String host;

    @Value("${qdrant.port:6334}")
    private int port;

    @Bean
    public QdrantClient qdrantClient() {
        return new QdrantClient(
            QdrantGrpcClient.newBuilder(host, port, false).build());
    }
}
```

## Examples

### REST Search Endpoint

```java
@RestController
@RequestMapping("/api/search")
public class SearchController {
    private final VectorSearchService searchService;

    public SearchController(VectorSearchService searchService) {
        this.searchService = searchService;
    }

    @GetMapping
    public List<ScoredPoint> search(@RequestParam String query) {
        List<Float> queryVector = embeddingModel.embed(query).content().vectorAsList();
        return searchService.search("documents", queryVector);
    }
}
```

## Best Practices

- **Distance metric**: Cosine for normalized text embeddings, Euclidean for non-normalized.
- **Batch upserts**: Use batch operations over individual point insertions.
- **Connection pooling**: Configure connection pooling for high-throughput production workloads.
- **Error handling**: Wrap async operations in try/catch for ExecutionException/InterruptedException.
- **API keys**: Store in environment variables or Spring config, never hardcode.

## Advanced Patterns

### Multi-tenant Storage

```java
public void upsertForTenant(String tenantId, List<PointStruct> points) {
    String collectionName = "tenant_" + tenantId + "_documents";
    client.upsertAsync(collectionName, points).get();
}
```

### Docker Compose for Production

```yaml
services:
  qdrant:
    image: qdrant/qdrant:v1.7.0
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - qdrant_storage:/qdrant/storage
```

## References

- [Qdrant API Reference](references/references.md) — Complete client API documentation
- [Complete Spring Boot Examples](references/examples.md) — Full application implementations
- [Qdrant Documentation](https://qdrant.tech/documentation/)
- [LangChain4j Documentation](https://langchain4j.dev/)

## Constraints and Warnings

- Vector dimensions must match the embedding model exactly; mismatched dimensions cause upsert errors.
- **Input validation**: Sanitize all document content before ingestion; untrusted payloads may contain prompt injection attacks.
- **Content filtering**: Apply content filtering on retrieved documents before passing them to the LLM.
- Large collections require proper indexing for acceptable search performance.
- Use gRPC API (port 6334) for production; REST API (port 6333) for debugging only.
- Collection recreation deletes all data; implement backup strategies for production environments.

© giuseppe-trisciuoglio · MIT · giuseppe-trisciuoglio/developer-kit

Похожие скиллы

Всё по теме «ИИ и ML» →
qdrant-scaling qdrant Скилл разбирает симптом кластера Qdrant и открывает нужный файл с рекомендациями: шардинг, QPS, хвостовая задержка, арендаторы. CX Codex +1 1 500установок qdrant-advisor qdrant Подтягивает официальные инструкции из skills.qdrant.tech для решения сбоев кластера, утечек памяти и замедления индексов Qdrant. CX Codex +1 682установок qdrant-deployment-options официальный github Помогает выбрать способ развертывания векторной базы Qdrant под конкретные требования к задержке сети, контролю данных и масштабированию. 61установок qdrant-clients-sdk официальный github Скилл подсказывает, как подключать Qdrant через официальные SDK и API. Пригодится для кода на Python, TypeScript, Rust, Go, .NET или Java. 61установок qdrant-vector-search Orchestra Research Скилл помогает агенту проектировать поиск по векторам в Qdrant для RAG и семантического поиска. Пригодится для фильтрации по метаданным и масштабирования. CX Codex +1 969установок rag-infrastructure devops-skills Скилл для сборки RAG-конвейера: загрузка документов, эмбеддинги, векторное хранилище, гибридный поиск и ответы LLM по найденному контексту. CX Codex +1 325установок

Из того же набора93

unit-test-application-events Паттерны юнит-тестов для событий Spring: проверка публикации через ApplicationEventPublisher и работа @EventListener без поднятия контекста. CX Codex +1 3 700установок unit-test-config-properties Скилл добавляет шаблоны модульного тестирования классов @ConfigurationProperties через ApplicationContextRunner в Spring Boot без запуска тяжёлого контекста. CX Codex +1 3 700установок unit-test-caching Паттерны юнит-тестов для аннотаций Spring Cache: проверка попаданий в кэш, вытеснения и ключей SpEL без поднятия полного контекста Spring. CX Codex +1 3 700установок langchain4j-ai-services-patterns Скилл показывает, как собирать декларативные AI Services на LangChain4j: интерфейсы, аннотации, память и вызов инструментов. CX Codex +1 3 700установок unit-test-mapper-converter Скилл для юнит-тестов MapStruct-мапперов и конвертеров: проверяет маппинг полей, null, вложенные объекты и обратное преобразование. CX Codex +1 3 700установок unit-test-exception-handler Паттерны юнит-тестов для @ExceptionHandler и @ControllerAdvice в Spring Boot: проверка кодов ответа, JSON и ошибок валидации по полям. CX Codex +1 3 700установок rag Скилл помогает развернуть пайплайн Retrieval-Augmented Generation: от нарезки документов и расчёта эмбеддингов до поиска в векторной базе и передачи контекста модели. CX Codex +1 3 700установок unit-test-scheduled-async Скилл с готовыми шаблонами юнит-тестов для Spring-методов @Scheduled и @Async: JUnit 5, CompletableFuture, Awaitility, Mockito. CX Codex +1 3 700установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой