Przejdź do treści
Biblioteka skilli
Dane i analityka · Integracja z narzędziem

using-weaviate

/using-weaviate

Opisuje bazę wektorową Weaviate do wyszukiwania semantycznego, zapytań hybrydowych, przechowywania embeddingów, wyszukiwania podobieństwa, potoków RAG i wyszukiwania multimodalnego.

Repozytorium
ensemble ↗
Licencja
MIT
Ostatnia zmiana repozytorium
13.09.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
6
Przestarzałość

Brak sygnałów. Repozytorium zmienione 13.09.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Opisuje bazę wektorową Weaviate do wyszukiwania semantycznego, zapytań hybrydowych, przechowywania embeddingów, wyszukiwania podobieństwa, potoków RAG i wyszukiwania multimodalnego.

Oryginalny opis (EN)

Weaviate vector database for semantic search, hybrid queries, and AI-native applications. Use for embeddings storage, similarity search, RAG pipelines, and multi-modal retrieval.

Jak działa

  1. Overview
  2. Table of Contents
  3. Core Concepts
  4. Quick Start
  5. CLI Decision Tree
  6. Collection Schema
  7. Data Operations
  8. Search Operations
  9. Generative Search (RAG)
  10. Multi-Tenancy
Sekcje z nagłówków SKILL.md, w oryginale · 489 linii, 1 252 słów
Podgląd SKILL.md
---
name: using-weaviate
description: >-
  Weaviate vector database for semantic search, hybrid queries, and AI-native
  applications. Use for embeddings storage, similarity search, RAG pipelines,
  and multi-modal retrieval.
---

# Weaviate Vector Database Skill

**Version**: 1.0.0 | **Target**: <500 lines | **Purpose**: Fast reference for Weaviate operations

---

## Overview

**What is Weaviate**: Open-source vector database for AI-native applications combining vector search with structured filtering and keyword search.

**When to Use This Skill**:
- Storing and querying vector embeddings
- Implementing semantic/similarity search
- Building RAG (Retrieval-Augmented Generation) pipelines
- Hybrid search (vector + keyword)
- Multi-tenant vector applications

**Auto-Detection Triggers**:
- `weaviate-client` in `requirements.txt` or `pyproject.toml`
- `weaviate-client` or `weaviate-ts-client` in `package.json`
- `WEAVIATE_URL`, `WEAVIATE_API_KEY`, or `WCD_URL` environment variables
- `docker-compose.yml` with `semitechnologies/weaviate` image

**Progressive Disclosure**:
- **This file (SKILL.md)**: Quick reference for immediate use
- **REFERENCE.md**: Comprehensive patterns, modules, and advanced configuration

---

## Table of Contents

1. [Core Concepts](#core-concepts)
2. [Quick Start](#quick-start)
3. [CLI Decision Tree](#cli-decision-tree)
4. [Collection Schema](#collection-schema)
5. [Data Operations](#data-operations)
6. [Search Operations](#search-operations)
7. [Generative Search (RAG)](#generative-search-rag)
8. [Multi-Tenancy](#multi-tenancy)
9. [Docker Setup](#docker-setup)
10. [Error Handling](#error-handling)
11. [Best Practices](#best-practices)
12. [Quick Reference Card](#quick-reference-card)
13. [Agent Integration](#agent-integration)

---

## Core Concepts

| Concept | Description |
|---------|-------------|
| **Collection** | Schema definition for a data type (formerly "Class") |
| **Object** | Individual data item with properties and vector |
| **Vector** | Numerical representation of data for similarity search |
| **Module** | Plugin for vectorization, generative AI, or reranking |
| **Tenant** | Isolated data partition for multi-tenant applications |

---

## Quick Start

### Python Setup

```python
import weaviate
from weaviate.classes.init import Auth

# Connect to Weaviate Cloud (recommended: use context manager)
with weaviate.connect_to_weaviate_cloud(
    cluster_url="https://your-cluster.weaviate.network",
    auth_credentials=Auth.api_key("your-wcd-api-key"),
    headers={"X-OpenAI-Api-Key": "your-openai-key"}
) as client:
    print(client.is_ready())  # True

# Or connect to local instance
client = weaviate.connect_to_local()
```

### TypeScript Setup

```typescript
import weaviate, { WeaviateClient } from 'weaviate-client';

const client: WeaviateClient = await weaviate.connectToWeaviateCloud(
  'https://your-cluster.weaviate.network',
  { authCredentials: new weaviate.ApiKey('your-wcd-api-key') }
);
await client.close();
```

### Environment Variables

```bash
export WEAVIATE_URL="https://your-cluster.weaviate.network"  # or http://localhost:8080
export WEAVIATE_API_KEY="your-wcd-api-key"
export OPENAI_API_KEY="sk-..."
```

---

## CLI Decision Tree

```
User wants to...
├── Connect to Weaviate
│   ├── Cloud (WCD) ─────────► weaviate.connect_to_weaviate_cloud()
│   ├── Local Docker ────────► weaviate.connect_to_local()
│   └── Custom URL ──────────► weaviate.connect_to_custom()
│
├── Create collection
│   ├── With auto-vectorization ► Configure.Vectorizer.text2vec_openai()
│   └── Bring own vectors ──────► Configure.Vectorizer.none()
│
├── Insert data
│   ├── Single object ──────► collection.data.insert()
│   ├── Bulk import ────────► collection.batch.dynamic()
│   └── With custom vector ─► DataObject(properties=..., vector=...)
│
├── Search data
│   ├── Semantic search ────► query.near_text() or query.near_vector()
│   ├── Keyword search ─────► query.bm25()
│   ├── Hybrid search ──────► query.hybrid()
│   └── With filters ───────► filters=Filter.by_property()
│
├── RAG / Generative
│   ├── Single prompt ──────► generate.near_text(single_prompt=...)
│   └── Grouped task ───────► generate.near_text(grouped_task=...)
│
└── Multi-tenancy
    ├── Create tenant ──────► collection.tenants.create()
    └── Query tenant ───────► collection.with_tenant("name")
```

---

## Collection Schema

### Create with Vectorizer

```python
from weaviate.classes.config import Configure, Property, DataType

client.collections.create(
    name="Article",
    vectorizer_config=Configure.Vectorizer.text2vec_openai(
        model="text-embedding-3-small"
    ),
    properties=[
        Property(name="title", data_type=DataType.TEXT),
        Property(name="content", data_type=DataType.TEXT),
        Property(name="category", data_type=DataType.TEXT),
        Property(name="view_count", data_type=DataType.INT)
    ]
)
```

### Property Data Types

| Type | Python | Description |
|------|--------|-------------|
| `TEXT` | str | Tokenized text, searchable |
| `INT` | int | Integer numbers |
| `NUMBER` | float | Floating point |
| `BOOLEAN` | bool | True/False |
| `DATE` | datetime | ISO 8601 date |
| `OBJECT` | dict | Nested object |

> **See REFERENCE.md**: Full data types, vectorizer modules, index configuration

---

## Data Operations

### Insert Single Object

```python
articles = client.collections.get("Article")

uuid = articles.data.insert(
    properties={
        "title": "Introduction to Vector Databases",
        "content": "Vector databases store embeddings...",
        "category": "Technology"
    }
)
```

### Batch Insert (Recommended for Bulk)

```python
articles = client.collections.get("Article")

with articles.batch.dynamic() as batch:
    for item in data:
        batch.add_object(properties=item)

    # Check errors INSIDE context manager
    if batch.number_errors > 0:
        for obj in batch.failed_objects[:5]:
            print(f"Error: {obj.message}")
```

### Update and Delete

```python
# Update properties
articles.data.update(uuid="...", properties={"view_count": 2000})

# Delete by UUID
articles.data.delete_by_id("12345678-...")

# Delete by filter
from weaviate.classes.query import Filter
articles.data.delete_many(
    where=Filter.by_property("category").equal("Outdated")
)
```

---

## Search Operations

### Vector Search (Semantic)

```python
from weaviate.classes.query import MetadataQuery

response = articles.query.near_text(
    query="machine learning algorithms",
    limit=5,
    return_metadata=MetadataQuery(distance=True)
)

for obj in response.objects:
    print(f"{obj.properties['title']} (distance: {obj.metadata.distance})")
```

### Hybrid Search (Vector + Keyword)

```python
response = articles.query.hybrid(
    query="neural network optimization",
    alpha=0.5,  # 0=keyword only, 1=vector only
    limit=10
)
```

### Filtered Search

```python
from weaviate.classes.query import Filter

response = articles.query.near_text(
    query="artificial intelligence",
    filters=(
        Filter.by_property("category").equal("Technology") &
        Filter.by_property("view_count").greater_than(1000)
    ),
    limit=10
)
```

### Filter Operators

| Operator | Usage |
|----------|-------|
| `equal` | `.equal(value)` |
| `not_equal` | `.not_equal(value)` |
| `greater_than` | `.greater_than(value)` |
| `less_than` | `.less_than(value)` |
| `like` | `.like("pattern*")` |
| `contains_any` | `.contains_any([...])` |

> **See REFERENCE.md**: Aggregations, reranking, advanced filter patterns

---

## Generative Search (RAG)

### Configure and Query

```python
from weaviate.classes.config import Configure

# Create with generative module
client.collections.create(
    name="KnowledgeBase",
    vectorizer_config=Configure.Vectorizer.text2vec_openai(),
    generative_config=Configure.Generative.openai(model="gpt-4o"),
    properties=[...]
)

# Single object generation
response = kb.generate.near_text(
    query="quantum computing",
    single_prompt="Summarize: {content}",
    limit=1
)
print(response.objects[0].generated)

# Grouped generation (RAG)
response = kb.generate.near_text(
    query="best practices",
    grouped_task="Based on these, provide 5 recommendations:",
    limit=5
)
print(response.generated)
```

> **See REFERENCE.md**: All generative modules, reranking configuration

---

## Multi-Tenancy

### Enable and Use

```python
from weaviate.classes.config import Configure
from weaviate.classes.tenants import Tenant

# Create multi-tenant collection
client.collections.create(
    name="CustomerData",
    multi_tenancy_config=Configure.multi_tenancy(enabled=True),
    vectorizer_config=Configure.Vectorizer.text2vec_openai(),
    properties=[...]
)

# Create tenants
collection = client.collections.get("CustomerData")
collection.tenants.create([
    Tenant(name="customer_123"),
    Tenant(name="customer_456")
])

# Query specific tenant
tenant_data = collection.with_tenant("customer_123")
tenant_data.data.insert(properties={"name": "Item 1"})
response = tenant_data.query.near_text(query="search", limit=10)
```

> **See REFERENCE.md**: Tenant management, activity status, offloading

---

## Docker Setup

### Basic docker-compose.yml

```yaml
version: '3.8'

services:
  weaviate:
    image: cr.weaviate.io/semitechnologies/weaviate:1.28.2
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "50051:50051"
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'text2vec-openai'
      ENABLE_MODULES: 'text2vec-openai,generative-openai'
      OPENAI_APIKEY: ${OPENAI_API_KEY}
    volumes:
      - weaviate_data:/var/lib/weaviate

volumes:
  weaviate_data:
```

```bash
# Start
docker-compose up -d

# Check status
curl http://localhost:8080/v1/.well-known/ready

# View logs
docker-compose logs -f weaviate
```

> **See REFERENCE.md**: Production configuration, authentication, multiple modules

---

## Error Handling

### Common Errors

| Error | Cause | Solution |
|-------|-------|----------|
| `ConnectionError` | Weaviate not reachable | Check URL, Docker running |
| `AuthenticationError` | Invalid API key | Verify `WEAVIATE_API_KEY` |
| `UnexpectedStatusCodeError 422` | Schema validation | Check property types |
| `ObjectAlreadyExistsError` | Duplicate UUID | Use update or new UUID |

### Error Pattern

```python
from weaviate.exceptions import (
    WeaviateConnectionError,
    UnexpectedStatusCodeError,
    ObjectAlreadyExistsException
)

try:
    uuid = collection.data.insert(properties=data)
except ObjectAlreadyExistsException:
    logging.warning("Object exists, updating instead")
except UnexpectedStatusCodeError as e:
    if e.status_code == 429:
        time.sleep(5)  # Rate limited
    raise
```

> **See REFERENCE.md**: Comprehensive error handling, retry patterns

---

## Best Practices

1. **Use context managers** for automatic cleanup
2. **Batch for bulk operations** (10-100x faster)
3. **Filter before vector search** to reduce computation
4. **Use multi-tenancy** for customer isolation
5. **Tune hybrid alpha**: 0.5 start, lower for technical terms

### Anti-Patterns to Avoid

- Blocking sync calls in async code
- Ignoring batch errors (check inside context manager)
- Over-fetching properties (specify only needed ones)
- Individual inserts for bulk data

> **See REFERENCE.md**: Index optimization, compression, production readiness checklist

---

## Quick Reference Card

```python
# Connect
client = weaviate.connect_to_local()
client = weaviate.connect_to_weaviate_cloud(url, auth_credentials=Auth.api_key(key))

# Collection
client.collections.create(name="...", vectorizer_config=..., properties=[...])
collection = client.collections.get("...")

# Insert
collection.data.insert(properties={...})
with collection.batch.dynamic() as batch: batch.add_object(properties={...})

# Search
collection.query.near_text(query="...", limit=10)
collection.query.hybrid(query="...", alpha=0.5, limit=10)

# RAG
collection.generate.near_text(query="...", single_prompt="...", limit=1)

# Multi-tenant
collection.with_tenant("tenant_name").query.near_text(...)
```

---

## Agent Integration

| Agent | Use Case |
|-------|----------|
| `backend-developer` | Vector search, RAG pipelines |
| `deep-debugger` | Query performance, index optimization |
| `infrastructure-developer` | Docker/Kubernetes deployment |

**Handoff to Deep-Debugger**: Slow queries, index issues, batch failures. Provide query patterns, schema, errors.

---

## See Also

- [REFERENCE.md](REFERENCE.md) - Comprehensive API, all modules, advanced patterns
- [Weaviate Docs](https://weaviate.io/developers/weaviate)
Pliki w paczce (2)
  • REFERENCE.md 19 KB
  • SKILL.md 13 KB

Wersje

W bazie nie ma innych skilli o nazwie using-weaviate.

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki 03c200bb4929 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100qdrant
    Integruje bazę wektorową Qdrant z LangChain4j w aplikacjach Java: przechowywanie embeddingów, wyszukiwanie podobieństwa i zarządzanie wektorami dla RAG, wyszukiwania semantycznego i rekomendacji.
  • 100vector-databases
    Integruje bazy wektorowe Pinecone, Weaviate, Qdrant, ChromaDB i pgvector do embeddingów i wyszukiwania podobieństwa: indeksy, filtrowanie metadanych, wyszukiwanie hybrydowe i optymalizacja produkcyjna.
  • 100weaviate
    Prowadzi pracę z bazą wektorową Weaviate: uruchomienie w Dockerze, kolekcje z vectorizerem, import wsadowy, zapytania near-text, hybrydowe i filtrowane, RAG z modułem generatywnym i kopie zapasowe.
  • 90vector-database-engineer
    Dostarcza wzorce baz wektorowych i wyszukiwania semantycznego dla Pinecone, Weaviate, Qdrant, Milvus i pgvector w systemach RAG i rekomendacji.
  • 100weaviate
    Wyszukuje i zarządza kolekcjami w bazie wektorowej Weaviate: wyszukiwanie semantyczne, hybrydowe, pytania z cytatami i masowe importy.
  • 90vector-database-engineer
    Projektuje przechowywanie wektorów, indeksowanie i semantyczne wyszukiwanie w Pinecone, Weaviate, Qdrant, Milvus lub pgvector dla RAG, wyszukiwania podobieństwa i rekomendacji.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.