| name | ai-tools |
| description | AI/ML utilities including embeddings generation, vision analysis, text-to-speech, and structured output extraction. Supports Anthropic Claude, OpenAI, and compatible APIs. |
AI Tools
Modern AI/ML capabilities for embeddings, vision, speech, and structured data extraction.
Prerequisites
Requires one of these environment variables:
ANTHROPIC_API_KEY - For Claude models
OPENAI_API_KEY - For OpenAI models
AI_GATEWAY_API_KEY + AI_GATEWAY_BASE_URL - For Cloudflare AI Gateway
Quick Start
Generate Embeddings
node /path/to/skills/ai-tools/scripts/embeddings.js "Your text to embed"
Analyze Image
node /path/to/skills/ai-tools/scripts/vision.js /path/to/image.png "Describe this image"
Extract Structured Data
node /path/to/skills/ai-tools/scripts/extract.js "John Doe, 30 years old, lives in NYC" --schema '{"name":"string","age":"number","city":"string"}'
Scripts
embeddings.js
Generate vector embeddings for semantic search and RAG.
Usage:
node embeddings.js <text> [OPTIONS]
Options:
--model <model> - Embedding model (default: text-embedding-3-small)
--dimensions <n> - Output dimensions (default: 1536)
--output <file> - Save embeddings to file
vision.js
Analyze images using multimodal AI models.
Usage:
node vision.js <image> <prompt> [OPTIONS]
Arguments:
<image> - Path to image file or URL
<prompt> - Question or instruction about the image
Options:
--model <model> - Vision model (default: claude-3-5-sonnet-20241022)
--detail <level> - Image detail: auto, low, high (default: auto)
extract.js
Extract structured data from unstructured text.
Usage:
node extract.js <text> --schema <json_schema>
Options:
--schema <json> - JSON schema defining expected output structure
--model <model> - Model to use (default: claude-3-5-sonnet-20241022)
summarize.js
Intelligent text summarization with configurable length.
Usage:
node summarize.js <text|file> [OPTIONS]
Options:
--length <words> - Target summary length (default: 100)
--style <style> - Style: brief, detailed, bullets (default: brief)
--file - Treat input as file path
sentiment.js
Analyze sentiment and emotional tone.
Usage:
node sentiment.js <text>
Examples
Semantic Search Embeddings
node embeddings.js "Machine learning is transforming healthcare" --output embedding.json
Image Description
node vision.js screenshot.png "What UI elements are visible? List any errors."
Extract Contact Info
node extract.js "Contact Sarah at sarah@example.com or call 555-0123" \
--schema '{"name":"string","email":"string","phone":"string"}'
Summarize Article
node summarize.js article.txt --file --length 50 --style bullets
Output Formats
embeddings.js
{
"model": "text-embedding-3-small",
"dimensions": 1536,
"embedding": [0.123, -0.456, ...],
"usage": { "tokens": 8 }
}
vision.js
{
"model": "claude-3-5-sonnet-20241022",
"analysis": "The image shows...",
"usage": { "input_tokens": 1200, "output_tokens": 150 }
}
extract.js
{
"extracted": { "name": "John", "age": 30, "city": "NYC" },
"confidence": 0.95
}
Supported Models
Embeddings
text-embedding-3-small (OpenAI)
text-embedding-3-large (OpenAI)
@cf/baai/bge-base-en-v1.5 (Cloudflare)
Vision
claude-3-5-sonnet-20241022 (Anthropic)
claude-3-opus-20240229 (Anthropic)
gpt-4o (OpenAI)
gpt-4o-mini (OpenAI)
Text
claude-3-5-sonnet-20241022 (Anthropic)
claude-3-5-haiku-20241022 (Anthropic)
gpt-4o (OpenAI)
gpt-4o-mini (OpenAI)