Ejecuta el motor de respuestas de Perplexica sobre una base URL de OpenAI personalizada.
Updated 2026-07-29
Perplexica, renombrado Vane upstream, configura su proveedor de OpenAI con una API Key y un campo Base URL. Configura la Base URL a https://api.apisrouter.com/v1, añade los ids de modelo que quieras, y cada respuesta de búsqueda se sintetiza a través del gateway con Claude, GPT, DeepSeek o Gemini detrás de una sola clave.
Respuesta rápida: un campo Base URL, dos generaciones de configuración.
En las versiones actuales, el proveedor de OpenAI de Perplexica expone exactamente dos campos requeridos: API Key y Base URL, editables en la pantalla de configuración inicial y en la interfaz de ajustes, con mapeos de entorno documentados OPENAI_API_KEY y OPENAI_BASE_URL. Configura la Base URL a https://api.apisrouter.com/v1, pega una clave de gateway, y luego añade los modelos de chat que quieras por sus ids exactos del catálogo. El proveedor reenvía el id del modelo como un string simple sobre /v1/chat/completions, así que los ids de Claude y DeepSeek funcionan a través del slot de proveedor "OpenAI". En versiones más antiguas de Perplexica (la generación config.toml, hasta la línea v1.10 y v1.11), la misma capacidad es el proveedor CUSTOM_OPENAI: un bloque [MODELS.CUSTOM_OPENAI] con las claves API_KEY, API_URL y MODEL_NAME. Ambas generaciones se muestran abajo, así que ajusta la configuración a la versión que realmente ejecutas.
# the settings UI fields map to these documented env vars
export OPENAI_API_KEY=sk-APIsRouter-...
export OPENAI_BASE_URL=https://api.apisrouter.com/v1
# then add chat models by id in Settings, e.g. claude-sonnet-4-6Cómo responde Perplexica una pregunta, y dónde se sitúa el LLM.
Perplexica (ItzCrazyKns en GitHub, unas 36K estrellas) es el motor de respuestas de código abierto más conocido al estilo Perplexity: toma una pregunta, ejecuta búsquedas web reales a través de una instancia de SearxNG incluida, lee los resultados, y hace que un LLM sintetice una respuesta citada. Los modos de búsqueda (velocidad, equilibrado, calidad) intercambian profundidad de recuperación por latencia, y los modos de enfoque acotan las fuentes a la web, discusiones o artículos académicos. En 2026 el proyecto se renombró Vane upstream, con la imagen de Docker siguiendo el cambio; la arquitectura y el sistema de proveedores se mantuvieron, así que todo aquí aplica bajo cualquiera de los dos nombres. El slot de LLM es donde viven la calidad de síntesis y el coste. Cada respuesta es una o más llamadas de chat-completions que llevan las fuentes recuperadas como contexto, lo que convierte a un motor de respuestas en una carga de trabajo pesada en tokens de entrada: el modelo lee mucho más de lo que escribe. El sistema de proveedores trata a OpenAI como uno de varios backends (Ollama, Anthropic, Gemini, Groq, y otros), y el proveedor de OpenAI es el que tiene una Base URL libremente editable, que es lo que lo convierte en el gancho para el gateway. Un comportamiento que conviene conocer de antemano: cuando la Base URL es cualquier cosa distinta del endpoint de OpenAI de fábrica, Perplexica muestra intencionalmente una lista de modelos por defecto vacía y usa las entradas de modelo que tú mismo añades al proveedor. Eso es por diseño, ya que no puede saber qué sirve un endpoint personalizado. Añadir claude-sonnet-4-6 o deepseek-v4-flash como una entrada de modelo es la segunda mitad de la configuración, no un workaround.
Configuración completa: versiones actuales y el config.toml heredado.
Las versiones actuales configuran todo en la app. En el primer arranque, la pantalla de configuración inicial pide proveedores; después los mismos campos viven en Settings. Selecciona el proveedor OpenAI, configura API Key y Base URL, y luego añade entradas de modelo de chat con los ids que planeas usar. Los ids deben coincidir exactamente con el catálogo del gateway, y cada entrada que añades aparece en el selector de modelo junto al cuadro de búsqueda. La generación heredada está basada en archivos. Si tu instalación todavía tiene un config.toml, estás en la generación CUSTOM_OPENAI: rellena el bloque de abajo y reinicia el contenedor. MODEL_NAME toma un id de modelo, que la interfaz ofrece entonces como la opción de OpenAI personalizado.
[MODELS.CUSTOM_OPENAI]
API_KEY = "sk-YOUR-APISROUTER-KEY"
API_URL = "https://api.apisrouter.com/v1"
MODEL_NAME = "claude-sonnet-4-6"Elegir un modelo de síntesis para un motor de respuestas.
Como el selector de modelo lee cualquier entrada que añadiste contra una Base URL, hacer A/B de modelos de síntesis es trivial: haz la misma pregunta en dos pestañas con dos entradas y compara las citas. El log de uso por clave tasa las respuestas de cada modelo, que es la forma honesta de decidir si la síntesis de vanguardia se gana sus tokens sobre tu mezcla de consultas.
- Los tokens de entrada dominan. Una respuesta en modo calidad puede empujar contextos recuperados grandes al prompt, así que el precio por token de entrada de tu id fija el coste de una búsqueda, no la respuesta corta que escribe de vuelta.
- claude-sonnet-4-6 es el valor por defecto sólido para síntesis citada: sigue bien las instrucciones de fundamentación en fuentes y se mantiene coherente cuando muchos fragmentos discrepan.
- Las instancias personales o de equipo de alto volumen funcionan bien con claude-haiku-4-5-20251001, gemini-3.5-flash, o deepseek-v4-flash: las respuestas se mantienen fundamentadas y el coste por búsqueda baja lo suficiente como para dejar activo el modo calidad.
- Mantén un id de vanguardia como segunda entrada. Las entradas de modelo se sientan lado a lado en el selector, así que escalar una pregunta difícil a gpt-5.5 es un cambio de desplegable, no una edición de configuración.
- El modo de enfoque académico premia a los modelos de contexto largo, ya que los resúmenes y extractos de artículos son más voluminosos que los fragmentos web.
Pago por uso · por debajo del precio oficial
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modelo | Precio oficial | Nuestro precio |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
Modos de fallo específicos de Perplexica.
La lista de modelos vacía es la clásica. Configuras la Base URL, el selector queda en blanco, y parece roto. No lo está: con una Base URL distinta de la de fábrica, Perplexica solo lista las entradas de modelo que añades al proveedor. Añade tus ids y aparecen. Los embeddings son un slot separado. Perplexica usa modelos de embedding para el reranking de resultados, y el proveedor de OpenAI sirve embeddings desde la misma Base URL y clave. Si tu gateway no sirve el id de embedding que configuras ahí, el reranking se rompe mientras las respuestas de chat siguen funcionando. La separación limpia es mantener los embeddings en el proveedor local Transformers, que corre en la máquina sin ninguna API, y enrutar solo la síntesis de chat a través del gateway. El renombrado confunde a las guías. Perplexica y Vane son el mismo proyecto; los tutoriales antiguos referencian la imagen de Docker perplexica y config.toml, las builds actuales se distribuyen como vane con ajustes dentro de la app y un volumen de datos persistente. Si tu instalación no tiene config.toml, no crees uno, no se lee; configura a través de la interfaz o las variables de entorno documentadas en su lugar. SearxNG es independiente. Si las respuestas se degradan o las búsquedas no devuelven nada, eso es el contenedor de SearxNG o su ajuste de formato JSON, no el endpoint del LLM. La Base URL solo mueve las llamadas de chat y embedding.
Quién enruta Perplexica a través de un gateway.
- Autoalojadores que reemplazan una suscripción de Perplexity y quieren síntesis con calidad de vanguardia por búsqueda a precios de token, con una clave en lugar de una cuenta de proveedor por familia de modelos.
- Equipos que ejecutan un motor de respuestas compartido, donde el log de uso por clave convierte "cuánto nos cuesta la búsqueda" en un número por modelo.
- Configuraciones centradas en la privacidad que mantienen la recuperación completamente local (SearxNG más embeddings locales) y enrutan solo la llamada de síntesis final hacia afuera a través de un endpoint auditable.
- Curiosos que comparan modelos de síntesis en preguntas idénticas: cada candidato es una entrada de modelo contra la misma Base URL.
- Desarrolladores sin acceso a la facturación de un proveedor concreto. El acceso mediante recarga sin necesidad de tarjeta elimina la dependencia de registrarse en cada proveedor.
Verifica el endpoint y depura la primera búsqueda.
Confirma que el gateway sirve los ids que añadiste antes de culpar a la app; las entradas en el proveedor deben coincidir exactamente con la salida de /v1/models. Los fallos de primera ejecución siguen un patrón. "No chat model providers configured" significa que los campos de proveedor no se guardaron o la lista de modelos todavía está vacía; añade al menos una entrada de modelo de chat. Un 401 en los logs del servidor significa que la clave no coincide con el endpoint en el campo Base URL. Un error de modelo no encontrado es una errata de id en una entrada de modelo. Errores de reranking con respuestas que funcionan apuntan al slot de embedding, que es donde te salva el proveedor local Transformers. Y si nada cambió tras editar variables de entorno, recuerda que la configuración persiste en el volumen de datos; los campos ya guardados en la interfaz ganan sobre un cambio de entorno posterior, así que edítalos en Settings. Una vez que las búsquedas fluyen, la consola de APIsRouter muestra el modelo por petición, el recuento de tokens y el gasto. Los motores de respuestas son pesados en entrada, y ver el número real de tokens por búsqueda para tu mezcla de consultas vence a cualquier estimación.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Preguntas frecuentes
¿Perplexica es el mismo proyecto que Vane?
Sí. El repositorio upstream se renombró Vane en 2026, y la imagen de Docker siguió el cambio. El sistema de proveedores, la integración con SearxNG, y el campo Base URL descrito aquí son los mismos bajo ambos nombres; solo las versiones heredadas todavía usan el nombre Perplexica y config.toml.
¿Puede Perplexica usar modelos de Claude o DeepSeek para responder?
Sí. El proveedor de OpenAI reenvía los ids de modelo como strings simples a cualquier Base URL que configures. Añade claude-sonnet-4-6 o deepseek-v4-flash como entradas de modelo contra la Base URL del gateway y aparecen en el selector de modelo como cualquier otra opción.
¿Por qué la lista de modelos está vacía tras cambiar la Base URL?
Por diseño. Con una Base URL distinta de la de fábrica, Perplexica no puede asumir qué modelos sirve el endpoint, así que solo lista las entradas que tú mismo añades al proveedor. Añade tus ids en Settings y aparecen de inmediato.
¿Cuáles son las claves de configuración heredadas CUSTOM_OPENAI?
En la generación config.toml (hasta la línea v1.10 y v1.11), el bloque [MODELS.CUSTOM_OPENAI] toma API_KEY, API_URL y MODEL_NAME. Configura API_URL al endpoint del gateway incluyendo /v1 y MODEL_NAME a un id del catálogo, y reinicia.
¿Los embeddings también se enrutan a través de la Base URL personalizada?
Si configuras modelos de embedding en el proveedor de OpenAI, sí, usan la misma Base URL y clave. La mayoría de las configuraciones de gateway mantienen los embeddings en el proveedor local Transformers en su lugar, que no necesita ninguna API y deja el reranking independiente del endpoint de chat.
¿Siguen funcionando las variables de entorno OPENAI_API_KEY y OPENAI_BASE_URL?
Sí, son los mapeos de entorno documentados para los dos campos del proveedor de OpenAI en las versiones actuales. Ten en cuenta que los valores ya guardados a través de la interfaz de ajustes persisten en el volumen de datos, así que edítalos ahí si la app ya se configuró una vez.