feat(weaviate): Add Weaviate vector database adaptor (Task #10)
Implements native Weaviate integration for RAG pipelines as part of Week 2 vector store integrations. ## Features - **Auto-generated schema** - Creates Weaviate class definition from metadata - **Deterministic UUIDs** - Stable IDs for consistent re-imports - **Rich metadata** - All properties indexed for filtering - **Batch-ready format** - Optimized for batch import - **Example code** - Complete usage examples in upload() ## Output Format JSON file containing: - `schema`: Weaviate class definition with properties - `objects`: Array of objects ready for batch import - `class_name`: Derived from skill name ## Properties - content (text, searchable) - source (filterable, searchable) - category (filterable, searchable) - file (filterable) - type (filterable) - version (filterable) ## CLI Integration ```bash skill-seekers package output/django --target weaviate # → output/django-weaviate.json ``` ## Files Added - src/skill_seekers/cli/adaptors/weaviate.py (428 lines) * Complete Weaviate adaptor implementation * Schema auto-generation * UUID generation from content hash * Example code for import/query ## Files Modified - src/skill_seekers/cli/adaptors/__init__.py * Import WeaviateAdaptor * Register "weaviate" in ADAPTORS - src/skill_seekers/cli/package_skill.py * Add "weaviate" to --target choices - src/skill_seekers/cli/main.py * Add "weaviate" to --target choices ## Testing Tested with ansible skill: - ✅ Schema generation works - ✅ Object format correct - ✅ UUID generation deterministic - ✅ Metadata preserved - ✅ CLI integration working Output: output/ansible-weaviate.json (10.7 KB, 1 object) ## Week 2 Progress - ✅ Task #10: Weaviate adaptor (Complete) - ⏳ Task #11: Chroma adaptor (Next) - ⏳ Task #12: FAISS helpers - ⏳ Task #13: Qdrant adaptor Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -215,7 +215,7 @@ For more information: https://github.com/yusufkaraaslan/Skill_Seekers
|
||||
package_parser.add_argument("--upload", action="store_true", help="Auto-upload after packaging")
|
||||
package_parser.add_argument(
|
||||
"--target",
|
||||
choices=["claude", "gemini", "openai", "markdown", "langchain", "llama-index"],
|
||||
choices=["claude", "gemini", "openai", "markdown", "langchain", "llama-index", "weaviate"],
|
||||
default="claude",
|
||||
help="Target LLM platform (default: claude)",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user