weaviate
Weaviateは、ベクトル化機能を内蔵したオープンソースのベクトルデータベースで、スキーマ定義やAPI、ハイブリッド検索、Dockerを使った自己ホスト型デプロイなどを学習し、高度なデータ分析や検索を効率的に行うSkill。
📜 元の英語説明(参考)
Weaviate is an open-source vector database with built-in vectorization modules. Learn schema definition, GraphQL and REST APIs, hybrid search combining BM25 and vectors, and self-hosted deployment with Docker.
🇯🇵 日本人クリエイター向け解説
Weaviateは、ベクトル化機能を内蔵したオープンソースのベクトルデータベースで、スキーマ定義やAPI、ハイブリッド検索、Dockerを使った自己ホスト型デプロイなどを学習し、高度なデータ分析や検索を効率的に行うSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o weaviate.zip https://jpskill.com/download/15553.zip && unzip -o weaviate.zip && rm weaviate.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15553.zip -OutFile "$d\weaviate.zip"; Expand-Archive "$d\weaviate.zip" -DestinationPath $d -Force; ri "$d\weaviate.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
weaviate.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
weaviateフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Weaviate
Weaviate は、組み込みモジュール (OpenAI、Cohere、HuggingFace) を使用してインポート時にデータをベクトル化したり、事前に計算されたベクトルを受け入れたりできる、オープンソースのベクトルデータベースです。ベクトル類似性と BM25 キーワード検索を組み合わせたハイブリッド検索をサポートしています。
インストール
# docker-compose.yml: OpenAI vectorizer モジュールを使用した Weaviate
services:
weaviate:
image: cr.weaviate.io/semitechnologies/weaviate:1.28.0
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}
CLUSTER_HOSTNAME: node1
volumes:
- weaviate-data:/var/lib/weaviate
volumes:
weaviate-data:
# Weaviate の起動
docker compose up -d
# クライアントのインストール
npm install weaviate-client
pip install weaviate-client
スキーマの定義
// schema.js: プロパティを持つコレクション (クラス) の作成
const weaviate = require('weaviate-client');
const client = await weaviate.connectToLocal();
await client.collections.create({
name: 'Article',
vectorizers: weaviate.configure.vectorizer.text2VecOpenAI(),
generative: weaviate.configure.generative.openAI(),
properties: [
{ name: 'title', dataType: 'text' },
{ name: 'content', dataType: 'text' },
{ name: 'category', dataType: 'text', tokenization: 'field' },
{ name: 'url', dataType: 'text', skipVectorization: true },
{ name: 'published', dataType: 'date' },
],
});
データのインポート
// import.js: オブジェクトの Weaviate へのバッチインポート
const articles = client.collections.get('Article');
const items = [
{ title: 'Intro to Vector DBs', content: 'Vector databases store...', category: 'tech', url: 'https://example.com/1' },
{ title: 'Hybrid Search Explained', content: 'Combining keyword and...', category: 'tech', url: 'https://example.com/2' },
];
// バッチインポート
const response = await articles.data.insertMany(items);
console.log(`Imported ${response.allResponses.length} objects`);
ベクトル検索
// search.js: セマンティック類似性検索
const articles = client.collections.get('Article');
// nearText — クエリをベクトルに変換するために vectorizer を使用
const results = await articles.query.nearText('how do vector databases work', {
limit: 5,
returnMetadata: ['distance'],
});
results.objects.forEach(obj => {
console.log(obj.properties.title, obj.metadata.distance);
});
ハイブリッド検索
// hybrid.js: BM25 キーワード検索とベクトル検索の組み合わせ
const results = await articles.query.hybrid('vector database performance', {
limit: 10,
alpha: 0.5, // 0 = pure BM25, 1 = pure vector
returnMetadata: ['score'],
filters: articles.filter.byProperty('category').equal('tech'),
});
results.objects.forEach(obj => {
console.log(obj.properties.title, obj.metadata.score);
});
生成検索 (RAG)
// rag.js: Weaviate で直接 RAG 用に generative モジュールを使用
const results = await articles.generate.nearText('vector databases', {
singlePrompt: 'Summarize this article in one sentence: {content}',
groupedTask: 'Compare these articles and list key differences.',
limit: 3,
});
// オブジェクトごとの生成
results.objects.forEach(obj => {
console.log(obj.generated); // Single prompt result
});
// すべての結果にわたるグループ化された生成
console.log(results.generatedText);
Python クライアント
# app.py: Python v4 クライアントを使用した Weaviate
import weaviate
import weaviate.classes.query as wq
client = weaviate.connect_to_local()
articles = client.collections.get("Article")
# ハイブリッド検索
response = articles.query.hybrid(
query="machine learning",
alpha=0.7,
limit=5,
return_metadata=wq.MetadataQuery(score=True),
)
for obj in response.objects:
print(obj.properties["title"], obj.metadata.score)
# フィルタリングされた検索
from weaviate.classes.query import Filter
response = articles.query.near_text(
query="databases",
filters=Filter.by_property("category").equal("tech"),
limit=5,
)
client.close()
バックアップと復元
# backup.sh: REST API 経由での Weaviate バックアップの作成と復元
# バックアップの作成
curl -X POST http://localhost:8080/v1/backups/filesystem \
-H 'Content-Type: application/json' \
-d '{"id": "backup-20260219", "include": ["Article"]}'
# ステータスの確認
curl http://localhost:8080/v1/backups/filesystem/backup-20260219
# 復元
curl -X POST http://localhost:8080/v1/backups/filesystem/backup-20260219/restore 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Weaviate
Weaviate is an open-source vector database that can vectorize data at import time using built-in modules (OpenAI, Cohere, HuggingFace) or accept pre-computed vectors. It supports hybrid search combining vector similarity with BM25 keyword search.
Installation
# docker-compose.yml: Weaviate with OpenAI vectorizer module
services:
weaviate:
image: cr.weaviate.io/semitechnologies/weaviate:1.28.0
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}
CLUSTER_HOSTNAME: node1
volumes:
- weaviate-data:/var/lib/weaviate
volumes:
weaviate-data:
# Start Weaviate
docker compose up -d
# Install clients
npm install weaviate-client
pip install weaviate-client
Define Schema
// schema.js: Create a collection (class) with properties
const weaviate = require('weaviate-client');
const client = await weaviate.connectToLocal();
await client.collections.create({
name: 'Article',
vectorizers: weaviate.configure.vectorizer.text2VecOpenAI(),
generative: weaviate.configure.generative.openAI(),
properties: [
{ name: 'title', dataType: 'text' },
{ name: 'content', dataType: 'text' },
{ name: 'category', dataType: 'text', tokenization: 'field' },
{ name: 'url', dataType: 'text', skipVectorization: true },
{ name: 'published', dataType: 'date' },
],
});
Import Data
// import.js: Batch import objects into Weaviate
const articles = client.collections.get('Article');
const items = [
{ title: 'Intro to Vector DBs', content: 'Vector databases store...', category: 'tech', url: 'https://example.com/1' },
{ title: 'Hybrid Search Explained', content: 'Combining keyword and...', category: 'tech', url: 'https://example.com/2' },
];
// Batch import
const response = await articles.data.insertMany(items);
console.log(`Imported ${response.allResponses.length} objects`);
Vector Search
// search.js: Semantic similarity search
const articles = client.collections.get('Article');
// nearText — uses the vectorizer to convert query to vector
const results = await articles.query.nearText('how do vector databases work', {
limit: 5,
returnMetadata: ['distance'],
});
results.objects.forEach(obj => {
console.log(obj.properties.title, obj.metadata.distance);
});
Hybrid Search
// hybrid.js: Combine BM25 keyword search with vector search
const results = await articles.query.hybrid('vector database performance', {
limit: 10,
alpha: 0.5, // 0 = pure BM25, 1 = pure vector
returnMetadata: ['score'],
filters: articles.filter.byProperty('category').equal('tech'),
});
results.objects.forEach(obj => {
console.log(obj.properties.title, obj.metadata.score);
});
Generative Search (RAG)
// rag.js: Use generative module for RAG directly in Weaviate
const results = await articles.generate.nearText('vector databases', {
singlePrompt: 'Summarize this article in one sentence: {content}',
groupedTask: 'Compare these articles and list key differences.',
limit: 3,
});
// Per-object generation
results.objects.forEach(obj => {
console.log(obj.generated); // Single prompt result
});
// Grouped generation across all results
console.log(results.generatedText);
Python Client
# app.py: Weaviate with Python v4 client
import weaviate
import weaviate.classes.query as wq
client = weaviate.connect_to_local()
articles = client.collections.get("Article")
# Hybrid search
response = articles.query.hybrid(
query="machine learning",
alpha=0.7,
limit=5,
return_metadata=wq.MetadataQuery(score=True),
)
for obj in response.objects:
print(obj.properties["title"], obj.metadata.score)
# Filtered search
from weaviate.classes.query import Filter
response = articles.query.near_text(
query="databases",
filters=Filter.by_property("category").equal("tech"),
limit=5,
)
client.close()
Backup and Restore
# backup.sh: Create and restore Weaviate backups via REST API
# Create backup
curl -X POST http://localhost:8080/v1/backups/filesystem \
-H 'Content-Type: application/json' \
-d '{"id": "backup-20260219", "include": ["Article"]}'
# Check status
curl http://localhost:8080/v1/backups/filesystem/backup-20260219
# Restore
curl -X POST http://localhost:8080/v1/backups/filesystem/backup-20260219/restore