{"_id":"@chroma-core/sentence-transformer","name":"@chroma-core/sentence-transformer","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@chroma-core/sentence-transformer","version":"0.1.0","private":false,"description":"Sentence Transformer embedding provider for Chroma using transformers.js","main":"dist/cjs/sentence-transformer.cjs","types":"dist/sentence-transformer.d.ts","module":"dist/sentence-transformer.legacy-esm.js","type":"module","exports":{".":{"import":{"types":"./dist/sentence-transformer.d.ts","default":"./dist/sentence-transformer.mjs"},"require":{"types":"./dist/cjs/sentence-transformer.d.cts","default":"./dist/cjs/sentence-transformer.cjs"}}},"devDependencies":{"@jest/globals":"^29.7.0","dotenv":"^16.3.1","jest":"^29.7.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","tsup":"^8.3.5"},"peerDependencies":{"chromadb":"^3.1.5"},"dependencies":{"@huggingface/transformers":"^3.7.6","@chroma-core/ai-embeddings-common":"^0.1.9"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"scripts":{"clean":"rimraf dist","prebuild":"rimraf dist","build":"tsup","watch":"tsup --watch","test":"jest"},"_id":"@chroma-core/sentence-transformer@0.1.0","_integrity":"sha512-E8AhBCCYU/NpGmWv4IApVyoye2suMTfUOL+SM++IyhKVFuTHmo0YTSXvn4uZKO8tw9M5EiD+cwaXE8iWU6L1hA==","_resolved":"/private/var/folders/jc/zn4vxnks05nbql24849n_mh40000gn/T/9db8a489cb1cbab2aeffd31517775eb5/chroma-core-sentence-transformer-0.1.0.tgz","_from":"file:chroma-core-sentence-transformer-0.1.0.tgz","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-E8AhBCCYU/NpGmWv4IApVyoye2suMTfUOL+SM++IyhKVFuTHmo0YTSXvn4uZKO8tw9M5EiD+cwaXE8iWU6L1hA==","shasum":"47bd792a1c4f666c65e4b1e505d88a5d8219f608","tarball":"https://registry.npmjs.org/@chroma-core/sentence-transformer/-/sentence-transformer-0.1.0.tgz","fileCount":11,"unpackedSize":48425,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAe/lorATT8TEyDLABwl9IRllaqkJBXNHUyfUXsgs1CCAiA3WdYWZtRweJq2K563LdtyAL75OEZH53/CyLpySETdwQ=="}]},"_npmUser":{"name":"itaichroma","email":"itai@trychroma.com"},"directories":{},"maintainers":[{"name":"itaichroma","email":"itai@trychroma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sentence-transformer_0.1.0_1763459907622_0.4917191428092018"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-18T09:58:27.547Z","0.1.0":"2025-11-18T09:58:27.816Z","modified":"2025-11-18T09:58:28.075Z"},"maintainers":[{"name":"itaichroma","email":"itai@trychroma.com"}],"description":"Sentence Transformer embedding provider for Chroma using transformers.js","readme":"# Sentence Transformers Embedding Function for Chroma\n\nThis package provides a Sentence Transformers embedding provider for Chroma using transformers.js (`@huggingface/transformers`). It allows you to run Sentence Transformer models directly in Node.js without requiring a separate server.\n\n## Installation\n\n```bash\nnpm install @chroma-core/sentence-transformer\n```\n\n## Usage\n\n```typescript\nimport { ChromaClient } from 'chromadb';\nimport { SentenceTransformersEmbeddingFunction } from '@chroma-core/sentence-transformer';\n\n// Initialize the embedder with the default model (all-MiniLM-L6-v2)\nconst embedder = new SentenceTransformersEmbeddingFunction();\n\n// Or initialize with a custom model\nconst customEmbedder = new SentenceTransformersEmbeddingFunction({\n  modelName: 'Xenova/all-mpnet-base-v2', // Higher quality model\n  device: 'cpu', // 'cpu' or 'gpu' (default: 'cpu')\n  normalizeEmbeddings: false, // Whether to normalize embeddings (default: false)\n  kwargs: { quantized: true }, // Optional: additional arguments like quantized\n});\n\n// Create a new ChromaClient\nconst client = new ChromaClient({\n  path: 'http://localhost:8000',\n});\n\n// Create a collection with the embedder\nconst collection = await client.createCollection({\n  name: 'my-collection',\n  embeddingFunction: embedder,\n});\n\n// Add documents\nawait collection.add({\n  ids: [\"1\", \"2\", \"3\"],\n  documents: [\"Document 1\", \"Document 2\", \"Document 3\"],\n});\n\n// Query documents\nconst results = await collection.query({\n  queryTexts: [\"Sample query\"],\n  nResults: 2,\n});\n```\n\n## Configuration Options\n\n- **modelName**: The Sentence Transformer model to use (default: `\"all-MiniLM-L6-v2\"`)\n  - **Short names** (recommended): Use short names like `\"all-MiniLM-L6-v2\"` for cross-client compatibility with Python. These are automatically resolved to `Xenova/all-MiniLM-L6-v2` for transformers.js.\n  - **Full names**: You can also use full model identifiers like `Xenova/all-MiniLM-L6-v2` or `sentence-transformers/all-MiniLM-L6-v2` if you need to specify a particular variant.\n  - Popular models: `all-MiniLM-L6-v2` (default), `all-mpnet-base-v2`, `bge-small-en-v1.5`\n- **device**: Device to run the model on - `'cpu'` or `'gpu'` (default: `'cpu'`)\n- **normalizeEmbeddings**: Whether to normalize returned vectors (default: `false`)\n- **kwargs**: Additional arguments to pass to the model (e.g., `{ quantized: true }`)\n\n## Supported Models\n\nYou can use any Sentence Transformer model that is compatible with transformers.js. Popular models include:\n\n- `Xenova/all-MiniLM-L6-v2` - Fast, lightweight model (384 dimensions)\n- `Xenova/all-mpnet-base-v2` - Higher quality model (768 dimensions)\n- `sentence-transformers/all-MiniLM-L6-v2` - Alternative model identifier\n- `sentence-transformers/all-mpnet-base-v2` - Alternative model identifier\n\nCheck the [transformers.js documentation](https://huggingface.co/docs/transformers.js) for more available models.\n\n## Features\n\n- **Local Execution**: Run models directly in Node.js without external API calls\n- **Multiple Models**: Support for various Sentence Transformer models\n- **GPU Support**: Optional GPU acceleration when available\n- **No API Keys**: No external API keys required\n- **Configurable Normalization**: Control whether embeddings are normalized\n\n## Notes\n\n- Models are downloaded and cached on first use\n- You can pass `quantized: true` in `kwargs` for faster loading and reduced memory usage\n- GPU support requires appropriate hardware and drivers\n- Model loading may take some time on first use\n","readmeFilename":"README.md","_rev":"1-94540bf22692bc42a22b89cf02409a50"}