Documentação

Início rápido

O Ollaya executa modelos de decisão abertos na tua própria máquina. Dás a um modelo um estado (uma mensagem, um e-mail, um ticket, um objeto JSON) e algumas perguntas tipadas, e ele devolve respostas tipadas com probabilidades calibradas numa única passagem em frente.

1. Instalação

No Linux e no macOS:

curl -fsSL https://ollaya.dev/install.sh | sh

No Windows, no PowerShell:

irm https://ollaya.dev/install.ps1 | iex

Ou transfere a aplicação de desktop, que inclui a mesma linha de comando e o mesmo servidor.

O script transfere a versão mais recente do GitHub e verifica o seu sha256. No Linux e no Windows, também transfere as bibliotecas CUDA quando encontra uma GPU NVIDIA. No Linux, onde o systemd corre e ele tem direitos de root, configura um serviço que serve a API em 127.0.0.1:11435. Vê Transferir para os requisitos e as imagens Docker.

2. Executar um modelo

ollaya run winnow:e4b "Third time this year you've double-charged me. Refund it today or I'm cancelling and moving to a competitor."
intent            refund                                ███████████████░ 0.91
is_urgent         yes                                   ███████████████░ 0.92
frustration       2.89 / 3  very angry or using stron…  ██████████████░░ 0.86
refund_requested  yes                                   ████████████████ 0.99
churn_risk        yes                                   ████████████████ 0.99

ollaya run arranca o servidor se ele não estiver a correr, transfere o modelo no primeiro uso e carrega-o. winnow:e4b é o modelo recomendado: 0.722 de exatidão em decisões tipadas, perto do Jev da TypeSafe (0.738), e 89 ms para estas cinco perguntas numa RTX 4090. A transferência tem 8 GB.

Sem GPU NVIDIA? Começa com laya, que responde numa fração de segundo num CPU. É um router: envia o texto em inglês para laya:en e os outros idiomas, o turco por exemplo, para laya:multilingual, e transferir laya transfere ambos. Models compara a exatidão e a velocidade de todos os modelos.

  • --preset NAME usa um conjunto de perguntas integrado: triage, email, guard, moderation, router ou agent. Sem ele, um modelo que não tem perguntas próprias responde triage.
  • --verbose acrescenta a probabilidade de cada opção, a decisão de encaminhamento e os tempos.
  • --format json imprime a resposta completa da API.
  • Sem um estado, ollaya run lê o stdin canalizado ou abre um prompt num terminal.

3. Faz as tuas próprias perguntas

Escreve as perguntas num ficheiro:

{
  "topic": {
    "type": "choice",
    "instructions": "What is this message about?",
    "criteria": {
      "billing": "Payments, invoices and refunds",
      "access": "Login, passwords and permissions",
      "other": "Anything else"
    }
  },
  "urgency": {
    "type": "score",
    "instructions": "How urgent is this?",
    "criteria": ["Can wait", "Needs attention this week", "Needs attention today"]
  },
  "angry": {
    "type": "noul",
    "instructions": "Is the customer angry?"
  }
}
ollaya run winnow:e4b --questions questions.json "Hi, I cannot log in since this morning and I have a demo at 3pm."

Ou salta o ficheiro e passa o JSON em linha, como o curl -d faz (um valor que começa por { é JSON, não um caminho de ficheiro):

ollaya run winnow:e4b --questions '{"angry":{"type":"noul","instructions":"Is the customer angry?"}}' "Hi, I cannot log in since this morning and I have a demo at 3pm."

Ou envia as mesmas perguntas para a API:

curl http://localhost:11435/api/decide -d '{
  "model": "winnow:e4b",
  "state": "Hi, I cannot log in since this morning and I have a demo at 3pm.",
  "questions": {
    "angry": {"type": "noul", "instructions": "Is the customer angry?"}
  }
}'

Todas as respostas voltam tipadas: um choice com uma probabilidade por opção, um score como o nível esperado e um noul como a probabilidade de a afirmação ser verdadeira. Vê a referência da API.

4. Usa um cliente TypeSafe existente

O Ollaya também serve a API da TypeSafe. O SDK oficial da TypeSafe para Python funciona sem alterações:

export TYPESAFE_BASE_URL=http://localhost:11435
export TYPESAFE_API_KEY=local        # any value; the SDK needs one
export TYPESAFE_DEFAULT_MODEL=winnow:e4b

Vê a Compatibilidade com TypeSafe.

5. Incorpora as tuas perguntas num modelo

Um Modelfile transforma um conjunto de perguntas num modelo que podes executar pelo nome:

FROM laya
QUESTIONS ./questions.json
DESCRIPTION Support inbox triage
ollaya create inbox -f Modelfile
ollaya run inbox "Hi, I cannot log in since this morning and I have a demo at 3pm."

Próximos passos