Fase 2: 04_sanitize.py - scrubbing de secretos de skills/agentes/plans (10 secretos unicos, gate en verde)
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# Agregar API OpenAI-compatible (OpenWebUI) a GitHub Copilot Chat en VS Code
|
||||
|
||||
## Contexto
|
||||
|
||||
El usuario tiene su propia API compatible con OpenAI servida por una instancia de OpenWebUI en `https://ai.p-lao.com/api`, y quiere saber si puede usar esos modelos dentro de GitHub Copilot Chat en VS Code (en vez de, o además de, los modelos que Copilot ofrece por defecto).
|
||||
|
||||
No se trata de una tarea de código sobre este repositorio (que ni siquiera es un repo git) — es una pregunta de configuración de la extensión GitHub Copilot Chat / VS Code. Investigué el estado actual (julio 2026) de la función BYOK ("Bring Your Own Key") de VS Code, que sí soporta endpoints OpenAI-compatibles self-hosted desde octubre 2025 (Insiders) y ya en stable desde inicios de 2026.
|
||||
|
||||
## Respuesta corta
|
||||
|
||||
**Sí, es posible.** VS Code Copilot Chat tiene soporte nativo (sin extensiones de terceros) para agregar un proveedor de modelo "Custom Endpoint / OpenAI Compatible", apuntando a cualquier servidor que exponga una API de chat completions compatible con OpenAI — que es exactamente lo que expone OpenWebUI en `/api` (OpenWebUI expone un endpoint compatible en `/api/chat/completions` o `/v1/chat/completions` según versión).
|
||||
|
||||
## Cómo hacerlo (método recomendado — UI nativa)
|
||||
|
||||
1. Abrir la paleta de comandos (`Ctrl+Shift+P`) y ejecutar **`Chat: Manage Language Models`**.
|
||||
2. Elegir **"Add Model..."** → seleccionar el proveedor **"OpenAI Compatible"** (a veces listado como "Custom Endpoint").
|
||||
3. Completar:
|
||||
- **Base URL**: `https://ai.p-lao.com/api` (o la ruta específica que exponga chat completions, p. ej. `https://ai.p-lao.com/api/chat/completions` — confirmar cuál espera el prompt, algunas versiones piden solo el host base y arman el path solas).
|
||||
- **API Key**: el token/API key generado en OpenWebUI (Settings → Account → API Keys).
|
||||
- **Model ID**: el nombre exacto del modelo tal como lo expone OpenWebUI (se puede confirmar con `GET /api/models` contra tu instancia).
|
||||
4. VS Code guarda la API key de forma segura (Secret Storage), no en `settings.json` en texto plano.
|
||||
5. El modelo aparece en el selector de modelos del chat de Copilot (ícono en la vista de Chat) — seleccionarlo ahí para usarlo en conversaciones/agent mode.
|
||||
|
||||
### Alternativa vía `settings.json` (legacy, sigue funcionando en stable pero marcada deprecated)
|
||||
|
||||
Permite declarar metadata del modelo sin pasar por el diálogo cada vez, pero la API key igual se configura aparte (vía el comando de arriba o un prompt de VS Code):
|
||||
|
||||
```json
|
||||
"github.copilot.chat.customOAIModels": {
|
||||
"mi-modelo-openwebui": {
|
||||
"name": "Mi modelo (OpenWebUI)",
|
||||
"url": "https://ai.p-lao.com/api/chat/completions",
|
||||
"toolCalling": true,
|
||||
"vision": false,
|
||||
"maxInputTokens": 128000,
|
||||
"maxOutputTokens": 8000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Ajustar `toolCalling`/`vision`/límites de tokens según lo que realmente soporte el modelo servido — si se declara `toolCalling: true` sin que el modelo lo soporte, el agent mode de Copilot fallará al intentar usar herramientas.
|
||||
|
||||
## Requisitos del lado de OpenWebUI
|
||||
|
||||
- El endpoint debe responder al formato de Chat Completions de OpenAI (`POST /chat/completions` con streaming SSE) — OpenWebUI lo soporta out-of-the-box vía su capa de compatibilidad OpenAI.
|
||||
- Necesita un API key válido generado desde OpenWebUI (no la sesión de usuario web).
|
||||
- Si el servidor usa TLS con certificado propio/self-signed, puede haber que confiar en el certificado a nivel de sistema/VS Code para que la conexión no falle.
|
||||
|
||||
## Notas / limitaciones
|
||||
|
||||
- Esto solo afecta **Chat y Agent mode** de Copilot. Las sugerencias inline de autocompletado ("ghost text") siguen usando la infraestructura propia de Copilot y no se pueden reemplazar por BYOK.
|
||||
- El uso de un modelo BYOK se factura/consume directamente contra tu proveedor (OpenWebUI/modelo detrás), no cuenta contra la cuota de requests de Copilot.
|
||||
- Requiere una versión reciente de VS Code (la función pasó a stable en 2026); si el usuario está en una versión vieja, puede necesitar actualizar o usar VS Code Insiders.
|
||||
|
||||
## Verificación
|
||||
|
||||
1. Tras agregar el modelo, abrir el panel de Chat, hacer clic en el selector de modelo y confirmar que "Mi modelo (OpenWebUI)" aparece en la lista.
|
||||
2. Enviar un mensaje simple ("hola, ¿qué modelo eres?") y confirmar que responde usando el modelo remoto (no un modelo de Copilot por defecto).
|
||||
3. Si se necesita agent mode con tools, probar un prompt que dispare una tool call y confirmar que el modelo la ejecuta correctamente (valida que `toolCalling` esté bien configurado).
|
||||
|
||||
## Fuentes
|
||||
|
||||
- https://code.visualstudio.com/blogs/2026/06/18/byok-vscode
|
||||
- https://code.visualstudio.com/blogs/2025/10/22/bring-your-own-key
|
||||
- https://github.blog/changelog/2026-04-22-bring-your-own-language-model-key-in-vs-code-now-available/
|
||||
- https://visualstudiomagazine.com/articles/2026/05/29/vs-code-1-122-lets-byok-work-without-github-sign-in.aspx
|
||||
- https://ofox.ai/blog/github-copilot-byok-oai-compatible-api-setup/
|
||||
Reference in New Issue
Block a user