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.
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensGET /v1/modelsPOST /v1/embeddings cuando el modo de incrustaciones está habilitado.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.
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.
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(...).
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 ↗Sepa exactamente qué es compatible.
/v1/messages./v1/messages/count_tokens.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.
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.
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.
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.
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.
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"}]
}'Haga coincidir el punto final con el trabajo.
/v1/embeddings para un modelo de incrustación compatible y un cliente.Utilice la interfaz más pequeña para la tarea.
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.