Compatibilidade com OpenAI e Ollama

8.1 Endpoints compatíveis com a OpenAI

Um serviço DEVERIA oferecer uma interface compatível com a OpenAI ao lado da interface LMSP e declará-la em interfaces com kind definido como openai. Para atender aos clientes existentes, um serviço que faz isso DEVE implementar pelo menos estes endpoints sob o prefixo /v1:

Endpoint Observações
GET /v1/models Lista os modelos do catálogo LMSP. Cada id é o ID de modelo do LMSP.
POST /v1/chat/completions Chat Completions, com e sem streaming.
POST /v1/responses O formato OpenAI Responses.
POST /v1/embeddings A interface principal do LMSP 1.0 não tem endpoint de embeddings. O adaptador serve este endpoint diretamente, para modelos cujo capabilities.embeddings é true.

Esses endpoints aceitam os mesmos tokens de portador que a interface LMSP. Um cliente que fala o protocolo OpenAI define o token do LMSP como sua chave de API.

Uma primeira implementação pode começar com /v1/models e /v1/chat/completions (página 12).

8.2 Endpoints compatíveis com o Ollama

Um serviço DEVERIA fornecer também estes endpoints, para que os clientes escritos para o Ollama funcionem igualmente:

Endpoint Observações
GET /api/tags Lista os modelos do catálogo LMSP.
POST /api/chat Chat.
POST /api/generate Geração de texto simples.

Um serviço que os fornece declara uma interface com kind definido como ollama.

8.3 Um único núcleo de execução

A camada de compatibilidade DEVE apenas converter dados. Ela NÃO DEVE criar um segundo conjunto de lógica de gerenciamento de modelos. Uma requisição em uma interface de compatibilidade é mapeada para uma resposta LMSP, roda no mesmo núcleo e no mesmo adaptador que uma requisição nativa e usa o mesmo catálogo de modelos e a mesma autenticação.

OpenAI Chat Completions
          |  mapeamento da requisição
          v
     LMSP Response
          |  adaptação ao backend
          v
llama.cpp / Ollama / vLLM / outros ambientes de execução

Nos endpoints /v1 e /api, um serviço DEVERIA relatar os erros no formato que a API correspondente define, para que clientes não modificados consigam interpretá-los. A interface LMSP sempre usa application/problem+json.

8.4 Limites

A compatibilidade tem limites, e vale a pena enunciá-los com clareza:

  • Um cliente existente compatível com a OpenAI geralmente só precisa de um base_url alterado. Ele não ganha automaticamente a descoberta do LMSP.
  • Somente os clientes que suportam o LMSP conseguem descobrir um serviço automaticamente, ler suas capacidades detalhadas, retomar fluxos de eventos e gerenciar tarefas assíncronas.
  • Nenhum protocolo do lado do servidor consegue fazer funcionar um cliente que não pode ser configurado e aceita apenas endereços oficiais de nuvem.