opencode-skills-collection 3.1.10 → 3.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +8 -1
- package/bundled-skills/browser-testing-with-devtools/SKILL.md +334 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/sources/sources.md +4 -0
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/drizzle-migration-conflict/SKILL.md +179 -0
- package/bundled-skills/drizzle-migration-conflict/references/ci-policy.md +87 -0
- package/bundled-skills/drizzle-migration-conflict/references/conflict-resolution.md +163 -0
- package/bundled-skills/drizzle-migration-conflict/references/report-template.md +69 -0
- package/bundled-skills/drizzle-migration-conflict/references/sources.md +51 -0
- package/bundled-skills/drizzle-migration-conflict/scripts/check_drizzle_migrations.py +721 -0
- package/bundled-skills/frontend-lighthouse/SKILL.md +348 -0
- package/bundled-skills/pre-release-review/SKILL.md +198 -0
- package/bundled-skills/pre-release-review/references/checklist.md +104 -0
- package/bundled-skills/pre-release-review/references/report-template.md +91 -0
- package/bundled-skills/re-create/SKILL.md +251 -0
- package/bundled-skills/weaviate/SKILL.md +132 -0
- package/bundled-skills/weaviate/references/ask.md +36 -0
- package/bundled-skills/weaviate/references/create_collection.md +152 -0
- package/bundled-skills/weaviate/references/environment_requirements.md +34 -0
- package/bundled-skills/weaviate/references/example_data.md +24 -0
- package/bundled-skills/weaviate/references/explore_collection.md +50 -0
- package/bundled-skills/weaviate/references/fetch_filter.md +88 -0
- package/bundled-skills/weaviate/references/get_collection.md +32 -0
- package/bundled-skills/weaviate/references/hybrid_search.md +47 -0
- package/bundled-skills/weaviate/references/import_data.md +160 -0
- package/bundled-skills/weaviate/references/keyword_search.md +38 -0
- package/bundled-skills/weaviate/references/list_collections.md +31 -0
- package/bundled-skills/weaviate/references/query_search.md +38 -0
- package/bundled-skills/weaviate/references/semantic_search.md +46 -0
- package/bundled-skills/weaviate/scripts/ask.py +106 -0
- package/bundled-skills/weaviate/scripts/create_collection.py +359 -0
- package/bundled-skills/weaviate/scripts/example_data.py +945 -0
- package/bundled-skills/weaviate/scripts/explore_collection.py +295 -0
- package/bundled-skills/weaviate/scripts/fetch_filter.py +261 -0
- package/bundled-skills/weaviate/scripts/get_collection.py +122 -0
- package/bundled-skills/weaviate/scripts/hybrid_search.py +157 -0
- package/bundled-skills/weaviate/scripts/import.py +701 -0
- package/bundled-skills/weaviate/scripts/keyword_search.py +142 -0
- package/bundled-skills/weaviate/scripts/list_collections.py +77 -0
- package/bundled-skills/weaviate/scripts/query_search.py +135 -0
- package/bundled-skills/weaviate/scripts/semantic_search.py +139 -0
- package/bundled-skills/weaviate/scripts/weaviate_conn.py +231 -0
- package/bundled-skills/weaviate-cookbooks/SKILL.md +67 -0
- package/bundled-skills/weaviate-cookbooks/references/advanced_rag.md +274 -0
- package/bundled-skills/weaviate-cookbooks/references/agentic_rag.md +360 -0
- package/bundled-skills/weaviate-cookbooks/references/async_client.md +428 -0
- package/bundled-skills/weaviate-cookbooks/references/basic_agent.md +270 -0
- package/bundled-skills/weaviate-cookbooks/references/basic_rag.md +219 -0
- package/bundled-skills/weaviate-cookbooks/references/data_explorer.md +336 -0
- package/bundled-skills/weaviate-cookbooks/references/environment_requirements.md +78 -0
- package/bundled-skills/weaviate-cookbooks/references/frontend_interface.md +104 -0
- package/bundled-skills/weaviate-cookbooks/references/pdf_multimodal_rag.md +635 -0
- package/bundled-skills/weaviate-cookbooks/references/project_setup.md +75 -0
- package/bundled-skills/weaviate-cookbooks/references/query_agent_chatbot.md +163 -0
- package/package.json +1 -1
- package/skills_index.json +156 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Environment Requirements for Weaviate
|
|
2
|
+
|
|
3
|
+
Use this reference when building apps that connect to Weaviate and require external inference provider keys.
|
|
4
|
+
|
|
5
|
+
## Required Weaviate Auth
|
|
6
|
+
|
|
7
|
+
- `WEAVIATE_URL`
|
|
8
|
+
- `WEAVIATE_API_KEY`
|
|
9
|
+
|
|
10
|
+
## External Provider Env Vars and Headers
|
|
11
|
+
|
|
12
|
+
| Provider | Environment Variable(s) | Header(s) sent to Weaviate |
|
|
13
|
+
|----------|--------------------------|-----------------------------|
|
|
14
|
+
| Anthropic | `ANTHROPIC_API_KEY` | `X-Anthropic-Api-Key` |
|
|
15
|
+
| Anyscale | `ANYSCALE_API_KEY` | `X-Anyscale-Api-Key` |
|
|
16
|
+
| AWS | `AWS_ACCESS_KEY`, `AWS_SECRET_KEY` | `X-Aws-Access-Key`, `X-Aws-Secret-Key` |
|
|
17
|
+
| Cohere | `COHERE_API_KEY` | `X-Cohere-Api-Key` |
|
|
18
|
+
| Databricks | `DATABRICKS_TOKEN` | `X-Databricks-Token` |
|
|
19
|
+
| Friendli | `FRIENDLI_TOKEN` | `X-Friendli-Api-Key` |
|
|
20
|
+
| Google Vertex AI | `VERTEX_API_KEY` | `X-Goog-Vertex-Api-Key` |
|
|
21
|
+
| Google AI Studio | `STUDIO_API_KEY` | `X-Goog-Studio-Api-Key` |
|
|
22
|
+
| HuggingFace | `HUGGINGFACE_API_KEY` | `X-HuggingFace-Api-Key` |
|
|
23
|
+
| Jina AI | `JINAAI_API_KEY` | `X-JinaAI-Api-Key` |
|
|
24
|
+
| Mistral | `MISTRAL_API_KEY` | `X-Mistral-Api-Key` |
|
|
25
|
+
| NVIDIA | `NVIDIA_API_KEY` | `X-Nvidia-Api-Key` |
|
|
26
|
+
| OpenAI | `OPENAI_API_KEY` | `X-OpenAI-Api-Key` |
|
|
27
|
+
| Azure OpenAI | `AZURE_API_KEY` | `X-Azure-Api-Key` |
|
|
28
|
+
| Voyage AI | `VOYAGE_API_KEY` | `X-Voyage-Api-Key` |
|
|
29
|
+
| xAI | `XAI_API_KEY` | `X-Xai-Api-Key` |
|
|
30
|
+
|
|
31
|
+
## Usage Notes
|
|
32
|
+
|
|
33
|
+
- Set only the provider keys your collection configuration actually uses.
|
|
34
|
+
- If multiple providers are configured, include all corresponding headers.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Example Data
|
|
2
|
+
|
|
3
|
+
Add example data to a Weaviate collection for users without their own data or wanting a quick example. Downloads data from the huggingface hub.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
uv run scripts/example_data.py --domain "DOMAIN_NAME" [--vectorizer "..."] [--nrows X]
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Parameters
|
|
10
|
+
|
|
11
|
+
| Parameter | Flag | Required | Default | Description |
|
|
12
|
+
|-----------|------|----------|---------|-------------|
|
|
13
|
+
| `--domain` | `-d` | No | `academic` | Defines which dataset is being used. One of 'academic', 'finance', 'ecommerce', 'medical', or 'customer_support'. |
|
|
14
|
+
| `--vectorizer` | `-v` | No | `text2vec_weaviate` | Optional vectorizer (e.g., `text2vec_openai`, `text2vec_cohere`, `none`) |
|
|
15
|
+
| `--nrows` | `-n` | No | `None` | Optionally subset the data. If not supplied uses full dataset. |
|
|
16
|
+
|
|
17
|
+
**When to use:** Creating example data for immediate use of other skills, if no data is available or user requests some toy data.
|
|
18
|
+
|
|
19
|
+
**Domain Datasets:**
|
|
20
|
+
- `academic` is the `jamescalam/ai-arxiv2` dataset, contains a selection of chunked papers from Arxiv on the topic of AI/ML. Creates the `AI_Arxiv` collection in the Weaviate instance
|
|
21
|
+
- `finance` is the `AgamiAI/Indian-Income-Tax-Returns` dataset, fully synthetic Indian Income Tax Return forms. Creates the `Income_Tax_Returns` collection in the Weaviate instance
|
|
22
|
+
- `ecommerce` is the `pkghf/ecom-product-catalog` dataset, containing structured e-commerce product information including product details, pricing, categorization. Creates the `Product_Catalog` collection in the Weaviate instance
|
|
23
|
+
- `medical` is the `Amod/hair_medical_sit`, containing information about common hair related diseases. Creates the `Hair_Medical` collection in the Weaviate instance
|
|
24
|
+
- `customer_support` is the `Console-AI/IT-helpdesk-synthetic-tickets`, synthetic customer support tickets from IT. Creates the `IT_Support_Tickets` collection in the Weaviate instance
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Explore Collection
|
|
2
|
+
|
|
3
|
+
Get statistical insights, aggregation metrics, and sample data from a collection.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/explore_collection.py "CollectionName" [--limit 5] [--no-metrics] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `name` | — | Yes (positional) | — | Collection name |
|
|
16
|
+
| `--limit` | `-l` | No | `5` | Number of sample objects to show |
|
|
17
|
+
| `--no-metrics` | — | No | `false` | Skip calculating individual property metrics (faster) |
|
|
18
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
19
|
+
|
|
20
|
+
## Metrics by Data Type
|
|
21
|
+
|
|
22
|
+
The script calculates aggregation metrics based on property data types:
|
|
23
|
+
|
|
24
|
+
| Data Type | Metrics |
|
|
25
|
+
|-----------|---------|
|
|
26
|
+
| **Text** | count, top_occurrences (top 5 values with counts) |
|
|
27
|
+
| **Int / Number** | count, min, max, mean, median, mode, sum |
|
|
28
|
+
| **Boolean** | count, percentage_true, percentage_false, total_true, total_false |
|
|
29
|
+
| **Date** | count, min, max, median, mode |
|
|
30
|
+
|
|
31
|
+
Use `--no-metrics` to skip metric calculation for faster results when you only need sample objects.
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
|
|
35
|
+
- **Default**: Markdown-formatted report with total count, per-property metrics tables, and sample objects
|
|
36
|
+
- **JSON**: Structured metrics and sample data
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
Explore with default settings:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
uv run scripts/explore_collection.py "Articles"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
More samples, skip metrics:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
uv run scripts/explore_collection.py "Products" --limit 20 --no-metrics
|
|
50
|
+
```
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Fetch and Filter
|
|
2
|
+
|
|
3
|
+
Fetch objects from a collection by UUID, with filters, or as a random sample. Supports complex nested filter logic (AND, OR).
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/fetch_filter.py "CollectionName" [--id "UUID"] [--filters 'JSON'] [--limit 10] [--properties "prop1,prop2"] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `collection_name` | — | Yes (positional) | — | Collection name |
|
|
16
|
+
| `--id` | — | No | — | Fetch a specific object by UUID |
|
|
17
|
+
| `--filters` | `-f` | No | — | JSON string defining filters (see filter syntax below) |
|
|
18
|
+
| `--limit` | `-l` | No | `10` | Number of objects to fetch |
|
|
19
|
+
| `--properties` | `-p` | No | all | Comma-separated properties to include in output |
|
|
20
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
21
|
+
|
|
22
|
+
## Modes
|
|
23
|
+
|
|
24
|
+
1. **Fetch by UUID**: Use `--id` to retrieve a specific object
|
|
25
|
+
2. **Fetch with filters**: Use `--filters` to retrieve filtered subsets
|
|
26
|
+
3. **Fetch random sample**: Omit both `--id` and `--filters` for unfiltered results
|
|
27
|
+
|
|
28
|
+
## Filter Syntax
|
|
29
|
+
|
|
30
|
+
### Simple property filter
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{"property": "category", "operator": "equal", "value": "Science"}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Logical operators (AND / OR)
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{"operator": "and", "filters": [
|
|
40
|
+
{"property": "category", "operator": "equal", "value": "Science"},
|
|
41
|
+
{"property": "year", "operator": "greater_than", "value": 2020}
|
|
42
|
+
]}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### List of filters (implicit AND)
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
[
|
|
49
|
+
{"property": "category", "operator": "equal", "value": "Science"},
|
|
50
|
+
{"property": "year", "operator": "greater_than", "value": 2020}
|
|
51
|
+
]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Supported operators
|
|
55
|
+
|
|
56
|
+
`equal`, `not_equal`, `less_than`, `less_or_equal`, `greater_than`, `greater_or_equal`, `like`, `contains_any`, `contains_all`, `is_none`
|
|
57
|
+
|
|
58
|
+
## Output
|
|
59
|
+
|
|
60
|
+
- **Default**: Markdown table with object UUIDs and properties
|
|
61
|
+
- **JSON**: Array of objects with full metadata
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
Fetch by UUID:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uv run scripts/fetch_filter.py "Articles" --id "550e8400-e29b-41d4-a716-446655440000"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Filter by property:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
uv run scripts/fetch_filter.py "Products" --filters '{"property": "price", "operator": "less_than", "value": 50}'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Complex filter with AND/OR:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
uv run scripts/fetch_filter.py "Articles" --filters '{"operator": "or", "filters": [{"property": "category", "operator": "equal", "value": "Science"}, {"property": "category", "operator": "equal", "value": "Tech"}]}'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Select specific properties:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
uv run scripts/fetch_filter.py "Products" --properties "name,price" --limit 5
|
|
87
|
+
```
|
|
88
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Get Collection Details
|
|
2
|
+
|
|
3
|
+
Get detailed configuration of a specific collection including vectorizer, properties, replication, and multi-tenancy settings.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/get_collection.py --name "CollectionName" [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--name` | `-n` | Yes | — | Collection name |
|
|
16
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
17
|
+
|
|
18
|
+
## Output
|
|
19
|
+
|
|
20
|
+
- **Default**: Markdown-formatted collection details with property table
|
|
21
|
+
- **JSON**: Full collection configuration object
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
uv run scripts/get_collection.py --name "Articles"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uv run scripts/get_collection.py --name "Products" --json
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Hybrid Search
|
|
2
|
+
|
|
3
|
+
Combines vector similarity and keyword (BM25) matching for balanced search results on a single collection.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/hybrid_search.py --query "USER_QUERY" --collection "CollectionName" [--alpha 0.7] [--limit 10] [--properties "prop1,prop2"] [--target-vector "vector_name"] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--query` | `-q` | Yes | — | Search query text |
|
|
16
|
+
| `--collection` | `-c` | Yes | — | Collection name |
|
|
17
|
+
| `--alpha` | `-a` | No | `0.7` | Balance between vector (1.0) and keyword (0.0) |
|
|
18
|
+
| `--limit` | `-l` | No | `10` | Maximum number of results |
|
|
19
|
+
| `--properties` | `-p` | No | all | Comma-separated properties to search |
|
|
20
|
+
| `--target-vector` | `-t` | No | — | Target vector name for named vector collections |
|
|
21
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
|
|
25
|
+
- **Default**: Markdown table with object properties and score
|
|
26
|
+
- **JSON**: Array of objects with properties and search metadata
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
Basic hybrid search:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
uv run scripts/hybrid_search.py --query "climate change effects" --collection "Articles"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Keyword-heavy search (lower alpha):
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
uv run scripts/hybrid_search.py --query "product SKU-1234" --collection "Products" --alpha 0.3
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Search specific properties with named vector:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
uv run scripts/hybrid_search.py --query "renewable energy" --collection "Papers" --properties "title,abstract" --target-vector "title_vector"
|
|
46
|
+
```
|
|
47
|
+
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Import Data
|
|
2
|
+
|
|
3
|
+
Import one or more CSV, JSON, JSONL, or PDF files into a Weaviate collection with automatic type conversion and column mapping. Multiple files of the same format can be passed in a single invocation — all objects are appended to the same collection. PDF files are converted page-by-page to base64-encoded JPEG images; the collection is created automatically on first import and reused on subsequent runs.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# CSV/JSON/JSONL — collection must already exist
|
|
9
|
+
uv run scripts/import.py "data.csv" --collection "CollectionName" [--mapping '{}'] [--tenant "name"] [--batch-size 100] [--json]
|
|
10
|
+
|
|
11
|
+
# Multiple files of the same format
|
|
12
|
+
uv run scripts/import.py a.csv b.csv c.csv --collection "CollectionName"
|
|
13
|
+
|
|
14
|
+
# PDF — collection is created automatically on first run; appended to on subsequent runs
|
|
15
|
+
uv run scripts/import.py "document.pdf" --collection "CollectionName" [--image-field "doc_page"] [--batch-size 100] [--json]
|
|
16
|
+
|
|
17
|
+
# Multiple PDFs into the same collection
|
|
18
|
+
uv run scripts/import.py page1.pdf page2.pdf page3.pdf --collection "PDFDocuments"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Parameters
|
|
22
|
+
|
|
23
|
+
| Parameter | Flag | Required | Default | Description |
|
|
24
|
+
|-----------|------|----------|---------|-------------|
|
|
25
|
+
| `files` | — | Yes (positional, one or more) | — | One or more CSV, JSON, JSONL, or PDF files (all must be the same format) |
|
|
26
|
+
| `--collection` | `-c` | Yes | — | Target collection name (must already exist for CSV/JSON/JSONL; created automatically for PDF if absent, otherwise appended to) |
|
|
27
|
+
| `--mapping` | `-m` | No | — | JSON object mapping file columns/keys to collection properties (CSV/JSON/JSONL only) |
|
|
28
|
+
| `--tenant` | `-t` | No | — | Tenant name for multi-tenant collections (required if collection has multi-tenancy enabled) |
|
|
29
|
+
| `--batch-size` | `-b` | No | `100` | Number of objects per batch |
|
|
30
|
+
| `--image-field` | `-i` | No | `doc_page` | BLOB property name to store base64 page images (PDF imports only) |
|
|
31
|
+
| `--skip-fields` | — | No | — | Comma-separated field names to exclude from import (e.g. `vector`) |
|
|
32
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
33
|
+
|
|
34
|
+
## File Formats
|
|
35
|
+
|
|
36
|
+
### CSV
|
|
37
|
+
|
|
38
|
+
- First row must be a header — column names must match collection property names (case-sensitive)
|
|
39
|
+
- Delimiter and quoting auto-detected via `csv.Sniffer`
|
|
40
|
+
- Files without a header row are rejected with a clear error
|
|
41
|
+
|
|
42
|
+
### JSON
|
|
43
|
+
|
|
44
|
+
- Must be an array of objects: `[{"prop1": "value1"}, {"prop2": "value2"}]`
|
|
45
|
+
- Keys must match collection property names
|
|
46
|
+
- The entire file is loaded into memory — for large datasets, always prefer JSONL
|
|
47
|
+
|
|
48
|
+
### JSONL
|
|
49
|
+
|
|
50
|
+
- One JSON object per line
|
|
51
|
+
- Each object's keys must match collection property names
|
|
52
|
+
- Streamed line-by-line — preferred format for large datasets
|
|
53
|
+
|
|
54
|
+
### PDF
|
|
55
|
+
|
|
56
|
+
- Each page is converted to a JPEG image and base64-encoded
|
|
57
|
+
- Each page becomes one Weaviate object with these properties:
|
|
58
|
+
- `doc_page` (or `--image-field` value): base64-encoded JPEG image of the page
|
|
59
|
+
- `page_number`: 1-indexed page number (int)
|
|
60
|
+
- `file_name`: PDF filename without extension (text)
|
|
61
|
+
- The collection is **created automatically** with `multi2vec_weaviate` (`ModernVBERT/colmodernvbert` + MUVERA encoding) if it does not already exist. If the collection already exists, pages are appended to it — allowing multiple PDFs to be loaded into the same collection across multiple runs.
|
|
62
|
+
- Requires `poppler` to be installed on the system (for Mac, simply run `brew install poppler`)
|
|
63
|
+
|
|
64
|
+
## Type Conversion
|
|
65
|
+
|
|
66
|
+
For CSV, JSON, and JSONL imports the script uses the collection schema to guide conversion. Non-string values (JSON/JSONL native types) pass through unchanged. String values are cast based on the declared property type:
|
|
67
|
+
|
|
68
|
+
| Schema type | Conversion |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `int` / `int[]` | `int(value)` — falls back to string if it fails |
|
|
71
|
+
| `number` / `number[]` | `float(value)` — falls back to string if it fails |
|
|
72
|
+
| `boolean` / `boolean[]` | `"true"`/`"false"` → bool — falls back to string |
|
|
73
|
+
| `date` / `date[]` | `"YYYY-MM-DD"` → `"YYYY-MM-DDT00:00:00Z"`, `"YYYY-MM-DD HH:MM:SS"` → RFC3339 with `Z` |
|
|
74
|
+
| `text[]`, `int[]`, `number[]`, `boolean[]`, `date[]`, `uuid[]`, `object`, `object[]`, `geoCoordinates`, `phoneNumber` | JSON/JSONL: native lists/dicts pass through unchanged. CSV: cell is parsed with `json.loads()` — falls back to string if it fails |
|
|
75
|
+
| `text`, `uuid` | kept as string |
|
|
76
|
+
| `blob` | kept as string — must already be base64-encoded in the source data |
|
|
77
|
+
| field not in schema | kept as string |
|
|
78
|
+
|
|
79
|
+
`None` and empty strings are always skipped.
|
|
80
|
+
|
|
81
|
+
## Reserved Fields
|
|
82
|
+
|
|
83
|
+
`id` and `_additional` are reserved by Weaviate and cannot be used as property names (even for nested properties). If your data contains these keys/columns the import will fail. Use `--skip-fields` to drop them or `--mapping` to rename them.
|
|
84
|
+
|
|
85
|
+
**IMPORTANT NOTE:** Renaming must **always** be preferred over dropping when the field contains meaningful data. e.g. renaming `id` to `object_id` or `product_id` (based on the data).
|
|
86
|
+
|
|
87
|
+
`--mapping` and `--skip-fields` support dot notation for nested object fields (e.g. `author.id`).
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Drop the top-level id field entirely
|
|
91
|
+
uv run scripts/import.py data.json --collection "Articles" --skip-fields "id"
|
|
92
|
+
|
|
93
|
+
# Rename top-level id to source_id
|
|
94
|
+
uv run scripts/import.py data.json --collection "Articles" --mapping '{"id": "source_id"}'
|
|
95
|
+
|
|
96
|
+
# Rename a nested id field inside an object property (e.g. author.id → author.author_id)
|
|
97
|
+
uv run scripts/import.py data.json --collection "Articles" --mapping '{"author.id": "author.author_id"}'
|
|
98
|
+
|
|
99
|
+
# Drop a nested id field
|
|
100
|
+
uv run scripts/import.py data.json --collection "Articles" --skip-fields "author.id"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Output
|
|
104
|
+
|
|
105
|
+
- **Default**: Import summary with total, imported, and failed counts (plus sample errors if any)
|
|
106
|
+
- **JSON**: Structured import stats
|
|
107
|
+
|
|
108
|
+
Returns exit code `1` if any imports fail.
|
|
109
|
+
|
|
110
|
+
## Examples
|
|
111
|
+
|
|
112
|
+
Import from CSV:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
uv run scripts/import.py data.csv --collection "Articles"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Import with column mapping:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
uv run scripts/import.py data.csv --collection "Articles" \
|
|
122
|
+
--mapping '{"title_col": "title", "body_col": "content"}'
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Import to multi-tenant collection:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
uv run scripts/import.py data.jsonl --collection "Workspace" --tenant "tenant1"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Import JSON with custom batch size:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
uv run scripts/import.py products.json --collection "Products" --batch-size 500
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Import a PDF (collection is created automatically on first run):
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
uv run scripts/import.py paper.pdf --collection "PDFDocuments"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Import multiple PDFs into the same collection:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
uv run scripts/import.py chapter1.pdf chapter2.pdf chapter3.pdf --collection "PDFDocuments"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Import a PDF with a custom image field name:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
uv run scripts/import.py paper.pdf --collection "PDFDocuments" --image-field "page_image"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Import multiple CSV files into the same collection:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
uv run scripts/import.py jan.csv feb.csv mar.csv --collection "Articles"
|
|
159
|
+
```
|
|
160
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Keyword Search
|
|
2
|
+
|
|
3
|
+
BM25 keyword matching search on a single collection.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/keyword_search.py --query "USER_QUERY" --collection "CollectionName" [--limit 10] [--properties "title^2,content"] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--query` | `-q` | Yes | — | Keyword search query |
|
|
16
|
+
| `--collection` | `-c` | Yes | — | Collection name |
|
|
17
|
+
| `--limit` | `-l` | No | `10` | Maximum number of results |
|
|
18
|
+
| `--properties` | `-p` | No | all | Properties to search with optional boost (e.g., `title^2,content`) |
|
|
19
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
20
|
+
|
|
21
|
+
## Output
|
|
22
|
+
|
|
23
|
+
- **Default**: Markdown table with object properties and BM25 scores
|
|
24
|
+
- **JSON**: Array of objects with properties and score metadata
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
Basic keyword search:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
uv run scripts/keyword_search.py --query "Python tutorial" --collection "Articles"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Search with property boosting:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
uv run scripts/keyword_search.py --query "authentication" --collection "Docs" --properties "title^2,body"
|
|
38
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# List Collections
|
|
2
|
+
|
|
3
|
+
Show all available Weaviate collections with their properties.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/list_collections.py [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
|
|
19
|
+
- **Default**: Markdown table with collection names, descriptions, and property lists
|
|
20
|
+
- **JSON**: Array of collection objects with full property details
|
|
21
|
+
|
|
22
|
+
## Examples
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uv run scripts/list_collections.py
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv run scripts/list_collections.py --json
|
|
30
|
+
```
|
|
31
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Query Agent - Search Mode
|
|
2
|
+
|
|
3
|
+
Retrieve raw objects using natural language queries across multiple collections via the Weaviate Query Agent.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/query_search.py --query "USER_QUERY" --collections "Collection1,Collection2" [--limit 10] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--query` | `-q` | Yes | — | Natural language search query |
|
|
16
|
+
| `--collections` | `-c` | Yes | — | Comma-separated collection names to search across |
|
|
17
|
+
| `--limit` | `-l` | No | `10` | Maximum number of results to return |
|
|
18
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
- **Default**: Markdown table with UUIDs, collection names, and all object properties (columns generated dynamically)
|
|
23
|
+
- **JSON**: Array of objects with `uuid`, `collection`, and `properties`
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
Search across collections:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uv run scripts/query_search.py --query "machine learning papers" --collections "Articles,Research" --limit 5
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
JSON output:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
uv run scripts/query_search.py --query "products under $50" --collections "Products" --json
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Semantic Search
|
|
2
|
+
|
|
3
|
+
Pure vector similarity search using embeddings on a single collection.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv run scripts/semantic_search.py --query "USER_QUERY" --collection "CollectionName" [--limit 10] [--distance 0.5] [--target-vector "vector_name"] [--json]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Flag | Required | Default | Description |
|
|
14
|
+
|-----------|------|----------|---------|-------------|
|
|
15
|
+
| `--query` | `-q` | Yes | — | Search query text |
|
|
16
|
+
| `--collection` | `-c` | Yes | — | Collection name |
|
|
17
|
+
| `--limit` | `-l` | No | `10` | Maximum number of results |
|
|
18
|
+
| `--distance` | `-d` | No | — | Maximum distance threshold (filters out less similar results) |
|
|
19
|
+
| `--target-vector` | `-t` | No | — | Target vector name for named vector collections |
|
|
20
|
+
| `--json` | — | No | `false` | Output in JSON format |
|
|
21
|
+
|
|
22
|
+
## Output
|
|
23
|
+
|
|
24
|
+
- **Default**: Markdown table with object properties and distance scores
|
|
25
|
+
- **JSON**: Array of objects with properties and distance metadata
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
Basic semantic search:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
uv run scripts/semantic_search.py --query "environmental impact of urbanization" --collection "Research"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
With distance threshold:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
uv run scripts/semantic_search.py --query "machine learning" --collection "Papers" --distance 0.3 --limit 5
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
With named vector:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
uv run scripts/semantic_search.py --query "abstract art" --collection "Artworks" --target-vector "description_vector"
|
|
45
|
+
```
|
|
46
|
+
|