Files
skill-seekers-reference/docs/GEMINI_INTEGRATION.md
yusyus e03789635d docs: Phase 6 - Add comprehensive multi-LLM platform documentation
Add three detailed platform guides:

1. **MULTI_LLM_SUPPORT.md** - Complete multi-platform overview
   - Supported platforms comparison table
   - Quick start for all platforms
   - Installation options
   - Complete workflow examples
   - Advanced usage and troubleshooting
   - Programmatic API usage examples

2. **GEMINI_INTEGRATION.md** - Google Gemini integration guide
   - Setup and API key configuration
   - Complete workflow with tar.gz packaging
   - Gemini-specific format differences
   - Files API + grounding usage
   - Cost estimation and best practices
   - Troubleshooting common issues

3. **OPENAI_INTEGRATION.md** - OpenAI ChatGPT integration guide
   - Setup and API key configuration
   - Complete workflow with Assistants API
   - Vector Store + file_search integration
   - Assistant instructions format
   - Cost estimation and best practices
   - Troubleshooting common issues

All guides include:
- Code examples for CLI and Python API
- Platform-specific features and differences
- Real-world usage patterns
- Troubleshooting sections
- Best practices

Related to #179
2025-12-28 20:40:04 +03:00

436 lines
9.4 KiB
Markdown

# Google Gemini Integration Guide
Complete guide for creating and deploying skills to Google Gemini using Skill Seekers.
## Overview
Skill Seekers packages documentation into Gemini-compatible formats optimized for:
- **Gemini 2.0 Flash** for enhancement
- **Files API** for document upload
- **Grounding** for accurate, source-based responses
## Setup
### 1. Install Gemini Support
```bash
# Install with Gemini dependencies
pip install skill-seekers[gemini]
# Verify installation
pip list | grep google-generativeai
```
### 2. Get Google API Key
1. Visit [Google AI Studio](https://aistudio.google.com/)
2. Click "Get API Key"
3. Create new API key or use existing
4. Copy the key (starts with `AIza`)
### 3. Configure API Key
```bash
# Set as environment variable (recommended)
export GOOGLE_API_KEY=AIzaSy...
# Or pass directly to commands
skill-seekers upload --target gemini --api-key AIzaSy...
```
## Complete Workflow
### Step 1: Scrape Documentation
```bash
# Use any config (scraping is platform-agnostic)
skill-seekers scrape --config configs/react.json
# Or use a unified config for multi-source
skill-seekers unified --config configs/react_unified.json
```
**Result:** `output/react/` skill directory with references
### Step 2: Enhance with Gemini (Optional but Recommended)
```bash
# Enhance SKILL.md using Gemini 2.0 Flash
skill-seekers enhance output/react/ --target gemini
# With API key specified
skill-seekers enhance output/react/ --target gemini --api-key AIzaSy...
```
**What it does:**
- Analyzes all reference documentation
- Extracts 5-10 best code examples
- Creates comprehensive quick reference
- Adds key concepts and usage guidance
- Generates plain markdown (no YAML frontmatter)
**Time:** 20-40 seconds
**Cost:** ~$0.01-0.05 (using Gemini 2.0 Flash)
**Quality boost:** 3/10 → 9/10
### Step 3: Package for Gemini
```bash
# Create tar.gz package for Gemini
skill-seekers package output/react/ --target gemini
# Result: react-gemini.tar.gz
```
**Package structure:**
```
react-gemini.tar.gz/
├── system_instructions.md # Main documentation (plain markdown)
├── references/ # Individual reference files
│ ├── getting_started.md
│ ├── hooks.md
│ ├── components.md
│ └── ...
└── gemini_metadata.json # Platform metadata
```
### Step 4: Upload to Gemini
```bash
# Upload to Google AI Studio
skill-seekers upload react-gemini.tar.gz --target gemini
# With API key
skill-seekers upload react-gemini.tar.gz --target gemini --api-key AIzaSy...
```
**Output:**
```
✅ Upload successful!
Skill ID: files/abc123xyz
URL: https://aistudio.google.com/app/files/abc123xyz
Files uploaded: 15 files
```
### Step 5: Use in Gemini
Access your uploaded files in Google AI Studio:
1. Go to [Google AI Studio](https://aistudio.google.com/)
2. Navigate to **Files** section
3. Find your uploaded skill files
4. Use with Gemini API or AI Studio
## What Makes Gemini Different?
### Format: Plain Markdown (No YAML)
**Claude format:**
```markdown
---
name: react
description: React framework
---
# React Documentation
...
```
**Gemini format:**
```markdown
# React Documentation
**Description:** React framework for building user interfaces
## Quick Reference
...
```
No YAML frontmatter - Gemini uses plain markdown for better compatibility.
### Package: tar.gz Instead of ZIP
Gemini uses `.tar.gz` compression for better Unix compatibility and smaller file sizes.
### Upload: Files API + Grounding
Files are uploaded to Google's Files API and made available for grounding in Gemini responses.
## Using Your Gemini Skill
### Option 1: Google AI Studio (Web UI)
1. Go to [Google AI Studio](https://aistudio.google.com/)
2. Create new chat or app
3. Reference your uploaded files in prompts:
```
Using the React documentation files, explain hooks
```
### Option 2: Gemini API (Python)
```python
import google.generativeai as genai
# Configure with your API key
genai.configure(api_key='AIzaSy...')
# Create model
model = genai.GenerativeModel('gemini-2.0-flash-exp')
# Use with uploaded files (automatic grounding)
response = model.generate_content(
"How do I use React hooks?",
# Files automatically available via grounding
)
print(response.text)
```
### Option 3: Gemini API with File Reference
```python
import google.generativeai as genai
# Configure
genai.configure(api_key='AIzaSy...')
# Get your uploaded file
files = genai.list_files()
react_file = next(f for f in files if 'react' in f.display_name.lower())
# Use file in generation
model = genai.GenerativeModel('gemini-2.0-flash-exp')
response = model.generate_content([
"Explain React hooks in detail",
react_file
])
print(response.text)
```
## Advanced Usage
### Enhance with Custom Prompt
The enhancement process can be customized by modifying the adaptor:
```python
from skill_seekers.cli.adaptors import get_adaptor
from pathlib import Path
# Get Gemini adaptor
adaptor = get_adaptor('gemini')
# Enhance with custom parameters
success = adaptor.enhance(
skill_dir=Path('output/react'),
api_key='AIzaSy...'
)
```
### Programmatic Upload
```python
from skill_seekers.cli.adaptors import get_adaptor
from pathlib import Path
# Get adaptor
gemini = get_adaptor('gemini')
# Package skill
package_path = gemini.package(
skill_dir=Path('output/react'),
output_path=Path('output/react-gemini.tar.gz')
)
# Upload
result = gemini.upload(
package_path=package_path,
api_key='AIzaSy...'
)
if result['success']:
print(f"✅ Uploaded to: {result['url']}")
print(f"Skill ID: {result['skill_id']}")
else:
print(f"❌ Upload failed: {result['message']}")
```
### Manual Package Extraction
If you want to inspect or modify the package:
```bash
# Extract tar.gz
tar -xzf react-gemini.tar.gz -C extracted/
# View structure
tree extracted/
# Modify files if needed
nano extracted/system_instructions.md
# Re-package
tar -czf react-gemini-modified.tar.gz -C extracted .
```
## Gemini-Specific Features
### 1. Grounding Support
Gemini automatically grounds responses in your uploaded documentation files, providing:
- Source attribution
- Accurate citations
- Reduced hallucination
### 2. Multimodal Capabilities
Gemini can process:
- Text documentation
- Code examples
- Images (if included in PDFs)
- Tables and diagrams
### 3. Long Context Window
Gemini 2.0 Flash supports:
- Up to 1M token context
- Entire documentation sets in single context
- Better understanding of cross-references
## Troubleshooting
### Issue: `google-generativeai not installed`
**Solution:**
```bash
pip install skill-seekers[gemini]
```
### Issue: `Invalid API key format`
**Error:** API key doesn't start with `AIza`
**Solution:**
- Get new key from [Google AI Studio](https://aistudio.google.com/)
- Verify you're using Google API key, not GCP service account
### Issue: `Not a tar.gz file`
**Error:** Wrong package format
**Solution:**
```bash
# Use --target gemini for tar.gz format
skill-seekers package output/react/ --target gemini
# NOT:
skill-seekers package output/react/ # Creates .zip (Claude format)
```
### Issue: `File upload failed`
**Possible causes:**
- API key lacks permissions
- File too large (check limits)
- Network connectivity
**Solution:**
```bash
# Verify API key works
python3 -c "import google.generativeai as genai; genai.configure(api_key='AIza...'); print(list(genai.list_models())[:2])"
# Check file size
ls -lh react-gemini.tar.gz
# Try with verbose output
skill-seekers upload react-gemini.tar.gz --target gemini --verbose
```
### Issue: Enhancement fails
**Solution:**
```bash
# Check API quota
# Visit: https://aistudio.google.com/apikey
# Try with smaller skill
skill-seekers enhance output/react/ --target gemini --max-files 5
# Use without enhancement
skill-seekers package output/react/ --target gemini
# (Skip enhancement step)
```
## Best Practices
### 1. Organize Documentation
Structure your SKILL.md clearly:
- Start with overview
- Add quick reference section
- Group related concepts
- Include practical examples
### 2. Optimize File Count
- Combine related topics into single files
- Use clear file naming
- Keep total under 100 files for best performance
### 3. Test with Gemini
After upload, test with sample questions:
```
1. How do I get started with [topic]?
2. What are the core concepts?
3. Show me a practical example
4. What are common pitfalls?
```
### 4. Update Regularly
```bash
# Re-scrape updated documentation
skill-seekers scrape --config configs/react.json
# Re-enhance and upload
skill-seekers enhance output/react/ --target gemini
skill-seekers package output/react/ --target gemini
skill-seekers upload react-gemini.tar.gz --target gemini
```
## Cost Estimation
**Gemini 2.0 Flash pricing:**
- Input: $0.075 per 1M tokens
- Output: $0.30 per 1M tokens
**Typical skill enhancement:**
- Input: ~50K-200K tokens (docs)
- Output: ~5K-10K tokens (enhanced SKILL.md)
- Cost: $0.01-0.05 per skill
**File upload:** Free (no per-file charges)
## Next Steps
1. ✅ Install Gemini support: `pip install skill-seekers[gemini]`
2. ✅ Get API key from Google AI Studio
3. ✅ Scrape your documentation
4. ✅ Enhance with Gemini
5. ✅ Package for Gemini
6. ✅ Upload and test
## Resources
- [Google AI Studio](https://aistudio.google.com/)
- [Gemini API Documentation](https://ai.google.dev/docs)
- [Gemini Pricing](https://ai.google.dev/pricing)
- [Multi-LLM Support Guide](MULTI_LLM_SUPPORT.md)
## Feedback
Found an issue or have suggestions? [Open an issue](https://github.com/yusufkaraaslan/Skill_Seekers/issues)