vybekiit 0.7.26 → 0.7.27
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/dist/bin.js +3891 -1301
- package/dist/global-skills/aws-cdk/SKILL.md +19 -5
- package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
- package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
- package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
- package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
- package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
- package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
- package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
- package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
- package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
- package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
- package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
- package/dist/global-skills/aws-serverless/SKILL.md +9 -1
- package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
- package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
- package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
- package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
- package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
- package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
- package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
- package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
- package/dist/global-skills/eas-simulator/SKILL.md +48 -26
- package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
- package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
- package/dist/global-skills/eas-update/SKILL.md +146 -0
- package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-animation/RECIPES.md +2 -2
- package/dist/global-skills/expo-animation/SKILL.md +9 -2
- package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
- package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
- package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
- package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
- package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
- package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
- package/dist/global-skills/expo-design-system/SKILL.md +27 -7
- package/dist/global-skills/expo-design-system/references/audit.md +7 -2
- package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
- package/dist/global-skills/expo-examples/SKILL.md +0 -1
- package/dist/global-skills/expo-examples/references/catalog.md +1 -1
- package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
- package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
- package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
- package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
- package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
- package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
- package/dist/global-skills/expo-native-ui/references/media.md +15 -20
- package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
- package/dist/global-skills/expo-overview/SKILL.md +17 -12
- package/dist/global-skills/expo-router/SKILL.md +5 -3
- package/dist/global-skills/expo-router/references/tabs.md +5 -5
- package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
- package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
- package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
- package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
- package/dist/global-skills/firebase-data-connect/examples.md +4 -4
- package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
- package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
- package/dist/global-skills/firebase-data-connect/templates.md +2 -1
- package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
- package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
- package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
- package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
- package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
- package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
- package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
- package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
- package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
- package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
- package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
- package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
- package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
- package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
- package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
- package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
- package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
- package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
- package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
- package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
- package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
- package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
- package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
- package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
- package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
- package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
- package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
- package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
- package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
- package/dist/global-skills/manifest.json +8 -2
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
- package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
- package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
- package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
- package/dist/global-skills/neon/SKILL.md +207 -213
- package/dist/global-skills/neon/references/auth.md +12 -0
- package/dist/global-skills/neon/references/claimable-neon.md +10 -14
- package/dist/global-skills/neon/references/function-triggers.md +53 -0
- package/dist/global-skills/neon/references/logs-loki.md +61 -0
- package/dist/global-skills/neon/references/parse-env.md +32 -0
- package/dist/global-skills/neon/references/sdk.md +7 -0
- package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
- package/dist/global-skills/neon-auth/SKILL.md +155 -0
- package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
- package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
- package/dist/global-skills/neon-functions/SKILL.md +159 -84
- package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
- package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
- package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
- package/dist/global-skills/neon-functions/references/mcp.md +1 -1
- package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
- package/dist/global-skills/neon-functions/references/sse.md +8 -5
- package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
- package/dist/global-skills/neon-postgres/SKILL.md +120 -17
- package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
- package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
- package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
- package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
- package/dist/global-skills/onboarding/SKILL.md +8 -6
- package/dist/global-skills/resend/SKILL.md +4 -2
- package/dist/global-skills/resend/references/broadcasts.md +6 -1
- package/dist/global-skills/resend/references/receiving.md +29 -10
- package/dist/global-skills/resend/references/sending/email-management.md +14 -4
- package/dist/global-skills/resend/references/topics.md +9 -6
- package/dist/global-skills/resend/references/usage.md +117 -0
- package/dist/global-skills/resend/references/webhooks.md +59 -2
- package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
- package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
- package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
- package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
- package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
- package/dist/global-skills/supabase/SKILL.md +6 -0
- package/dist/global-skills/use-railway/SKILL.md +42 -22
- package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
- package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
- package/dist/global-skills/use-railway/references/configure.md +17 -2
- package/dist/global-skills/use-railway/references/databases.md +107 -0
- package/dist/global-skills/use-railway/references/deploy.md +5 -5
- package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
- package/dist/global-skills/use-railway/references/iac.md +66 -77
- package/dist/global-skills/use-railway/references/operate.md +26 -3
- package/dist/global-skills/use-railway/references/request.md +31 -23
- package/dist/global-skills/use-railway/references/setup.md +16 -5
- package/dist/global-skills/use-railway/references/tracing.md +261 -0
- package/dist/global-skills/use-railway/references/usage.md +52 -0
- package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
- package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +16 -12
- package/dist/global-skills/watch-my-app/SKILL.md +53 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
- package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
- package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
- package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
- package/dist/global-skills/wrangler/SKILL.md +48 -901
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
- package/package.json +9 -8
- package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
- package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
- package/dist/global-skills/workers-best-practices/references/review.md +0 -174
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"eas-hosting",
|
|
36
36
|
"eas-observe",
|
|
37
37
|
"eas-simulator",
|
|
38
|
+
"eas-update",
|
|
38
39
|
"eas-update-insights",
|
|
39
40
|
"eas-workflows",
|
|
40
41
|
"email-best-practices",
|
|
@@ -63,7 +64,6 @@
|
|
|
63
64
|
"expo-upgrade",
|
|
64
65
|
"expo-web-to-native",
|
|
65
66
|
"extension-to-functions-codebase",
|
|
66
|
-
"feedback",
|
|
67
67
|
"firebase-ai-logic-basics",
|
|
68
68
|
"firebase-app-hosting-basics",
|
|
69
69
|
"firebase-auth-basics",
|
|
@@ -74,7 +74,9 @@
|
|
|
74
74
|
"firebase-hosting-basics",
|
|
75
75
|
"firebase-remote-config-basics",
|
|
76
76
|
"firebase-security-rules-auditor",
|
|
77
|
+
"firestore-rules-creation",
|
|
77
78
|
"go-live",
|
|
79
|
+
"grow-my-customers",
|
|
78
80
|
"harden",
|
|
79
81
|
"instrument-feature-flags",
|
|
80
82
|
"instrument-product-analytics",
|
|
@@ -102,6 +104,7 @@
|
|
|
102
104
|
"native-data-fetching",
|
|
103
105
|
"neon",
|
|
104
106
|
"neon-ai-gateway",
|
|
107
|
+
"neon-auth",
|
|
105
108
|
"neon-functions",
|
|
106
109
|
"neon-object-storage",
|
|
107
110
|
"neon-postgres",
|
|
@@ -131,8 +134,11 @@
|
|
|
131
134
|
"use-dom",
|
|
132
135
|
"use-kit-mcp",
|
|
133
136
|
"use-railway",
|
|
137
|
+
"validate-my-idea",
|
|
134
138
|
"vercel-composition-patterns",
|
|
135
139
|
"vercel-react-best-practices",
|
|
140
|
+
"vybekiit-feedback",
|
|
141
|
+
"watch-my-app",
|
|
136
142
|
"web-to-native",
|
|
137
143
|
"wire-auth",
|
|
138
144
|
"wire-database",
|
|
@@ -142,5 +148,5 @@
|
|
|
142
148
|
"wrangler",
|
|
143
149
|
"xcode-project-setup"
|
|
144
150
|
],
|
|
145
|
-
"count":
|
|
151
|
+
"count": 147
|
|
146
152
|
}
|
|
@@ -18,6 +18,7 @@ You are helping MongoDB users implement, optimize, and troubleshoot Atlas Search
|
|
|
18
18
|
3. **Explain before executing** - Describe what indexes will be created and require explicit approval
|
|
19
19
|
4. **Optimize for the use case** - Different use cases require different index configurations and query patterns
|
|
20
20
|
5. **Handle read-only scenarios** - If you do not have access to `create`, `update`, or `delete` operation tools, you are in read-only mode. Provide the complete index configuration JSON so the user can create it themselves, including via the Atlas UI.
|
|
21
|
+
6. **Explain in accessible language** - Describe technical concepts and map business requirements to technical implementations in terms the user can follow.
|
|
21
22
|
|
|
22
23
|
## Workflow
|
|
23
24
|
|
|
@@ -38,11 +39,15 @@ If the user's request is vague:
|
|
|
38
39
|
Common questions to ask:
|
|
39
40
|
- What are users searching for? (products, movies, documents, etc.)
|
|
40
41
|
- What fields contain the searchable content?
|
|
42
|
+
- Are they searching by free text, or by similarity to an existing item (e.g. "given movie A, find similar movies")?
|
|
41
43
|
- Do they need exact matching, fuzzy matching, or semantic similarity?
|
|
42
44
|
- Do they need filters (price ranges, categories, dates)?
|
|
43
45
|
- Do they need autocomplete/typeahead functionality?
|
|
46
|
+
- Do they already generate vector embeddings, or do they want MongoDB to handle that automatically?
|
|
44
47
|
|
|
45
|
-
### 2. Determine Search Type
|
|
48
|
+
### 2. Determine Search Type and Consult the Reference File
|
|
49
|
+
|
|
50
|
+
Match the use case to a search type below, then consult the linked reference file **before** recommending indexes or queries. Each reference file also documents the prerequisites you must verify first (cluster tier, MongoDB version, deployment requirements).
|
|
46
51
|
|
|
47
52
|
**Atlas Search (Lexical/Full-Text):**
|
|
48
53
|
Use when users need:
|
|
@@ -54,15 +59,28 @@ Use when users need:
|
|
|
54
59
|
- Token-based search
|
|
55
60
|
- Lexical search with views
|
|
56
61
|
|
|
57
|
-
|
|
62
|
+
→ Consult both `references/lexical-search-indexing.md` (index) and `references/lexical-search-querying.md` (query).
|
|
63
|
+
|
|
64
|
+
**Automated Embedding (Semantic search, no embedding code):**
|
|
58
65
|
Use when users need:
|
|
59
|
-
- Semantic
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
66
|
+
- Semantic / vector search without writing embedding code
|
|
67
|
+
- No existing vector pipeline or embedding infrastructure
|
|
68
|
+
- Quick setup: MongoDB auto-generates and manages embeddings using Voyage AI models
|
|
69
|
+
- Text data already stored in Atlas that they want to search by meaning
|
|
70
|
+
- RAG or AI agent memory with minimal setup
|
|
71
|
+
|
|
72
|
+
→ Consult `references/automated-embedding.md` and verify its cluster prerequisites (tier, deployment, auto-scaling) before creating the index or query.
|
|
73
|
+
|
|
74
|
+
**Vector Search (Semantic, bring your own embeddings):**
|
|
75
|
+
Use when users need:
|
|
76
|
+
- Semantic similarity with their own pre-generated embeddings
|
|
77
|
+
- A specific embedding model not provided by Voyage AI
|
|
78
|
+
- Image, audio, or multimodal embeddings (Automated Embedding is text-only)
|
|
79
|
+
- Self-managed MongoDB without Voyage AI API key configured
|
|
64
80
|
- Vector search with views
|
|
65
81
|
|
|
82
|
+
→ Consult `references/vector-search.md`.
|
|
83
|
+
|
|
66
84
|
**Hybrid Search:**
|
|
67
85
|
Use when users need:
|
|
68
86
|
- Combining multiple search approaches (e.g., vector + lexical, multiple text searches)
|
|
@@ -70,24 +88,9 @@ Use when users need:
|
|
|
70
88
|
- Results that factor in multiple relevance criteria
|
|
71
89
|
- Uses `$rankFusion` (rank-based) or `$scoreFusion` (score-based) to merge pipelines
|
|
72
90
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
If the search type is **Hybrid using `$rankFusion` or `$scoreFusion`**, verify the cluster version before proceeding:
|
|
76
|
-
- `$rankFusion` requires MongoDB 8.0+
|
|
77
|
-
- `$scoreFusion` requires MongoDB 8.2+
|
|
91
|
+
→ Consult `references/hybrid-search.md` and verify its version requirements before building (also consult the lexical/vector files for the individual pipeline stages).
|
|
78
92
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
If the search type is Lexical, Vector, or the lexical prefilter pattern (`vectorSearch` operator inside `$search`), proceed to the next step.
|
|
82
|
-
|
|
83
|
-
### 4. Consult Reference Files
|
|
84
|
-
|
|
85
|
-
Always consult the appropriate reference file(s) before recommending indexes or queries:
|
|
86
|
-
- **Lexical**: consult both `references/lexical-search-indexing.md` (index) and `references/lexical-search-querying.md` (query)
|
|
87
|
-
- **Vector**: consult `references/vector-search.md`
|
|
88
|
-
- **Hybrid**: consult `references/hybrid-search.md` (and the lexical/vector files for the individual pipeline stages within it)
|
|
89
|
-
|
|
90
|
-
### 5. Execution and Validation
|
|
93
|
+
### 3. Execution and Validation
|
|
91
94
|
|
|
92
95
|
**Creating indexes:**
|
|
93
96
|
1. Explain the index configuration in plain language
|
|
@@ -110,11 +113,7 @@ Always consult the appropriate reference file(s) before recommending indexes or
|
|
|
110
113
|
|
|
111
114
|
## Anti-Patterns to Avoid
|
|
112
115
|
|
|
113
|
-
**NEVER recommend
|
|
114
|
-
- **$regex**: Not designed for full-text search. Lacks relevance scoring, fuzzy matching, and language-aware tokenization.
|
|
115
|
-
- **$text**: Legacy operator that doesn't scale well for search workloads.
|
|
116
|
-
|
|
117
|
-
If a user asks for regex/text for a search use case, explain why Atlas Search is more appropriate and show the equivalent pattern.
|
|
116
|
+
**NEVER recommend `$regex` or `$text` for search use cases.** Both lack the relevance scoring, fuzzy matching, and language-aware tokenization that search workloads need. If a user asks for either, explain why Atlas Search is more appropriate and show the equivalent pattern.
|
|
118
117
|
|
|
119
118
|
## Handling Edge Cases
|
|
120
119
|
|
|
@@ -132,11 +131,3 @@ If a user asks for regex/text for a search use case, explain why Atlas Search is
|
|
|
132
131
|
**Multiple collections are relevant:**
|
|
133
132
|
- List options and ask which one they mean
|
|
134
133
|
- If context makes it obvious, confirm your assumption
|
|
135
|
-
|
|
136
|
-
## Remember
|
|
137
|
-
|
|
138
|
-
- Always check existing indexes before recommending new ones
|
|
139
|
-
- Explain technical concepts in accessible language
|
|
140
|
-
- Require approval before creating indexes
|
|
141
|
-
- Map user's business requirements to technical implementations
|
|
142
|
-
- Use the appropriate search type for the use case
|
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
# Automated Embedding
|
|
2
|
+
|
|
3
|
+
**Scope**: This guide covers configuring MongoDB Vector Search to automatically generate and manage vector embeddings — no embedding code or model infrastructure required (queries still run through a `$vectorSearch` aggregation pipeline). It documents the `autoEmbed` index type and text-query `$vectorSearch` syntax. For manual vector search (bring your own embeddings), see `vector-search.md`. For combining with lexical search, see `hybrid-search.md`.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Prerequisites](#prerequisites)
|
|
8
|
+
- [Model Selection](#model-selection)
|
|
9
|
+
- [Index Definition](#index-definition)
|
|
10
|
+
- [Query Construction](#query-construction)
|
|
11
|
+
- [Item-to-Item Similarity](#item-to-item-similarity)
|
|
12
|
+
- [How It Works Internally](#how-it-works-internally)
|
|
13
|
+
- [Billing and Free Tokens](#billing-and-free-tokens)
|
|
14
|
+
- [Rate Limits](#rate-limits)
|
|
15
|
+
- [Management and Monitoring](#management-and-monitoring)
|
|
16
|
+
- [Troubleshooting](#troubleshooting)
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
Verify these prerequisites before creating an `autoEmbed` index or query. Tier and auto-scaling prerequisites can change across Atlas releases — confirm the current requirements in the official docs before acting.
|
|
21
|
+
|
|
22
|
+
### Atlas Clusters
|
|
23
|
+
|
|
24
|
+
Automated Embedding is supported on **all Atlas cluster tiers**: M0 (free), Flex, and M10+ dedicated.
|
|
25
|
+
|
|
26
|
+
**M10+ dedicated clusters require storage auto-scaling to be enabled.** If the user is on M10+ without storage auto-scaling, explain how to enable it in Atlas and wait for confirmation before proceeding to index creation.
|
|
27
|
+
|
|
28
|
+
### Self-Managed Deployments
|
|
29
|
+
|
|
30
|
+
Requires:
|
|
31
|
+
1. MongoDB 8.3+ with `mongot`
|
|
32
|
+
2. A Voyage AI API key for indexing
|
|
33
|
+
3. A Voyage AI API key for querying (recommended to use separate keys)
|
|
34
|
+
4. Keys configured in `mongot` during deployment
|
|
35
|
+
|
|
36
|
+
If the user is on a self-managed deployment without Voyage AI configured, offer an alternative: "You can still do semantic search by generating embeddings yourself and storing them in your documents — this works on any deployment. Want to go that route instead?" If yes, proceed with manual Vector Search using `vector-search.md`.
|
|
37
|
+
|
|
38
|
+
## Model Selection
|
|
39
|
+
|
|
40
|
+
All models use Voyage AI, hosted and managed by MongoDB (multi-tenant, US region, Google Cloud). Context window is **32,000 tokens** for all models. Text exceeding this is truncated at index time; queries exceeding it return a `context-limit-exceeded` error. (Pricing and rate limits can change—confirm current values in Atlas or official MongoDB documentation.)
|
|
41
|
+
|
|
42
|
+
| Model | Best For | Per 1K Tokens | Per 1M Tokens |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| `voyage-4-lite` | High-volume, cost-sensitive applications | $0.00002 | $0.02 |
|
|
45
|
+
| `voyage-4` | **(Recommended)** General text search, balanced performance | $0.00006 | $0.06 |
|
|
46
|
+
| `voyage-4-large` | Maximum accuracy, complex semantic relationships | $0.00012 | $0.12 |
|
|
47
|
+
| `voyage-code-3` | Code search, technical documentation | $0.00018 | $0.18 |
|
|
48
|
+
|
|
49
|
+
**Decision guide:**
|
|
50
|
+
- Default / unknown use case → `voyage-4`
|
|
51
|
+
- Large collection, cost is a concern → `voyage-4-lite`
|
|
52
|
+
- High-stakes retrieval where accuracy matters most → `voyage-4-large`
|
|
53
|
+
- Codebase or technical docs search → `voyage-code-3`
|
|
54
|
+
|
|
55
|
+
**Free tokens:** 200 million tokens per model, one-time, shared across the entire Atlas organization. Does not refresh. See [Billing and Free Tokens](#billing-and-free-tokens) below for how consumption and invoicing work.
|
|
56
|
+
|
|
57
|
+
## Index Definition
|
|
58
|
+
|
|
59
|
+
### Syntax
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
{
|
|
63
|
+
"fields": [
|
|
64
|
+
{
|
|
65
|
+
"type": "autoEmbed",
|
|
66
|
+
"modality": "text",
|
|
67
|
+
"path": "<text-field-to-embed>",
|
|
68
|
+
"model": "<embedding-model>"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "filter", // Optional: index one or more fields as filters to enable pre-filtering / scoped search
|
|
72
|
+
"path": "<field-to-filter-on>"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Fields
|
|
79
|
+
|
|
80
|
+
The embedding field (`type: "autoEmbed"`) is required. To pre-filter queries, add one or more optional `filter` fields (each with its own `type` and `path`):
|
|
81
|
+
|
|
82
|
+
| Field | Required | Description |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `type` | Yes | `"autoEmbed"` for the embedding field, or `"filter"` for an optional filter field |
|
|
85
|
+
| `modality` | Yes (autoEmbed) | Must be `"text"` (only text is supported currently) |
|
|
86
|
+
| `path` | Yes | For an `autoEmbed` field, the document field containing the text to embed; for a `filter` field, the field to filter on |
|
|
87
|
+
| `model` | Yes (autoEmbed) | The Voyage AI embedding model to use |
|
|
88
|
+
|
|
89
|
+
### Examples
|
|
90
|
+
|
|
91
|
+
**Minimal index (no filters):**
|
|
92
|
+
```javascript
|
|
93
|
+
{
|
|
94
|
+
"fields": [
|
|
95
|
+
{
|
|
96
|
+
"type": "autoEmbed",
|
|
97
|
+
"modality": "text",
|
|
98
|
+
"path": "description",
|
|
99
|
+
"model": "voyage-4"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**With filter fields (recommended for scoped search):**
|
|
106
|
+
```javascript
|
|
107
|
+
{
|
|
108
|
+
"fields": [
|
|
109
|
+
{
|
|
110
|
+
"type": "autoEmbed",
|
|
111
|
+
"modality": "text",
|
|
112
|
+
"path": "description",
|
|
113
|
+
"model": "voyage-4"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "filter",
|
|
117
|
+
"path": "category"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"type": "filter",
|
|
121
|
+
"path": "year"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Creating the Index (mongosh)
|
|
128
|
+
|
|
129
|
+
```javascript
|
|
130
|
+
db.movies.createSearchIndex(
|
|
131
|
+
"<index-name>",
|
|
132
|
+
"vectorSearch",
|
|
133
|
+
{
|
|
134
|
+
"fields": [
|
|
135
|
+
{
|
|
136
|
+
"type": "autoEmbed",
|
|
137
|
+
"modality": "text",
|
|
138
|
+
"path": "<text-field>",
|
|
139
|
+
"model": "voyage-4"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Note:** After creation, MongoDB performs an initial sync — generating embeddings for all existing documents. This can take several hours for large collections. Monitor progress via Atlas → Search & Vector Search.
|
|
147
|
+
|
|
148
|
+
## Query Construction
|
|
149
|
+
|
|
150
|
+
### Key Difference from Manual Vector Search
|
|
151
|
+
|
|
152
|
+
With Automated Embedding, you use **`query`** (a text string) instead of **`queryVector`** (an array of numbers). MongoDB generates the query embedding automatically.
|
|
153
|
+
|
|
154
|
+
### Basic Query Syntax
|
|
155
|
+
|
|
156
|
+
```javascript
|
|
157
|
+
db.collection.aggregate([
|
|
158
|
+
{
|
|
159
|
+
$vectorSearch: {
|
|
160
|
+
index: "<index-name>",
|
|
161
|
+
path: "<text-field>",
|
|
162
|
+
query: "<your search text>", // Plain text — no vector needed
|
|
163
|
+
numCandidates: 100,
|
|
164
|
+
limit: 10
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
$project: {
|
|
169
|
+
_id: 0,
|
|
170
|
+
description: 1,
|
|
171
|
+
score: { $meta: "vectorSearchScore" }
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
])
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Query with Pre-filtering
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
db.collection.aggregate([
|
|
181
|
+
{
|
|
182
|
+
$vectorSearch: {
|
|
183
|
+
index: "<index-name>",
|
|
184
|
+
path: "<text-field>",
|
|
185
|
+
query: "your search text",
|
|
186
|
+
filter: {
|
|
187
|
+
$and: [
|
|
188
|
+
{ category: { $eq: "electronics" } },
|
|
189
|
+
{ year: { $gte: 2022 } }
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
numCandidates: 150,
|
|
193
|
+
limit: 10
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
$project: {
|
|
198
|
+
_id: 0,
|
|
199
|
+
description: 1,
|
|
200
|
+
category: 1,
|
|
201
|
+
score: { $meta: "vectorSearchScore" }
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
])
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Optional: Override the Query Model
|
|
208
|
+
|
|
209
|
+
You can specify a different (but compatible) embedding model at query time:
|
|
210
|
+
|
|
211
|
+
```javascript
|
|
212
|
+
{
|
|
213
|
+
$vectorSearch: {
|
|
214
|
+
index: "<index-name>",
|
|
215
|
+
path: "<text-field>",
|
|
216
|
+
query: "your search text",
|
|
217
|
+
model: "voyage-4-lite", // Must be compatible with the index model
|
|
218
|
+
numCandidates: 100,
|
|
219
|
+
limit: 10
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Item-to-Item Similarity
|
|
225
|
+
|
|
226
|
+
For "given item A, find similar items" requests (e.g. "more movies like The Firm"), remember that `query` accepts **only a plain text string** — there is no raw-vector read path to reuse an existing document's stored embedding for an `autoEmbed` index.
|
|
227
|
+
|
|
228
|
+
Resolve the source item to its indexed text field first, then pass that text as the query:
|
|
229
|
+
|
|
230
|
+
```javascript
|
|
231
|
+
// 1. Fetch the source item's text (the same field indexed as autoEmbed)
|
|
232
|
+
const source = db.movies.findOne(
|
|
233
|
+
{ title: "The Firm" },
|
|
234
|
+
{ projection: { plot: 1 } }
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
// 2. Use that text as the query
|
|
238
|
+
db.movies.aggregate([
|
|
239
|
+
{
|
|
240
|
+
$vectorSearch: {
|
|
241
|
+
index: "<index-name>",
|
|
242
|
+
path: "plot",
|
|
243
|
+
query: source.plot, // the source item's text, not its title
|
|
244
|
+
filter: { _id: { $ne: source._id } }, // exclude the item itself
|
|
245
|
+
numCandidates: 100,
|
|
246
|
+
limit: 10
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
])
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Filter fields must generally be indexed as `type: "filter"` (see the index definition above). `_id` is the one exception — it is implicitly filterable on every `autoEmbed` index, so the self-exclusion `filter` above works without declaring `_id` as a filter field.
|
|
253
|
+
|
|
254
|
+
Passing the item's name (e.g. `query: "The Firm"`) searches for text semantically near that string, not near the item's actual content — pass the content field instead.
|
|
255
|
+
|
|
256
|
+
### Query Parameters Reference
|
|
257
|
+
|
|
258
|
+
| Parameter | Required | Description |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| `index` | Yes | Name of the autoEmbed vector search index |
|
|
261
|
+
| `path` | Yes | The field indexed as `autoEmbed` |
|
|
262
|
+
| `query` | Yes (with autoEmbed) | Plain text query string |
|
|
263
|
+
| `numCandidates` | Yes (for ANN) | Candidates to evaluate; recommend 20x `limit` |
|
|
264
|
+
| `limit` | Yes | Number of results to return |
|
|
265
|
+
| `filter` | No | MQL pre-filter; field must be indexed as `filter` type (except `_id`, which is always filterable) |
|
|
266
|
+
| `model` | No | Override query embedding model (must be compatible) |
|
|
267
|
+
| `exact` | No | `true` for ENN (exact search), omit for ANN |
|
|
268
|
+
|
|
269
|
+
**Note:** Each query call counts against your Automated Embedding rate limits because it triggers an embedding API call.
|
|
270
|
+
|
|
271
|
+
## How It Works Internally
|
|
272
|
+
|
|
273
|
+
### Initial Sync
|
|
274
|
+
1. MongoDB scans all documents in the collection for the indexed text field
|
|
275
|
+
2. Sends text to the Voyage AI model in batches (uses Flex inference tier — no standard rate limits)
|
|
276
|
+
3. Stores embeddings in an internal reserved database: `__mdb_internal_search`
|
|
277
|
+
4. Builds the vector index from the stored embeddings
|
|
278
|
+
|
|
279
|
+
### Ongoing Updates (via Change Streams)
|
|
280
|
+
- **Insert**: New doc detected → embedding generated → stored → index updated
|
|
281
|
+
- **Update**: Changed field detected → new embedding generated → old one replaced → index updated
|
|
282
|
+
- **Delete**: Doc deleted → embeddings removed → index updated
|
|
283
|
+
- Updates to non-indexed fields do **not** trigger embedding regeneration
|
|
284
|
+
|
|
285
|
+
### Embeddings Storage
|
|
286
|
+
Stored in `__mdb_internal_search` (internal namespace — **do not modify this database**).
|
|
287
|
+
|
|
288
|
+
Each stored document has:
|
|
289
|
+
```javascript
|
|
290
|
+
{
|
|
291
|
+
_id: <same as source document>,
|
|
292
|
+
<filter-field>: <copied from source>,
|
|
293
|
+
_autoEmbed: {
|
|
294
|
+
"<fieldPath>": [<embedding vector>]
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Billing and Free Tokens
|
|
300
|
+
|
|
301
|
+
**Token consumption occurs during:**
|
|
302
|
+
- Index creation (initial sync)
|
|
303
|
+
- Document inserts and updates
|
|
304
|
+
- Every query (embedding generated per query)
|
|
305
|
+
|
|
306
|
+
**Free allocation:** 200M tokens per model, per organization. One-time, does not refresh. Shared across all projects and clusters. See [Model Selection](#model-selection) above for per-model pricing after free tokens are used.
|
|
307
|
+
|
|
308
|
+
**View usage:** Atlas → Search & Vector Search → Automated Embedding → Usage
|
|
309
|
+
|
|
310
|
+
**View invoices:** Atlas → Billing → Invoices (broken down by model)
|
|
311
|
+
|
|
312
|
+
**M0 clusters:** When free tokens run out, MongoDB automatically invoices for additional usage — index builds and queries do not stop. M0 users can add a payment method without upgrading their cluster: Atlas → Billing → Payment Method. Charges are for embedding model usage only.
|
|
313
|
+
|
|
314
|
+
## Rate Limits
|
|
315
|
+
|
|
316
|
+
Rate limits are enforced at the **cluster level**, shared across all autoEmbed indexes on that cluster. They are applied **separately** for queries, index inserts/updates, and initial builds.
|
|
317
|
+
|
|
318
|
+
### Initial Index Build
|
|
319
|
+
No standard rate limits — uses a separate inference tier optimized for throughput, with dynamic scaling up to available GPU capacity, fair resource sharing between competing index builds, and safe ramp-up from low concurrency.
|
|
320
|
+
|
|
321
|
+
**Best practice:** create the index on a prepopulated collection rather than an empty one — the initial sync benefits from this unbounded throughput, while steady-state inserts/updates afterward are subject to the rate limits below.
|
|
322
|
+
|
|
323
|
+
### Index Insert/Update Rate Limits (all tiers)
|
|
324
|
+
|
|
325
|
+
| Model | RPM | TPM |
|
|
326
|
+
|---|---|---|
|
|
327
|
+
| `voyage-4-large` | 2,000 | 3,000,000 |
|
|
328
|
+
| `voyage-4` | 2,000 | 8,000,000 |
|
|
329
|
+
| `voyage-4-lite` | 2,000 | 16,000,000 |
|
|
330
|
+
| `voyage-code-3` | 2,000 | 3,000,000 |
|
|
331
|
+
|
|
332
|
+
**Best practice:** space out bulk insert/update operations rather than sending them all at once — batching avoids hitting these per-minute limits.
|
|
333
|
+
|
|
334
|
+
### Query Rate Limits
|
|
335
|
+
|
|
336
|
+
**Free cluster (M0 without a payment method) — all models:**
|
|
337
|
+
|
|
338
|
+
| Model | RPM | TPM |
|
|
339
|
+
|---|---|---|
|
|
340
|
+
| `voyage-4-large` | 3 | 2,000 |
|
|
341
|
+
| `voyage-4` | 3 | 2,000 |
|
|
342
|
+
| `voyage-4-lite` | 3 | 2,000 |
|
|
343
|
+
| `voyage-code-3` | 3 | 2,000 |
|
|
344
|
+
|
|
345
|
+
**Paid cluster (M0 with a payment method, Flex, or M10+ dedicated):**
|
|
346
|
+
|
|
347
|
+
| Model | RPM | TPM |
|
|
348
|
+
|---|---|---|
|
|
349
|
+
| `voyage-4-large` | 2,000 | 3,000,000 |
|
|
350
|
+
| `voyage-4` | 2,000 | 8,000,000 |
|
|
351
|
+
| `voyage-4-lite` | 2,000 | 16,000,000 |
|
|
352
|
+
| `voyage-code-3` | 2,000 | 3,000,000 |
|
|
353
|
+
|
|
354
|
+
Paid-tier limits increase automatically as usage grows over time — no action needed to benefit from that growth.
|
|
355
|
+
|
|
356
|
+
**If rate limits are hit:**
|
|
357
|
+
- Inserts/updates: queued and retried automatically with exponential backoff
|
|
358
|
+
- Queries: return an error — application must handle and retry
|
|
359
|
+
- Free cluster hitting the 3 RPM ceiling: add a payment method to upgrade to paid-tier limits (Atlas → Billing → Payment Method) — this alone raises the ceiling from 3 to 2,000 RPM (~667x), with a correspondingly higher TPM allowance
|
|
360
|
+
- Paid tier still hitting limits: contact MongoDB Support for a limit increase
|
|
361
|
+
|
|
362
|
+
## Management and Monitoring
|
|
363
|
+
|
|
364
|
+
### View Usage (Atlas)
|
|
365
|
+
Atlas → Search & Vector Search page → Automated Embedding → Usage
|
|
366
|
+
|
|
367
|
+
Shows:
|
|
368
|
+
- Total tokens used and remaining free tokens
|
|
369
|
+
- Usage breakdown by model
|
|
370
|
+
- Usage breakdown by operation (indexing vs querying)
|
|
371
|
+
|
|
372
|
+
### View Rate Limits (Atlas)
|
|
373
|
+
Atlas → Search & Vector Search page → Automated Embedding → Rate Limits
|
|
374
|
+
|
|
375
|
+
### View Organization-Level Usage
|
|
376
|
+
Atlas → Organization level → AI Models → Usage
|
|
377
|
+
|
|
378
|
+
### Disable Automated Embedding (Organization Policy)
|
|
379
|
+
Use Atlas Resource Policies with Cedar syntax.
|
|
380
|
+
|
|
381
|
+
**Disable entirely:**
|
|
382
|
+
```
|
|
383
|
+
forbid (
|
|
384
|
+
principal,
|
|
385
|
+
action == ResourcePolicy::Action::"search.index.modify",
|
|
386
|
+
resource
|
|
387
|
+
) when {
|
|
388
|
+
context.search.index.isAutoEmbed
|
|
389
|
+
};
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
**Disable with project-level exceptions** (replace `<project-id-1>`/`<project-id-2>` with actual project IDs):
|
|
393
|
+
```
|
|
394
|
+
forbid (
|
|
395
|
+
principal,
|
|
396
|
+
action == ResourcePolicy::Action::"search.index.modify",
|
|
397
|
+
resource
|
|
398
|
+
) when {
|
|
399
|
+
context.search.index.isAutoEmbed
|
|
400
|
+
} unless {
|
|
401
|
+
resource in ResourcePolicy::Project::"<project-id-1>" ||
|
|
402
|
+
resource in ResourcePolicy::Project::"<project-id-2>"
|
|
403
|
+
};
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
Apply at: Atlas → Organization Settings → Resource Policies → Create policy
|
|
407
|
+
|
|
408
|
+
**Note:** this policy blocks new `autoEmbed` indexes going forward. Existing `autoEmbed` indexes must be deleted manually to bring a project into compliance.
|
|
409
|
+
|
|
410
|
+
## Troubleshooting
|
|
411
|
+
|
|
412
|
+
**Index stuck in Building state / initial sync taking a long time**
|
|
413
|
+
- Normal for large collections — initial sync can take hours
|
|
414
|
+
- Monitor via Atlas → Search & Vector Search → index status
|
|
415
|
+
- Check token consumption hasn't exceeded rate limits
|
|
416
|
+
|
|
417
|
+
**Query returns `context-limit-exceeded` error**
|
|
418
|
+
- Your query text exceeds 32,000 tokens (the model context window)
|
|
419
|
+
- Truncate or shorten your query text before passing it to `$vectorSearch`
|
|
420
|
+
|
|
421
|
+
**Queries return rate limit error**
|
|
422
|
+
- You've exceeded your query RPM or TPM
|
|
423
|
+
- Free tier users: add a payment method to upgrade to paid limits
|
|
424
|
+
- Paid tier users: contact MongoDB Support for a limit increase
|
|
425
|
+
- Short term: implement retry with backoff in your application
|
|
426
|
+
|
|
427
|
+
**No results returned**
|
|
428
|
+
- Check the index status is `READY` (not `Building` or `Failed`)
|
|
429
|
+
- Verify the `path` in the query matches the `path` in the index definition
|
|
430
|
+
- Verify the `index` name matches exactly (typos return no results silently)
|
|
431
|
+
|
|
432
|
+
**Missing embeddings for some documents**
|
|
433
|
+
- Documents inserted before the index was created are synced during initial sync — check if sync is still in progress
|
|
434
|
+
- Documents without the indexed text field are skipped (no embedding generated)
|
|
435
|
+
|
|
436
|
+
**`__mdb_internal_search` database appearing in Data Explorer**
|
|
437
|
+
- This is normal — it's the internal storage for generated embeddings
|
|
438
|
+
- Do not modify or delete collections in this database
|