mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 20:00:47 +00:00
Feat : Gitbook
This commit is contained in:
@@ -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.
|
||||
@@ -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
|
||||
@@ -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"
|
||||
```
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user