feat(chroma): Add Chroma vector database adaptor (Task #11)
Implements native Chroma integration for RAG pipelines as part of Week 2 vector store integrations. ## Features - **Chroma-compatible format** - Direct `collection.add()` support - **Deterministic IDs** - Stable IDs for consistent re-imports - **Metadata structure** - Compatible with Chroma's metadata filtering - **Collection naming** - Auto-derived from skill name - **Example code** - Complete usage examples with persistent/in-memory options ## Output Format JSON file containing: - `documents`: Array of document strings - `metadatas`: Array of metadata dicts - `ids`: Array of deterministic IDs - `collection_name`: Suggested collection name ## CLI Integration ```bash skill-seekers package output/django --target chroma # → output/django-chroma.json ``` ## Files Added - src/skill_seekers/cli/adaptors/chroma.py (360 lines) * Complete Chroma adaptor implementation * ID generation from content hash * Metadata structure compatible with Chroma * Example code for add/query/filter/update/delete ## Files Modified - src/skill_seekers/cli/adaptors/__init__.py * Import ChromaAdaptor * Register "chroma" in ADAPTORS - src/skill_seekers/cli/package_skill.py * Add "chroma" to --target choices - src/skill_seekers/cli/main.py * Add "chroma" to --target choices ## Testing Tested with ansible skill: - ✅ Document format correct - ✅ Metadata structure compatible - ✅ IDs deterministic - ✅ Collection name derived correctly - ✅ CLI integration working Output: output/ansible-chroma.json (9.3 KB, 1 document) ## Week 2 Progress - ✅ Task #10: Weaviate adaptor (Complete) - ✅ Task #11: Chroma adaptor (Complete) - ⏳ Task #12: FAISS helpers (Next) - ⏳ Task #13: Qdrant adaptor Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -155,7 +155,7 @@ Examples:
|
||||
|
||||
parser.add_argument(
|
||||
"--target",
|
||||
choices=["claude", "gemini", "openai", "markdown", "langchain", "llama-index", "weaviate"],
|
||||
choices=["claude", "gemini", "openai", "markdown", "langchain", "llama-index", "weaviate", "chroma"],
|
||||
default="claude",
|
||||
help="Target LLM platform (default: claude)",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user