voyageai-cli 1.22.0 → 1.22.1
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/package.json +1 -1
- package/src/lib/explanations.js +186 -0
package/package.json
CHANGED
package/src/lib/explanations.js
CHANGED
|
@@ -1151,6 +1151,175 @@ const concepts = {
|
|
|
1151
1151
|
],
|
|
1152
1152
|
},
|
|
1153
1153
|
|
|
1154
|
+
'auto-embedding': {
|
|
1155
|
+
title: 'MongoDB Auto-Embedding',
|
|
1156
|
+
summary: 'Automatic vector embedding generation in Atlas Vector Search',
|
|
1157
|
+
content: [
|
|
1158
|
+
`${pc.bold('What is Auto-Embedding?')}`,
|
|
1159
|
+
`${pc.cyan('Auto-Embedding')} is a MongoDB Atlas Vector Search feature (currently in Preview)`,
|
|
1160
|
+
`that automatically generates vector embeddings for text fields using Voyage AI`,
|
|
1161
|
+
`models — no embedding code required.`,
|
|
1162
|
+
``,
|
|
1163
|
+
`${pc.bold('How it works:')}`,
|
|
1164
|
+
` ${pc.dim('1.')} Configure your vector search index with ${pc.cyan('autoEmbed')} type`,
|
|
1165
|
+
` ${pc.dim('2.')} Specify which text field to embed and which Voyage AI model to use`,
|
|
1166
|
+
` ${pc.dim('3.')} MongoDB automatically generates embeddings when documents are inserted/updated`,
|
|
1167
|
+
` ${pc.dim('4.')} At query time, pass natural language text — MongoDB embeds it automatically`,
|
|
1168
|
+
``,
|
|
1169
|
+
`${pc.bold('Supported models:')}`,
|
|
1170
|
+
` ${pc.cyan('voyage-4-lite')} — High-volume, cost-sensitive applications`,
|
|
1171
|
+
` ${pc.cyan('voyage-4')} — Balanced performance (recommended)`,
|
|
1172
|
+
` ${pc.cyan('voyage-4-large')} — Maximum accuracy for complex relationships`,
|
|
1173
|
+
` ${pc.cyan('voyage-code-3')} — Code search and technical documentation`,
|
|
1174
|
+
``,
|
|
1175
|
+
`${pc.bold('Index definition example:')}`,
|
|
1176
|
+
` ${pc.dim('{')}`,
|
|
1177
|
+
` ${pc.dim('"mappings": {')}`,
|
|
1178
|
+
` ${pc.dim('"fields": {')}`,
|
|
1179
|
+
` ${pc.cyan('"summary"')}: ${pc.dim('{')}`,
|
|
1180
|
+
` ${pc.dim('"type": "')}${pc.cyan('autoEmbed')}${pc.dim('",')}`,
|
|
1181
|
+
` ${pc.dim('"model": "voyage-4"')}`,
|
|
1182
|
+
` ${pc.dim('}')}`,
|
|
1183
|
+
` ${pc.dim('}')}`,
|
|
1184
|
+
` ${pc.dim('}')}`,
|
|
1185
|
+
` ${pc.dim('}')}`,
|
|
1186
|
+
``,
|
|
1187
|
+
`${pc.bold('Query syntax:')} Use ${pc.cyan('query.text')} in $vectorSearch instead of ${pc.cyan('queryVector')}:`,
|
|
1188
|
+
` ${pc.dim('$vectorSearch: {')}`,
|
|
1189
|
+
` ${pc.dim('index: "myIndex",')}`,
|
|
1190
|
+
` ${pc.dim('path: "summary",')}`,
|
|
1191
|
+
` ${pc.cyan('query: { text: "properties near amusement parks" }')},`,
|
|
1192
|
+
` ${pc.dim('numCandidates: 100,')}`,
|
|
1193
|
+
` ${pc.dim('limit: 10')}`,
|
|
1194
|
+
` ${pc.dim('}')}`,
|
|
1195
|
+
``,
|
|
1196
|
+
`${pc.bold('API keys:')}`,
|
|
1197
|
+
`Auto-Embedding uses Voyage AI API keys configured during mongot deployment.`,
|
|
1198
|
+
`Best practice: use separate keys for indexing vs. querying to avoid rate limit`,
|
|
1199
|
+
`conflicts. Keys can be created from Atlas (AI Models section) or Voyage AI directly.`,
|
|
1200
|
+
``,
|
|
1201
|
+
`${pc.bold('Current limitations (Preview):')}`,
|
|
1202
|
+
` ${pc.dim('•')} ${pc.yellow('Not yet available')} on Atlas clusters (only self-managed Community Edition)`,
|
|
1203
|
+
` ${pc.dim('•')} Not available on local Atlas deployments via Atlas CLI`,
|
|
1204
|
+
` ${pc.dim('•')} Not available on MongoDB Enterprise Edition`,
|
|
1205
|
+
` ${pc.dim('•')} Available via Docker, tarball, package manager, or Kubernetes with 8.2+ CE`,
|
|
1206
|
+
``,
|
|
1207
|
+
`${pc.bold('When to use Auto-Embedding:')}`,
|
|
1208
|
+
` ${pc.dim('•')} Simple use cases where you want zero embedding code`,
|
|
1209
|
+
` ${pc.dim('•')} Single-field text embedding scenarios`,
|
|
1210
|
+
` ${pc.dim('•')} When your data changes frequently and you want automatic sync`,
|
|
1211
|
+
` ${pc.dim('•')} Self-managed MongoDB deployments`,
|
|
1212
|
+
``,
|
|
1213
|
+
`${pc.bold('When to use vai (manual embedding) instead:')}`,
|
|
1214
|
+
` ${pc.dim('•')} Atlas clusters (auto-embedding not yet available)`,
|
|
1215
|
+
` ${pc.dim('•')} Custom chunking strategies needed`,
|
|
1216
|
+
` ${pc.dim('•')} Multi-field or multi-collection embeddings`,
|
|
1217
|
+
` ${pc.dim('•')} Reranking pipelines (auto-embedding doesn't include reranking)`,
|
|
1218
|
+
` ${pc.dim('•')} Quantization (int8/binary) for storage optimization`,
|
|
1219
|
+
` ${pc.dim('•')} Multimodal embeddings (images + text)`,
|
|
1220
|
+
].join('\n'),
|
|
1221
|
+
links: [
|
|
1222
|
+
'https://www.mongodb.com/docs/atlas/atlas-vector-search/crud-embeddings/create-embeddings-automatic/',
|
|
1223
|
+
'https://www.mongodb.com/docs/voyageai/management/api-keys/',
|
|
1224
|
+
],
|
|
1225
|
+
tryIt: [
|
|
1226
|
+
'vai explain vai-vs-auto-embedding',
|
|
1227
|
+
'vai explain vector-search',
|
|
1228
|
+
'vai models --type embedding',
|
|
1229
|
+
],
|
|
1230
|
+
},
|
|
1231
|
+
|
|
1232
|
+
'vai-vs-auto-embedding': {
|
|
1233
|
+
title: 'VAI vs Auto-Embedding — When to Use Each',
|
|
1234
|
+
summary: 'Choosing between manual embedding pipelines and MongoDB auto-embedding',
|
|
1235
|
+
content: [
|
|
1236
|
+
`Both ${pc.cyan('vai')} (manual embedding) and ${pc.cyan('MongoDB Auto-Embedding')} use the same`,
|
|
1237
|
+
`Voyage AI models, but they serve different use cases and deployment scenarios.`,
|
|
1238
|
+
``,
|
|
1239
|
+
`${pc.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}`,
|
|
1240
|
+
``,
|
|
1241
|
+
`${pc.bold(pc.cyan('VAI (Manual Embedding Pipeline)'))}`,
|
|
1242
|
+
``,
|
|
1243
|
+
`You embed text explicitly using ${pc.cyan('vai embed')}, ${pc.cyan('vai pipeline')}, or ${pc.cyan('vai store')},`,
|
|
1244
|
+
`then store the vectors in any database. Full control over every step.`,
|
|
1245
|
+
``,
|
|
1246
|
+
`${pc.bold('Use vai when:')}`,
|
|
1247
|
+
` ${pc.green('✓')} Using ${pc.cyan('MongoDB Atlas clusters')} (auto-embedding not available yet)`,
|
|
1248
|
+
` ${pc.green('✓')} Using ${pc.cyan('any vector database')} (Pinecone, Weaviate, Qdrant, etc.)`,
|
|
1249
|
+
` ${pc.green('✓')} You need ${pc.cyan('custom chunking')} (sentence, paragraph, semantic, sliding window)`,
|
|
1250
|
+
` ${pc.green('✓')} You need ${pc.cyan('reranking')} (vai supports two-stage retrieval pipelines)`,
|
|
1251
|
+
` ${pc.green('✓')} You want ${pc.cyan('quantization')} (int8, binary) for storage optimization`,
|
|
1252
|
+
` ${pc.green('✓')} You need ${pc.cyan('multimodal embeddings')} (images + text)`,
|
|
1253
|
+
` ${pc.green('✓')} You need ${pc.cyan('flexible dimensions')} (256, 512, 1024, 2048)`,
|
|
1254
|
+
` ${pc.green('✓')} You want to ${pc.cyan('mix models')} (embed docs with -large, query with -lite)`,
|
|
1255
|
+
` ${pc.green('✓')} You need ${pc.cyan('batch processing')} with custom concurrency/rate limiting`,
|
|
1256
|
+
` ${pc.green('✓')} You're building ${pc.cyan('RAG pipelines')} with custom retrieval logic`,
|
|
1257
|
+
``,
|
|
1258
|
+
`${pc.dim('Workflow:')}`,
|
|
1259
|
+
` ${pc.cyan('vai chunk')} → ${pc.cyan('vai embed')} → ${pc.cyan('vai store')} → ${pc.cyan('vai search')} → ${pc.cyan('vai rerank')}`,
|
|
1260
|
+
``,
|
|
1261
|
+
`${pc.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}`,
|
|
1262
|
+
``,
|
|
1263
|
+
`${pc.bold(pc.cyan('MongoDB Auto-Embedding'))}`,
|
|
1264
|
+
``,
|
|
1265
|
+
`MongoDB automatically generates embeddings when you insert/update documents.`,
|
|
1266
|
+
`No embedding code needed — just configure your index and insert data.`,
|
|
1267
|
+
``,
|
|
1268
|
+
`${pc.bold('Use Auto-Embedding when:')}`,
|
|
1269
|
+
` ${pc.green('✓')} Using ${pc.cyan('self-managed MongoDB Community Edition')} (8.2+)`,
|
|
1270
|
+
` ${pc.green('✓')} You want ${pc.cyan('zero embedding code')} — simplest possible setup`,
|
|
1271
|
+
` ${pc.green('✓')} You're embedding a ${pc.cyan('single text field')} per collection`,
|
|
1272
|
+
` ${pc.green('✓')} Your data ${pc.cyan('changes frequently')} and you want automatic sync`,
|
|
1273
|
+
` ${pc.green('✓')} You don't need reranking, quantization, or multimodal`,
|
|
1274
|
+
` ${pc.green('✓')} Standard chunking is sufficient (or you pre-chunk your data)`,
|
|
1275
|
+
``,
|
|
1276
|
+
`${pc.dim('Workflow:')}`,
|
|
1277
|
+
` ${pc.cyan('db.collection.insertOne({text: "..."})')} → embeddings auto-generated`,
|
|
1278
|
+
` ${pc.cyan('$vectorSearch: {query: {text: "..."}}')} → query auto-embedded`,
|
|
1279
|
+
``,
|
|
1280
|
+
`${pc.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}`,
|
|
1281
|
+
``,
|
|
1282
|
+
`${pc.bold('FEATURE COMPARISON')}`,
|
|
1283
|
+
``,
|
|
1284
|
+
`${pc.dim('Feature vai Auto-Embedding')}`,
|
|
1285
|
+
`${pc.dim('─────────────────────────────────────────────────────────────────')}`,
|
|
1286
|
+
`Atlas clusters ${pc.green('Yes')} ${pc.yellow('Not yet')}`,
|
|
1287
|
+
`Self-managed CE 8.2+ ${pc.green('Yes')} ${pc.green('Yes')}`,
|
|
1288
|
+
`Other vector DBs ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1289
|
+
`Custom chunking ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1290
|
+
`Reranking ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1291
|
+
`Quantization ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1292
|
+
`Multimodal ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1293
|
+
`Flexible dimensions ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1294
|
+
`Mix query/doc models ${pc.green('Yes')} ${pc.dim('No')}`,
|
|
1295
|
+
`Auto-sync on update ${pc.dim('Manual')} ${pc.green('Yes')}`,
|
|
1296
|
+
`Zero code setup ${pc.dim('No')} ${pc.green('Yes')}`,
|
|
1297
|
+
``,
|
|
1298
|
+
`${pc.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}`,
|
|
1299
|
+
``,
|
|
1300
|
+
`${pc.bold('RECOMMENDATION')}`,
|
|
1301
|
+
``,
|
|
1302
|
+
`${pc.dim('•')} For ${pc.cyan('Atlas users')}: Use vai — auto-embedding isn't available yet`,
|
|
1303
|
+
`${pc.dim('•')} For ${pc.cyan('production RAG')}: Use vai — you'll want reranking and custom chunking`,
|
|
1304
|
+
`${pc.dim('•')} For ${pc.cyan('quick prototypes')} on self-managed CE: Auto-embedding is faster to set up`,
|
|
1305
|
+
`${pc.dim('•')} For ${pc.cyan('complex pipelines')}: vai gives you full control over every step`,
|
|
1306
|
+
``,
|
|
1307
|
+
`${pc.bold('Migration path:')} Start with auto-embedding for simplicity, then migrate to`,
|
|
1308
|
+
`vai when you need advanced features. The models are the same — your embeddings`,
|
|
1309
|
+
`will be compatible.`,
|
|
1310
|
+
].join('\n'),
|
|
1311
|
+
links: [
|
|
1312
|
+
'https://www.mongodb.com/docs/atlas/atlas-vector-search/crud-embeddings/create-embeddings-automatic/',
|
|
1313
|
+
'https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-stage/',
|
|
1314
|
+
],
|
|
1315
|
+
tryIt: [
|
|
1316
|
+
'vai explain auto-embedding',
|
|
1317
|
+
'vai pipeline --help',
|
|
1318
|
+
'vai chunk --help',
|
|
1319
|
+
'vai rerank --help',
|
|
1320
|
+
],
|
|
1321
|
+
},
|
|
1322
|
+
|
|
1154
1323
|
'eval-comparison': {
|
|
1155
1324
|
title: 'Evaluation Comparison — vai eval compare',
|
|
1156
1325
|
summary: 'Compare configurations and track quality over time',
|
|
@@ -1320,6 +1489,23 @@ const aliases = {
|
|
|
1320
1489
|
'save-results': 'eval-comparison',
|
|
1321
1490
|
'a-b-test': 'eval-comparison',
|
|
1322
1491
|
regression: 'eval-comparison',
|
|
1492
|
+
// Auto-embedding aliases
|
|
1493
|
+
'auto-embedding': 'auto-embedding',
|
|
1494
|
+
'auto-embed': 'auto-embedding',
|
|
1495
|
+
autoembed: 'auto-embedding',
|
|
1496
|
+
'autoEmbed': 'auto-embedding',
|
|
1497
|
+
'automatic-embedding': 'auto-embedding',
|
|
1498
|
+
'automatic-embeddings': 'auto-embedding',
|
|
1499
|
+
'atlas-auto-embed': 'auto-embedding',
|
|
1500
|
+
'mongodb-auto-embedding': 'auto-embedding',
|
|
1501
|
+
'zero-code': 'auto-embedding',
|
|
1502
|
+
// VAI vs Auto-embedding aliases
|
|
1503
|
+
'vai-vs-auto-embedding': 'vai-vs-auto-embedding',
|
|
1504
|
+
'vai-vs-autoembedding': 'vai-vs-auto-embedding',
|
|
1505
|
+
'manual-vs-auto': 'vai-vs-auto-embedding',
|
|
1506
|
+
'auto-vs-manual': 'vai-vs-auto-embedding',
|
|
1507
|
+
'which-approach': 'vai-vs-auto-embedding',
|
|
1508
|
+
'embedding-approach': 'vai-vs-auto-embedding',
|
|
1323
1509
|
// Provider comparison aliases
|
|
1324
1510
|
'provider-comparison': 'provider-comparison',
|
|
1325
1511
|
providers: 'provider-comparison',
|