0510

Guía práctica de ToshLLM

API local

Usa ToshLLM mediante API compatibles con OpenAI y Anthropic desde editores, agentes, SDK y otras aplicaciones locales.

Conexión predeterminada

Dos API familiares en un servidor local.

Cuando el servidor está activo, ToshLLM ofrece API compatibles con OpenAI y Anthropic en http://127.0.0.1:8080 de forma predeterminada. Solo se puede acceder desde el propio Mac hasta que actives el acceso por red local.

Chat de OpenAIPOST /v1/chat/completions
Responses de OpenAIPOST /v1/responses
Mensajes de AnthropicPOST /v1/messages
Recuento de tokens de AnthropicPOST /v1/messages/count_tokens
Modelos disponiblesGET /v1/models
IncrustacionesPOST /v1/embeddings cuando el modo de incrustaciones está habilitado.
Interfaz webLa raíz del servidor ofrece el chat ligero incluido con ToshLLM.
API Responses de OpenAI

Conecta clientes que usan el formato Responses.

El motor actual de ToshLLM acepta POST /v1/responses además de Chat Completions. Así, los clientes compatibles más recientes tienen una ruta local directa sin pasar por un servicio en la nube.

curl http://127.0.0.1:8080/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOSHLLM_KEY" \
  -d '{
    "model": "MODEL_ID",
    "input": "Summarize the benefits of local inference.",
    "stream": true
  }'

Usa el ID exacto del modelo local. La compatibilidad cubre las funciones Responses implementadas por el motor incluido, no los servicios de OpenAI que solo existen en la nube.

API Messages de Anthropic

Envía un mensaje nativo al estilo Anthropic.

Usa la raíz del servidor como URL base de Anthropic. No añadas /v1 al configurar un SDK de Anthropic: el cliente agrega /v1/messages por sí mismo.

curl http://127.0.0.1:8080/v1/messages \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: YOUR_TOSHLLM_KEY" \
  -d '{
    "model": "MODEL_ID",
    "max_tokens": 256,
    "messages": [
      {"role": "user", "content": "Explain Metal in one paragraph."}
    ]
  }'

ToshLLM devuelve bloques de mensajes al estilo Anthropic, uso de tokens y motivos de parada. Añade "stream": true para recibir eventos transmitidos desde el servidor. Las llamadas a herramientas requieren que el modelo, su plantilla de chat y la configuración de herramientas sean compatibles.

Anthropic SDK

Utilice el cliente oficial Python localmente.

El SDK oficial de Anthropic acepta un base_url personalizado. Puedes usar cualquier ID de modelo local devuelto por ToshLLM; no tiene que ser un modelo Claude.

from anthropic import Anthropic

client = Anthropic(
    base_url="http://127.0.0.1:8080",
    api_key="YOUR_TOSHLLM_KEY",
)

message = client.messages.create(
    model="MODEL_ID",
    max_tokens=256,
    messages=[
        {"role": "user", "content": "Write a concise project summary."}
    ],
)

print(message.content[0].text)

Si la protección API está deshabilitada pero el SDK requiere una clave, use toshllm-local. Para una respuesta transmitida, utilice client.messages.stream(...).

Anthropic Python Referencia del SDK ↗
Recuento de tokens

Medir una solicitud antes de su generación.

El punto final de recuento de tokens compatible con Anthropic acepta una solicitud de API de mensajes y devuelve su recuento de tokens de entrada utilizando el tokenizador para el modelo local seleccionado.

curl http://127.0.0.1:8080/v1/messages/count_tokens \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: YOUR_TOSHLLM_KEY" \
  -d '{
    "model": "MODEL_ID",
    "messages": [{"role": "user", "content": "How many tokens are here?"}]
  }'

El resultado es local y específico del modelo. No lo compare con un recuento de tokens producido por un modelo de nube o tokenizador diferente.

Anthropic referencia de conteo de tokens ↗
Límite de compatibilidad

Sepa exactamente qué es compatible.

MensajesMensajes de texto, instrucciones del sistema y contenido estructurado a través de /v1/messages.
TransmisiónEventos enviados por servidor estilo Anthropic para salida de texto y llamadas de herramientas.
Uso de herramientasHerramientas definidas por el cliente cuando el modelo local y su plantilla admiten llamadas fiables a funciones.
Recuento de tokensMedición local de tokens de entrada mediante /v1/messages/count_tokens.
La compatibilidad del protocolo no es la paridad de funciones de la nube.

ToshLLM implementa la superficie de mensajes Anthropic utilizada por los clientes locales. Las funciones alojadas en Anthropic, como archivos en la nube, trabajos por lotes, almacenamiento en caché de avisos y facturación de proveedores, no son servicios locales de ToshLLM.

Primera solicitud

Enviar una finalización del chat.

curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model",
    "messages": [
      {"role": "user", "content": "Explain Metal in one paragraph."}
    ]
  }'

Utilice el identificador de modelo devuelto por GET /v1/models. En el modo de modelo único, muchos clientes compatibles pueden utilizar su campo de modelo predeterminado; El modo enrutador utiliza alias estables derivados de nombres de archivos descargados.

Autenticación

Proteja a los clientes más allá de un proceso.

Activa Protect API with a key en Settings para generar una clave guardada en el llavero de macOS. ToshLLM protegerá la inferencia, las incrustaciones, las herramientas y otras operaciones no públicas. El estado y la lista de modelos seguirán visibles para que los clientes puedan detectar el servidor.

curl http://127.0.0.1:8080/v1/models \
  -H "Authorization: Bearer YOUR_TOSHLLM_KEY"

El chat dentro de la aplicación proporciona la clave automáticamente. Cópielo sólo en clientes en los que confíe.

Los metadatos de descubrimiento siguen siendo públicos.

GET /health, GET /v1/health, GET /models y GET /v1/models no requieren la clave API. No expongas el servidor a una red de confianza dudosa si los nombres de tus modelos o su disponibilidad son información sensible.

Red y enrutamiento

Expone sólo lo que pretendes exponer.

Al activar Discoverable on local network, el servidor deja de escuchar solo en 127.0.0.1 y pasa a 0.0.0.0. También anuncia el servicio mediante Bonjour. Hazlo solo en una red de confianza y activa antes la protección con clave API.

El modo enrutador publica varios modelos descargados detrás del mismo punto final y los carga automáticamente a medida que llegan las solicitudes. El límite del modelo configurado controla cuántos permanecen cargados a la vez.

Abrir la guía de integraciones para Claude Code, Anthropic SDK, VS Code, Zed, OpenCode, Aider y otros clientes.

Streaming y descubrimiento de modelos

Deje que el servidor se describa a sí mismo.

Consulta GET /v1/models en lugar de adivinar un nombre de archivo. En modo enrutador, envía el alias devuelto en el campo model para que ToshLLM cargue el perfil correcto. Los clientes compatibles pueden solicitar respuestas en streaming con "stream": true.

curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOSHLLM_KEY" \
  -d '{
    "model": "MODEL_ID",
    "stream": true,
    "messages": [{"role": "user", "content": "Hello"}]
  }'
Modos de ejecución

Haga coincidir el punto final con el trabajo.

Modelo únicoEs mejor cuando un modelo debe permanecer cargado y cada cliente usa la misma configuración de tiempo de ejecución.
EnrutadorPublica varios modelos descargados y carga el alias solicitado, sujeto al límite de modelos configurado.
IncrustacionesHabilita /v1/embeddings para un modelo de incrustación compatible y un cliente.
Herramientas del agenteHabilita el tiempo de ejecución de la herramienta para modelos que admiten de manera confiable la llamada a funciones.
Referencia de punto final

Utilice la interfaz más pequeña para la tarea.

MétodoRutaPropósito
GET/healthCompruebe si el servidor está listo.
GET/v1/modelsDescubra los ID de modelos y los alias de enrutadores.
POST/v1/chat/completionsChat estilo OpenAI con transmisión y herramientas opcionales.
POST/v1/responsesOpenAI Generación compatible con respuestas.
POST/v1/completionsFinalización de texto sin formato sin plantilla de chat.
POST/v1/messagesAnthropic Generación compatible con mensajes.
POST/v1/messages/count_tokensCuente los tokens de entrada de mensajes Anthropic.
POST/v1/embeddingsCree vectores cuando el modo de incrustación esté activo.
POST/v1/rerankCalifique y reordene documentos con un modelo compatible.
POST/tokenizeConvierta texto en ID de token para el modelo activo.
POST/detokenizeConvierta los ID de los tokens nuevamente en texto.
GET/propsInspeccione el tamaño del contexto, la plantilla de chat y las propiedades del modelo.
GET/metricsLeer métricas de tiempo de ejecución cuando las métricas están habilitadas.

También existen LoRA, persistencia de ranuras, administración de enrutadores y puntos finales de flujo reanudable para un control avanzado del tiempo de ejecución. Son interfaces de motor de nivel inferior y pueden cambiar más fácilmente que los puntos finales de compatibilidad anteriores.

Para empresas y particulares

ToshLLM, adaptado a tu equipo.

¿Necesitas una implementación a medida, ayuda para elegir modelos o asesoría para varios Mac Intel? Cuéntanos qué estás desarrollando y te responderemos personalmente.

¿Encontraste un error reproducible? Un reporte público en GitHub permite seguir la solución. Reportar un error ↗
hello@toshllm.com

CONTACT / TOSHLLM

Tu mensaje llega directamente a ToshLLM. No incluyas contraseñas, claves de API ni registros privados.