Embed Skill
Embeds a text question using gemini-embedding-001 (Vertex AI, project mozdata) and returns the resulting vector as a JSON array.
Usage
python "${CLAUDE_PLUGIN_ROOT:?set by the plugin system; if empty, invoke this via the Skill tool}"/skills/embed/scripts/embed.py --question "<your question>"
`` Output is a JSON array of 3072 floats printed to stdout:
[0.012, -0.034, 0.091, ...]
Steps
- Run the script with the user's question as
--question. - Capture stdout — that is the embedding vector.
- Return or pass the vector as needed (e.g. to the
vector-searchskill).
Authentication
This skill connects to Vertex AI using a service account — the cloud-platform scope is enforced on the impersonated token in code. Just log in:
gcloud auth application-default login
Your authenticated Google Cloud credentials are only used to create a new and temporary access token on behalf of the service account defined in SERVICE_ACCOUNT, which requires the roles/iam.serviceAccountTokenCreator role on that service account. Your login no longer needs --scopes.
Troubleshooting
| Symptom | Fix |
|---|---|
GCP authentication required / API error 401 |
Re-run gcloud auth application-default login; confirm you have roles/iam.serviceAccountTokenCreator on the service account in SERVICE_ACCOUNT |
Missing dependency |
pip install google-auth requests |
Unexpected response from Vertex AI |
Confirm Vertex AI is enabled in project mozdata and the embedding model is available |