Feat : Gitbook

This commit is contained in:
decolua
2026-05-11 11:50:24 +07:00
parent 7ad538bcf2
commit fd92af77a0
124 changed files with 34154 additions and 4 deletions
@@ -0,0 +1,109 @@
# Integración con Claude Code
Integra 9Router con Claude Code CLI para enrutar tus solicitudes de la API de Anthropic a través del sistema de enrutamiento inteligente de 9Router.
## Requisitos previos
- Claude Code CLI instalado
- 9Router ejecutándose localmente o endpoint en la nube configurado
- API key del dashboard de 9Router
## Configuración
### 1. Configurar variables de entorno
Establece las siguientes variables de entorno en tu archivo de configuración del shell (`~/.bashrc`, `~/.zshrc`, o `~/.bash_profile`):
```bash
# Base URL for 9Router
export ANTHROPIC_BASE_URL="http://localhost:20128/v1"
# Optional: Set default models for aliases
export ANTHROPIC_DEFAULT_OPUS_MODEL="cc/claude-opus-4-5-20251101"
export ANTHROPIC_DEFAULT_SONNET_MODEL="cc/claude-sonnet-4-5-20250929"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="cc/claude-haiku-4-5-20251001"
```
### 2. Recargar la configuración del shell
```bash
source ~/.zshrc # o ~/.bashrc
```
### 3. Verificar la configuración
Verifica que las variables de entorno estén configuradas correctamente:
```bash
echo $ANTHROPIC_BASE_URL
```
## Aliases de modelos
Claude Code soporta los siguientes aliases de modelos que mapean a modelos de 9Router:
| Alias | Modelo | Variable de entorno |
|-------|-------|---------------------|
| `opus` | Claude Opus 4.5 | `ANTHROPIC_DEFAULT_OPUS_MODEL` |
| `sonnet` | Claude Sonnet 4.5 | `ANTHROPIC_DEFAULT_SONNET_MODEL` |
| `haiku` | Claude Haiku 4.5 | `ANTHROPIC_DEFAULT_HAIKU_MODEL` |
## Ejemplos de uso
### Usando aliases de modelos
```bash
# Usar modelo Opus
claude --model opus "Explain quantum computing"
# Usar modelo Sonnet
claude --model sonnet "Write a Python function"
# Usar modelo Haiku
claude --model haiku "Quick code review"
```
### Usando nombres completos de modelos
```bash
claude --model cc/claude-opus-4-5-20251101 "Your prompt here"
```
## Archivo de configuración
Claude Code almacena su configuración en `~/.claude/settings.json`. Puedes editar este archivo manualmente si es necesario:
```json
{
"baseUrl": "http://localhost:20128/v1",
"defaultModel": "sonnet"
}
```
## Solución de problemas
### Problemas de conexión
Si encuentras errores de conexión:
1. Verifica que 9Router esté corriendo: `curl http://localhost:20128/health`
2. Verifica que las variables de entorno estén configuradas correctamente
3. Asegúrate de que ningún firewall esté bloqueando el puerto 20128
### Modelo no encontrado
Si obtienes errores de "modelo no encontrado":
1. Verifica que el nombre del modelo coincida con tu configuración de 9Router
2. Verifica que la conexión del proveedor esté activa en el dashboard de 9Router
3. Asegúrate de que el modelo esté disponible en tus proveedores conectados
## Endpoint en la nube
Para usar el endpoint en la nube de 9Router en lugar de localhost:
```bash
export ANTHROPIC_BASE_URL="https://9router.com"
```
Asegúrate de haber configurado tu API key en el dashboard en la nube de 9Router.
+201
View File
@@ -0,0 +1,201 @@
# Integración con Cline
Integra 9Router con la extensión Cline de VSCode para enrutar tus solicitudes de IA a través del sistema de enrutamiento inteligente de 9Router.
## Requisitos previos
- Visual Studio Code instalado
- Extensión Cline instalada desde el marketplace de VSCode
- 9Router ejecutándose localmente o endpoint en la nube configurado
- API key del dashboard de 9Router
## Configuración
### 1. Abrir la configuración de Cline
1. Abre Visual Studio Code
2. Abre el panel de la extensión Cline (clic en el ícono de Cline en la barra lateral)
3. Clic en el ícono de **Settings** (engranaje) en el panel de Cline
### 2. Seleccionar el proveedor de API
1. En la configuración de Cline, encuentra el dropdown **API Provider**
2. Selecciona **Ollama** de la lista
- Nota: Usamos el tipo de proveedor Ollama porque es compatible con APIs estilo OpenAI
### 3. Configurar Base URL
Establece la URL base a tu endpoint de 9Router:
**Para 9Router local:**
```
http://localhost:20128/v1
```
**Para 9Router en la nube:**
```
https://9router.com
```
**Pasos:**
1. En el campo **Base URL**, ingresa tu endpoint de 9Router
2. Asegúrate de incluir `/v1` al final
### 4. Agregar API Key
1. En el campo **API Key**, ingresa tu API key de 9Router
2. Puedes encontrar tu API key en el dashboard de 9Router en **Settings → API Keys**
3. La key debe comenzar con `sk-9router-`
### 5. Seleccionar modelo
1. En el dropdown **Model**, puedes:
- Seleccionar de los modelos disponibles (si Cline los auto-detecta)
- Ingresar manualmente el nombre del modelo desde tu configuración de 9Router
2. Nombres comunes de modelos:
- `gpt-4`
- `gpt-4o`
- `claude-opus-4-5`
- `claude-sonnet-4-5`
- `gemini-2.0-flash`
### 6. Guardar la configuración
Clic en **Save** o cierra el panel de configuración. Cline guardará automáticamente tu configuración.
## Ejemplo de configuración
Tu configuración de Cline debería verse así:
```
API Provider: Ollama
Base URL: http://localhost:20128/v1
API Key: sk-9router-xxxxxxxxxxxxx
Model: gpt-4
```
## Modelos disponibles
Puedes usar cualquier modelo configurado en tu dashboard de 9Router. Ejemplos comunes:
| Nombre del modelo | Proveedor | Descripción |
|------------|----------|-------------|
| `gpt-4` | OpenAI | GPT-4 Turbo |
| `gpt-4o` | OpenAI | GPT-4 Optimized |
| `claude-opus-4-5` | Anthropic | Claude Opus 4.5 |
| `claude-sonnet-4-5` | Anthropic | Claude Sonnet 4.5 |
| `gemini-2.0-flash` | Google | Gemini 2.0 Flash |
## Uso
### Chat con IA
1. Abre el panel de Cline en VSCode
2. Escribe tu mensaje en el input del chat
3. Presiona Enter para enviar
4. Cline usará 9Router para procesar tu solicitud
### Generación de código
1. Pide a Cline que genere código: "Create a React component for a login form"
2. Cline generará código usando 9Router
3. Revisa y acepta el código generado
### Explicación de código
1. Selecciona código en tu editor
2. Pregunta a Cline: "Explain this code"
3. Obtén explicaciones potenciadas por IA a través de 9Router
### Operaciones con archivos
1. Pide a Cline que cree, modifique o elimine archivos
2. Cline usará 9Router para entender el contexto y hacer cambios
3. Revisa los cambios antes de aceptar
## Solución de problemas
### Error "Connection Failed"
1. Verifica que 9Router esté corriendo: `curl http://localhost:20128/health`
2. Verifica que la URL base sea correcta e incluya `/v1`
3. Asegúrate de que ningún firewall esté bloqueando el puerto 20128
4. Intenta reiniciar VSCode
### Error "Invalid API Key"
1. Verifica tu API key en el dashboard de 9Router
2. Asegúrate de haber copiado la key completa incluyendo el prefijo `sk-9router-`
3. Verifica que la API key no haya expirado
4. Intenta regenerar una nueva API key
### Error "Model Not Found"
1. Verifica que el nombre del modelo coincida exactamente con tu configuración de 9Router
2. Verifica que la conexión del proveedor esté activa en el dashboard de 9Router
3. Asegúrate de que el modelo esté disponible en tus proveedores conectados
4. Intenta usar el nombre completo del modelo (ej. `openai/gpt-4` en lugar de `gpt-4`)
### Cline no responde
1. Revisa el panel de output de Cline para mensajes de error
2. Verifica que tu instancia de 9Router esté ejecutándose y saludable
3. Intenta recargar la ventana de VSCode (Cmd/Ctrl + Shift + P → "Reload Window")
4. Revisa los logs de 9Router para cualquier error
## Configuración avanzada
### Usar endpoint en la nube
Para usar el endpoint en la nube de 9Router en lugar de localhost:
1. En la configuración de Cline, establece Base URL a: `https://9router.com`
2. Asegúrate de haber configurado tu API key en el dashboard en la nube de 9Router
3. Asegúrate de que tu endpoint en la nube esté activo y accesible
### Múltiples modelos
Puedes cambiar rápidamente entre modelos:
1. Abre la configuración de Cline
2. Cambia el campo **Model** a otro modelo
3. Guarda y continúa chateando con el nuevo modelo
### Timeout personalizado
Si experimentas problemas de timeout con solicitudes grandes:
1. Abre la configuración de VSCode (Cmd/Ctrl + ,)
2. Busca "Cline timeout"
3. Aumenta el valor de timeout (por defecto suele ser 30 segundos)
## Mejores prácticas
1. **Usa modelos apropiados**: Elige modelos rápidos (como Haiku o Flash) para tareas simples, y modelos más potentes (como Opus o GPT-4) para tareas complejas
2. **Monitorea el uso**: Revisa el dashboard de 9Router para estadísticas de uso y costos
3. **Gestión de contexto**: Mantén tus conversaciones enfocadas para reducir el uso de tokens
4. **Cambio de modelo**: Cambia modelos según la complejidad de la tarea para optimizar costo y rendimiento
5. **Seguridad de API Key**: Nunca subas tu API key al control de versiones
## Integración con características de 9Router
### Enrutamiento de modelos
9Router enruta automáticamente tus solicitudes al mejor proveedor disponible según:
- Disponibilidad del modelo
- Estado de salud del proveedor
- Optimización de costos
- Balanceo de carga
### Soporte de fallback
Si un proveedor falla, 9Router automáticamente cambia a proveedores alternativos configurados en tu dashboard.
### Seguimiento de uso
Monitorea tu uso de Cline a través del dashboard de 9Router:
- Total de solicitudes
- Uso de tokens
- Costo por modelo
- Distribución por proveedor
+136
View File
@@ -0,0 +1,136 @@
# Integración con OpenAI Codex CLI
Integra 9Router con OpenAI Codex CLI para enrutar tus solicitudes de la API de OpenAI a través del sistema de enrutamiento inteligente de 9Router.
## Requisitos previos
- OpenAI Codex CLI instalado
- 9Router ejecutándose localmente o endpoint en la nube configurado
- API key del dashboard de 9Router
## Configuración
### 1. Configurar variables de entorno
Establece las siguientes variables de entorno en tu archivo de configuración del shell (`~/.bashrc`, `~/.zshrc`, o `~/.bash_profile`):
```bash
# Base URL for 9Router
export OPENAI_BASE_URL="http://localhost:20128/v1"
# API Key from 9Router dashboard
export OPENAI_API_KEY="your-9router-api-key"
```
### 2. Recargar la configuración del shell
```bash
source ~/.zshrc # o ~/.bashrc
```
### 3. Verificar la configuración
Verifica que las variables de entorno estén configuradas correctamente:
```bash
echo $OPENAI_BASE_URL
echo $OPENAI_API_KEY
```
## Modelos disponibles
9Router proporciona los siguientes modelos de Codex:
| ID del modelo | Descripción |
|----------|-------------|
| `cx/gpt-5.2-codex` | GPT-5.2 Codex - Última versión |
| `cx/gpt-5.1-codex-max` | GPT-5.1 Codex Max - Contexto extendido |
## Ejemplos de uso
### Uso básico
```bash
# Usar GPT-5.2 Codex
codex --model cx/gpt-5.2-codex "Write a function to sort an array"
# Usar GPT-5.1 Codex Max
codex --model cx/gpt-5.1-codex-max "Explain this complex algorithm"
```
### Generación de código
```bash
codex --model cx/gpt-5.2-codex "Create a REST API endpoint for user authentication"
```
### Explicación de código
```bash
codex --model cx/gpt-5.1-codex-max "Explain what this code does: $(cat myfile.js)"
```
## Archivo de configuración
También puedes configurar Codex CLI usando un archivo de configuración. Crea o edita `~/.codex/config.json`:
```json
{
"baseUrl": "http://localhost:20128/v1",
"apiKey": "your-9router-api-key",
"defaultModel": "cx/gpt-5.2-codex"
}
```
## Solución de problemas
### Errores de autenticación
Si encuentras errores de autenticación:
1. Verifica que tu API key sea correcta en el dashboard de 9Router
2. Verifica que la variable de entorno `OPENAI_API_KEY` esté configurada
3. Asegúrate de que la API key no haya expirado
### Problemas de conexión
Si encuentras errores de conexión:
1. Verifica que 9Router esté corriendo: `curl http://localhost:20128/health`
2. Verifica que las variables de entorno estén configuradas correctamente
3. Asegúrate de que ningún firewall esté bloqueando el puerto 20128
### Modelo no disponible
Si obtienes errores de "modelo no disponible":
1. Verifica que el nombre del modelo coincida con tu configuración de 9Router
2. Verifica que la conexión del proveedor de OpenAI esté activa en el dashboard de 9Router
3. Asegúrate de que el modelo esté disponible en tus proveedores conectados
## Endpoint en la nube
Para usar el endpoint en la nube de 9Router en lugar de localhost:
```bash
export OPENAI_BASE_URL="https://9router.com"
```
Asegúrate de haber configurado tu API key en el dashboard en la nube de 9Router.
## Configuración avanzada
### Timeout personalizado
```bash
export OPENAI_TIMEOUT=60 # segundos
```
### Modo debug
Habilita el modo debug para ver logs detallados de request/response:
```bash
export CODEX_DEBUG=true
codex --model cx/gpt-5.2-codex "Your prompt"
```
+249
View File
@@ -0,0 +1,249 @@
# Integración con la extensión Continue de VSCode
Integra 9Router con la extensión Continue para llevar la asistencia de IA directamente a Visual Studio Code.
## Requisitos previos
- Visual Studio Code instalado
- Extensión Continue instalada desde el marketplace de VSCode
- API key de 9Router desde el [dashboard](https://9router.com/dashboard)
- 9Router ejecutándose (local o en la nube)
## Pasos de configuración
### 1. Abrir la configuración de Continue
1. Abre VSCode
2. Presiona `Cmd+Shift+P` (Mac) o `Ctrl+Shift+P` (Windows/Linux)
3. Escribe "Continue: Open Config" y selecciónalo
4. Esto abre `~/.continue/config.json`
### 2. Agregar configuración de modelo de 9Router
Agrega la siguiente configuración a tu `config.json`:
**Configuración de un solo modelo:**
```json
{
"models": [
{
"title": "9Router - Claude Opus",
"provider": "openai",
"model": "cc/claude-opus-4-5-20251101",
"apiKey": "your-api-key-from-dashboard",
"apiBase": "http://localhost:20128/v1"
}
]
}
```
**Configuración de múltiples modelos:**
```json
{
"models": [
{
"title": "9Router - Claude Opus (Best)",
"provider": "openai",
"model": "cc/claude-opus-4-5-20251101",
"apiKey": "your-api-key-from-dashboard",
"apiBase": "http://localhost:20128/v1"
},
{
"title": "9Router - Claude Sonnet (Balanced)",
"provider": "openai",
"model": "cc/claude-sonnet-4-20250514",
"apiKey": "your-api-key-from-dashboard",
"apiBase": "http://localhost:20128/v1"
},
{
"title": "9Router - DeepSeek Chat (Code)",
"provider": "openai",
"model": "cx/deepseek-chat",
"apiKey": "your-api-key-from-dashboard",
"apiBase": "http://localhost:20128/v1"
},
{
"title": "9Router - Claude Haiku (Fast)",
"provider": "openai",
"model": "cc/claude-haiku-4-20250514",
"apiKey": "your-api-key-from-dashboard",
"apiBase": "http://localhost:20128/v1"
}
]
}
```
**Para 9Router en la nube:**
Reemplaza `apiBase` con:
```json
"apiBase": "https://9router.com/v1"
```
### 3. Guardar y recargar
1. Guarda el archivo de configuración
2. Recarga la ventana de VSCode: `Cmd+Shift+P` → "Developer: Reload Window"
3. La extensión Continue cargará la nueva configuración
### 4. Seleccionar modelo
1. Abre la barra lateral de Continue (clic en el ícono de Continue en el panel izquierdo)
2. Clic en el dropdown selector de modelo en la parte superior
3. Elige tu modelo preferido de 9Router
## Modelos disponibles
### Modelos Claude (Anthropic)
- `cc/claude-opus-4-5-20251101` - El más capaz, ideal para tareas complejas
- `cc/claude-sonnet-4-20250514` - Rendimiento y velocidad equilibrados
- `cc/claude-haiku-4-20250514` - El más rápido, bueno para tareas simples
### Modelos DeepSeek
- `cx/deepseek-chat` - Excelente para generación de código
- `cx/deepseek-reasoner` - Mejor para resolución de problemas complejos
### Modelos GLM (Zhipu AI)
- `glm/glm-4-plus` - Chino e inglés avanzado
- `glm/glm-4-flash` - Respuestas rápidas
## Ejemplos de uso
### Explicación de código
1. Selecciona código en el editor
2. Abre la barra lateral de Continue
3. Escribe: "Explain this code"
4. Modelo: `cc/claude-sonnet-4-20250514`
### Generación de código
1. Abre la barra lateral de Continue
2. Escribe: "Create a React component for user profile card"
3. Modelo: `cx/deepseek-chat`
### Refactorización
1. Selecciona código para refactorizar
2. Escribe: "Refactor this to use async/await"
3. Modelo: `cc/claude-sonnet-4-20250514`
### Corrección de bugs
1. Selecciona código problemático
2. Escribe: "Find and fix the bug in this code"
3. Modelo: `cx/deepseek-reasoner`
## Configuración avanzada
### Prompts de sistema personalizados
Agrega prompts de sistema personalizados para comportamientos específicos:
```json
{
"models": [
{
"title": "9Router - Code Expert",
"provider": "openai",
"model": "cx/deepseek-chat",
"apiKey": "your-api-key",
"apiBase": "http://localhost:20128/v1",
"systemMessage": "You are an expert programmer. Always provide clean, well-documented code with best practices."
}
]
}
```
### Temperatura y parámetros
Ajusta el comportamiento del modelo con parámetros:
```json
{
"models": [
{
"title": "9Router - Creative Writer",
"provider": "openai",
"model": "cc/claude-opus-4-5-20251101",
"apiKey": "your-api-key",
"apiBase": "http://localhost:20128/v1",
"temperature": 0.9,
"topP": 0.95
}
]
}
```
### Proveedores de contexto
Configura qué contexto envía Continue al modelo:
```json
{
"contextProviders": [
{
"name": "code",
"params": {
"maxLines": 100
}
},
{
"name": "diff",
"params": {}
},
{
"name": "terminal",
"params": {}
}
]
}
```
## Atajos de teclado
- `Cmd+L` (Mac) / `Ctrl+L` (Windows/Linux) - Abrir chat de Continue
- `Cmd+I` (Mac) / `Ctrl+I` (Windows/Linux) - Edición inline
- `Cmd+Shift+R` (Mac) / `Ctrl+Shift+R` (Windows/Linux) - Regenerar respuesta
## Solución de problemas
### El modelo no responde
- Verifica que 9Router esté corriendo: `curl http://localhost:20128/health`
- Verifica la API key en config.json
- Revisa la consola de desarrollador de VSCode por errores: `Help``Toggle Developer Tools`
### Modelo incorrecto seleccionado
- Clic en el dropdown de modelo en la barra lateral de Continue
- Selecciona el modelo correcto de 9Router
- El nombre del modelo debe coincidir exactamente (sensible a mayúsculas)
### La configuración no se carga
- Verifica que la sintaxis JSON sea válida (usa un validador de JSON)
- Verifica la ubicación del archivo: `~/.continue/config.json`
- Recarga la ventana de VSCode después de cambios
### Rendimiento lento
- Cambia a modelos más rápidos (haiku, flash)
- Reduce el tamaño del contexto en contextProviders
- Verifica la latencia de red hacia 9Router
## Mejores prácticas
### Estrategia de selección de modelo
- **Ediciones rápidas**: Usa `cc/claude-haiku-4-20250514`
- **Generación de código**: Usa `cx/deepseek-chat`
- **Refactoring complejo**: Usa `cc/claude-opus-4-5-20251101`
- **Resolución de problemas**: Usa `cx/deepseek-reasoner`
### Gestión de contexto
- Selecciona solo el código relevante antes de preguntar
- Usa prompts específicos y claros
- Divide tareas complejas en pasos más pequeños
### Optimización de costos
- Usa modelos más rápidos/baratos para tareas simples
- Limita el tamaño del contexto cuando sea posible
- Cachea respuestas usadas con frecuencia
## Próximos pasos
- [Configurar Cursor](cursor.md) para integración mejorada con IDE
- [Configurar Roo](roo.md) para asistente de IA
- [Explorar uso de CLI](../cli/basic-usage.md)
- [Aprende sobre la selección de modelos](../models/overview.md)
+149
View File
@@ -0,0 +1,149 @@
# Integración con Cursor
Integra 9Router con Cursor IDE para enrutar tus solicitudes de IA a través del sistema de enrutamiento inteligente de 9Router.
## Requisitos previos
- Cursor IDE instalado
- Cuenta Cursor Pro (requerida para endpoints de API personalizados)
- Endpoint en la nube de 9Router configurado
- API key del dashboard de 9Router
## ⚠️ Notas importantes
> **Endpoint en la nube requerido**: Cursor enruta solicitudes a través de su propio servidor y no soporta endpoints localhost. Debes usar el endpoint en la nube de 9Router: `https://9router.com`
> **Cursor Pro requerido**: Esta característica requiere una cuenta Cursor Pro para usar endpoints de API personalizados.
## Configuración
### 1. Abrir la configuración de Cursor
1. Abre Cursor IDE
2. Ve a **Settings** (Cmd/Ctrl + ,)
3. Navega a la sección **Models**
### 2. Habilitar OpenAI API
1. Encuentra la opción **OpenAI API key**
2. Activa el toggle para habilitar la configuración de API personalizada
### 3. Configurar Base URL
Establece la URL base al endpoint en la nube de 9Router:
```
https://9router.com
```
**Pasos:**
1. En la configuración de Models, localiza el campo **Base URL**
2. Ingresa: `https://9router.com`
3. Clic en **Save**
### 4. Agregar API Key
1. En el campo **API Key**, ingresa tu API key de 9Router
2. Puedes encontrar tu API key en el dashboard de 9Router en **Settings → API Keys**
3. Clic en **Save**
### 5. Agregar modelo personalizado
1. Clic en el botón **View All Models**
2. Clic en **Add Custom Model**
3. Ingresa el nombre del modelo desde tu configuración de 9Router (ej. `gpt-4`, `claude-opus-4-5`, etc.)
4. Clic en **Add**
### 6. Seleccionar modelo
1. En la interfaz de chat de Cursor, clic en el dropdown selector de modelo
2. Elige tu modelo personalizado de la lista
3. ¡Empieza a usar 9Router con Cursor!
## Ejemplo de configuración
Tu configuración de Cursor debería verse así:
```
OpenAI API: ✓ Enabled
Base URL: https://9router.com
API Key: sk-9router-xxxxxxxxxxxxx
Custom Models: gpt-4, claude-opus-4-5, gemini-2.0-flash
```
## Modelos disponibles
Puedes usar cualquier modelo configurado en tu dashboard de 9Router. Ejemplos comunes:
| Nombre del modelo | Proveedor | Descripción |
|------------|----------|-------------|
| `gpt-4` | OpenAI | GPT-4 Turbo |
| `gpt-4o` | OpenAI | GPT-4 Optimized |
| `claude-opus-4-5` | Anthropic | Claude Opus 4.5 |
| `claude-sonnet-4-5` | Anthropic | Claude Sonnet 4.5 |
| `gemini-2.0-flash` | Google | Gemini 2.0 Flash |
## Uso
### Interfaz de chat
1. Abre el chat de Cursor (Cmd/Ctrl + L)
2. Selecciona tu modelo del dropdown
3. Comienza a chatear con IA a través de 9Router
### Generación de código inline
1. Selecciona código en tu editor
2. Presiona Cmd/Ctrl + K
3. Ingresa tu prompt
4. Cursor usará 9Router para generar código
### Explicación de código
1. Selecciona código en tu editor
2. Presiona Cmd/Ctrl + L
3. Pregunta "Explain this code"
4. Obtén explicaciones potenciadas por IA a través de 9Router
## Solución de problemas
### Error "Invalid API Key"
1. Verifica tu API key en el dashboard de 9Router
2. Asegúrate de haber copiado la key completa incluyendo el prefijo `sk-9router-`
3. Verifica que la API key no haya expirado
4. Intenta regenerar una nueva API key
### Error "Model Not Found"
1. Verifica que el nombre del modelo coincida exactamente con tu configuración de 9Router
2. Verifica que la conexión del proveedor esté activa en el dashboard de 9Router
3. Asegúrate de que el modelo esté disponible en tus proveedores conectados
4. Intenta usar el nombre completo del modelo (ej. `openai/gpt-4` en lugar de `gpt-4`)
### Problemas de conexión
1. Verifica que estés usando el endpoint en la nube: `https://9router.com`
2. Verifica tu conexión a internet
3. Asegúrate de que el servicio en la nube de 9Router esté operativo
4. Intenta deshabilitar VPN o proxy si está habilitado
### Localhost no funciona
> **Recuerda**: Cursor no soporta endpoints localhost. Debes usar el endpoint en la nube `https://9router.com`. Si necesitas usar una instancia local de 9Router, considera usar un servicio de tunneling como ngrok para exponer tu endpoint local.
## Configuración del endpoint en la nube
Si estás ejecutando 9Router localmente y quieres usarlo con Cursor:
1. Habilita el endpoint en la nube en la configuración de 9Router
2. Configura tu URL del endpoint en la nube en el dashboard de 9Router
3. Usa la URL en la nube en la configuración de Cursor
4. Asegúrate de que tu instancia local de 9Router sea accesible desde internet
## Mejores prácticas
1. **Usa aliases de modelos**: Crea aliases cortos para modelos usados con frecuencia en 9Router
2. **Monitorea el uso**: Revisa el dashboard de 9Router para estadísticas de uso y costos
3. **Rota las API Keys**: Rota tus API keys regularmente por seguridad
4. **Prueba modelos**: Prueba diferentes modelos para encontrar el mejor para tu caso de uso
@@ -0,0 +1,416 @@
# Integración con otras herramientas
9Router es compatible con cualquier herramienta que soporte el formato de API de OpenAI. Esta guía cubre patrones de integración genéricos para varias herramientas y aplicaciones personalizadas.
## Resumen
9Router proporciona un endpoint de API compatible con OpenAI que funciona con:
- Scripts y aplicaciones personalizadas
- Clientes de API y herramientas de testing
- Herramientas CLI y utilidades
- Integraciones de terceros
- Frameworks de desarrollo
## Patrón de configuración genérico
Cualquier herramienta compatible con OpenAI puede conectarse a 9Router usando estas configuraciones:
**9Router local:**
```
Base URL: http://localhost:20128/v1
API Key: your-api-key-from-dashboard
Model: cualquier modelo de 9Router (cc/*, cx/*, glm/*, etc.)
```
**9Router en la nube:**
```
Base URL: https://9router.com/v1
API Key: your-api-key-from-dashboard
Model: cualquier modelo de 9Router (cc/*, cx/*, glm/*, etc.)
```
## Modelos disponibles
### Modelos Claude (Anthropic)
- `cc/claude-opus-4-5-20251101`
- `cc/claude-sonnet-4-20250514`
- `cc/claude-haiku-4-20250514`
### Modelos DeepSeek
- `cx/deepseek-chat`
- `cx/deepseek-reasoner`
### Modelos GLM (Zhipu AI)
- `glm/glm-4-plus`
- `glm/glm-4-flash`
## Ejemplos de integración
### Python con OpenAI SDK
```python
from openai import OpenAI
client = OpenAI(
api_key="your-api-key-from-dashboard",
base_url="http://localhost:20128/v1"
)
response = client.chat.completions.create(
model="cc/claude-sonnet-4-20250514",
messages=[
{"role": "user", "content": "Hello, how are you?"}
]
)
print(response.choices[0].message.content)
```
### Node.js con OpenAI SDK
```javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key-from-dashboard",
baseURL: "http://localhost:20128/v1"
});
const response = await client.chat.completions.create({
model: "cc/claude-sonnet-4-20250514",
messages: [
{ role: "user", content: "Hello, how are you?" }
]
});
console.log(response.choices[0].message.content);
```
### Comando cURL
```bash
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key-from-dashboard" \
-d '{
"model": "cc/claude-sonnet-4-20250514",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}'
```
### Cliente HTTP (Postman, Insomnia)
**Solicitud:**
```
POST http://localhost:20128/v1/chat/completions
```
**Headers:**
```
Content-Type: application/json
Authorization: Bearer your-api-key-from-dashboard
```
**Body:**
```json
{
"model": "cc/claude-sonnet-4-20250514",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
],
"temperature": 0.7,
"max_tokens": 1000
}
```
### Integración con LangChain
```python
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
llm = ChatOpenAI(
model_name="cc/claude-sonnet-4-20250514",
openai_api_key="your-api-key-from-dashboard",
openai_api_base="http://localhost:20128/v1",
temperature=0.7
)
messages = [HumanMessage(content="Explain quantum computing")]
response = llm(messages)
print(response.content)
```
### Integración con LlamaIndex
```python
from llama_index.llms import OpenAI
llm = OpenAI(
model="cc/claude-sonnet-4-20250514",
api_key="your-api-key-from-dashboard",
api_base="http://localhost:20128/v1"
)
response = llm.complete("What is machine learning?")
print(response.text)
```
## Ejemplos de scripts personalizados
### Script de procesamiento por lotes
```python
import openai
import json
openai.api_key = "your-api-key-from-dashboard"
openai.api_base = "http://localhost:20128/v1"
def process_batch(prompts, model="cx/deepseek-chat"):
results = []
for prompt in prompts:
response = openai.ChatCompletion.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
results.append({
"prompt": prompt,
"response": response.choices[0].message.content
})
return results
prompts = [
"Explain AI in one sentence",
"What is machine learning?",
"Define neural networks"
]
results = process_batch(prompts)
print(json.dumps(results, indent=2))
```
### Manejador de respuestas streaming
```javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key-from-dashboard",
baseURL: "http://localhost:20128/v1"
});
async function streamResponse(prompt) {
const stream = await client.chat.completions.create({
model: "cc/claude-sonnet-4-20250514",
messages: [{ role: "user", content: prompt }],
stream: true
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || "";
process.stdout.write(content);
}
}
streamResponse("Write a short story about AI");
```
### Comparación multi-modelo
```python
from openai import OpenAI
client = OpenAI(
api_key="your-api-key-from-dashboard",
base_url="http://localhost:20128/v1"
)
models = [
"cc/claude-sonnet-4-20250514",
"cx/deepseek-chat",
"glm/glm-4-plus"
]
prompt = "Explain quantum computing in simple terms"
for model in models:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
print(f"\n=== {model} ===")
print(response.choices[0].message.content)
```
## Patrones comunes de integración
### Variables de entorno
Almacena credenciales de forma segura:
```bash
# .env file
ROUTER_API_KEY=your-api-key-from-dashboard
ROUTER_BASE_URL=http://localhost:20128/v1
ROUTER_MODEL=cc/claude-sonnet-4-20250514
```
```python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("ROUTER_API_KEY"),
base_url=os.getenv("ROUTER_BASE_URL")
)
```
### Manejo de errores
```python
from openai import OpenAI, OpenAIError
client = OpenAI(
api_key="your-api-key",
base_url="http://localhost:20128/v1"
)
try:
response = client.chat.completions.create(
model="cc/claude-sonnet-4-20250514",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
except OpenAIError as e:
print(f"Error: {e}")
```
### Lógica de reintentos
```python
import time
from openai import OpenAI, RateLimitError
client = OpenAI(
api_key="your-api-key",
base_url="http://localhost:20128/v1"
)
def chat_with_retry(prompt, max_retries=3):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="cc/claude-sonnet-4-20250514",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except RateLimitError:
if attempt < max_retries - 1:
time.sleep(2 ** attempt) # Exponential backoff
else:
raise
```
## Solución de problemas
### Problemas de conexión
**Problema:** No se puede conectar a 9Router
```bash
# Verifica si 9Router está corriendo
curl http://localhost:20128/health
# Respuesta esperada:
{"status": "ok"}
```
**Solución:**
- Verifica que 9Router esté corriendo
- Verifica que el puerto 20128 no esté bloqueado
- Asegúrate de tener la URL base correcta (incluir `/v1`)
### Errores de autenticación
**Problema:** 401 Unauthorized
```
Error: Invalid API key
```
**Solución:**
- Verifica la API key desde el dashboard
- Verifica el formato del header de Authorization: `Bearer your-api-key`
- Asegúrate de no tener espacios extras o saltos de línea en la API key
### Modelo no encontrado
**Problema:** 404 Model not found
```
Error: Model 'cc/claude-opus' not found
```
**Solución:**
- Usa el nombre exacto del modelo (sensible a mayúsculas)
- Verifica los modelos disponibles: `curl http://localhost:20128/v1/models`
- Verifica que el modelo esté habilitado en tu plan
### Problemas de timeout
**Problema:** Request timeout
```
Error: Request timed out after 30s
```
**Solución:**
- Aumenta el timeout en la configuración del cliente
- Usa modelos más rápidos para tareas sensibles al tiempo
- Verifica la conexión de red a 9Router
### Rate limiting
**Problema:** 429 Too Many Requests
```
Error: Rate limit exceeded
```
**Solución:**
- Implementa exponential backoff
- Reduce la frecuencia de solicitudes
- Verifica los límites de tasa en el dashboard
- Considera actualizar tu plan
## Mejores prácticas
### Seguridad
- Almacena las API keys en variables de entorno
- Nunca subas las API keys al control de versiones
- Usa HTTPS para despliegues en la nube
- Rota las API keys regularmente
### Rendimiento
- Usa modelos apropiados para la complejidad de la tarea
- Implementa caché para consultas repetidas
- Usa streaming para respuestas largas
- Agrupa solicitudes cuando sea posible
### Manejo de errores
- Siempre implementa bloques try-catch
- Agrega lógica de reintento con exponential backoff
- Registra errores para debugging
- Proporciona mecanismos de fallback
### Optimización de costos
- Elige modelos costo-efectivos para tareas simples
- Cachea respuestas cuando sea apropiado
- Monitorea el uso en el dashboard
- Establece límites de solicitudes en el código
## Próximos pasos
- [Configurar Cursor](cursor.md) para integración con IDE
- [Configurar Continue](continue.md) para VSCode
- [Explorar uso de CLI](../cli/basic-usage.md)
- [Aprende sobre la selección de modelos](../models/overview.md)
- [Referencia de API](../api/reference.md)
+127
View File
@@ -0,0 +1,127 @@
# Integración con Roo AI Assistant
Integra 9Router con Roo AI Assistant para acceder a múltiples modelos de IA a través de una interfaz unificada.
## Requisitos previos
- Roo AI Assistant instalado
- API key de 9Router desde el [dashboard](https://9router.com/dashboard)
- 9Router ejecutándose (local o en la nube)
## Pasos de configuración
### 1. Abrir la configuración de Roo
Inicia Roo AI Assistant y abre el panel de configuración.
### 2. Configurar el proveedor de API
1. Navega a la configuración de **API Provider**
2. Selecciona **Ollama** como tipo de proveedor
3. Configura los siguientes ajustes:
**Para 9Router local:**
```
Base URL: http://localhost:20128/v1
API Key: your-api-key-from-dashboard
```
**Para 9Router en la nube:**
```
Base URL: https://9router.com/v1
API Key: your-api-key-from-dashboard
```
### 3. Seleccionar modelo
Elige entre los modelos disponibles de 9Router:
**Modelos Claude:**
- `cc/claude-opus-4-5-20251101` - El más capaz
- `cc/claude-sonnet-4-20250514` - Equilibrado
- `cc/claude-haiku-4-20250514` - Rápido
**Modelos DeepSeek:**
- `cx/deepseek-chat` - Propósito general
- `cx/deepseek-reasoner` - Razonamiento complejo
**Modelos GLM:**
- `glm/glm-4-plus` - Avanzado
- `glm/glm-4-flash` - Respuestas rápidas
### 4. Probar la conexión
Envía un mensaje de prueba para verificar la integración:
```
Hello! Can you confirm you're connected through 9Router?
```
## Ejemplos de uso
### Chat básico
```
Pregunta a Roo: "Explain quantum computing in simple terms"
Modelo: cc/claude-sonnet-4-20250514
```
### Generación de código
```
Pregunta a Roo: "Write a Python function to calculate Fibonacci numbers"
Modelo: cx/deepseek-chat
```
### Razonamiento complejo
```
Pregunta a Roo: "Analyze the trade-offs between microservices and monolithic architecture"
Modelo: cx/deepseek-reasoner
```
## Consejos de selección de modelo
- **Tareas rápidas**: Usa `cc/claude-haiku-4-20250514` o `glm/glm-4-flash`
- **Rendimiento equilibrado**: Usa `cc/claude-sonnet-4-20250514` o `cx/deepseek-chat`
- **Razonamiento complejo**: Usa `cc/claude-opus-4-5-20251101` o `cx/deepseek-reasoner`
- **Optimización de costos**: Usa modelos DeepSeek o GLM
## Solución de problemas
### Connection Failed
- Verifica que 9Router esté corriendo: `curl http://localhost:20128/health`
- Verifica que la API key sea correcta
- Asegúrate de que la Base URL incluya el sufijo `/v1`
### Modelo no disponible
- Verifica que el nombre del modelo coincida exactamente (sensible a mayúsculas)
- Verifica que el modelo esté habilitado en tu plan de 9Router
- Intenta otro modelo de la lista
### Respuestas lentas
- Cambia a modelos más rápidos (haiku, flash)
- Verifica la conexión de red
- Monitorea los logs de 9Router por problemas
## Configuración avanzada
### Aliases personalizados de modelos
Puedes crear atajos para modelos usados con frecuencia en la configuración de Roo:
```
Alias: "fast" → cc/claude-haiku-4-20250514
Alias: "smart" → cc/claude-opus-4-5-20251101
Alias: "code" → cx/deepseek-chat
```
### Múltiples perfiles
Configura diferentes perfiles para distintos casos de uso:
- **Desarrollo**: Modelos DeepSeek para código
- **Escritura**: Modelos Claude para contenido
- **Investigación**: Modelos reasoner para análisis
## Próximos pasos
- [Configurar Cursor](cursor.md) para integración con IDE
- [Configurar Continue](continue.md) para VSCode
- [Explorar uso de CLI](../cli/basic-usage.md)