Pular para o conteúdo

Quando o modelo falha ​

Tradução automática

Esta página foi traduzida automaticamente do inglês e ainda não foi revisada por um falante nativo; correções são bem-vindas no GitHub. Se algo não bater, vale o original em inglês. O código e os resultados são os mesmos do original, importados dos arquivos testados.

Tarefa: uma página que usa um modelo deve continuar funcionando — e dizer o que aconteceu — quando o servidor de modelos está fora do ar, lento, ou sem o modelo.

yaml
# Recipe: the page goes on, and says so, when the model cannot answer.
paths:
  components: ./components

llm:
  model: phi3

Sem onerror, uma falha de IA para a página com um erro que nomeia o servidor e a causa. Com onerror="continue", a página segue: summary_result.success é falso, summary_result.error.message diz o motivo, e summary fica vazio. O exemplo aponta endpoint= para um servidor que não está rodando, então falha do mesmo jeito em qualquer lugar.

xml
<q:component name="Summary">
  <q:set name="text" value="Returns are accepted within 30 days of delivery, with the receipt." />

  <!-- endpoint= sends this one call to another server — here one that is not
       running, to show the failure. onerror="continue": instead of stopping
       the page, the failure is in summary_result and the value is empty. -->
  <q:llm name="summary" endpoint="http://127.0.0.1:9" timeout="5" onerror="continue">
    <q:prompt>Summarize in five words: {text}</q:prompt>
  </q:llm>

  <ui:window title="Policy">
    <ui:text>{text}</ui:text>
    <q:if condition="summary_result.success">
      <ui:text>In short: {summary}</ui:text>
      <q:else>
        <ui:alert variant="info">No summary right now — the assistant is unavailable.</ui:alert>
        <ui:text>Why: {summary_result.error.message}</ui:text>
      </q:else>
    </q:if>
  </ui:window>
</q:component>
xml
<q:test name="the page still renders, and says why" page="/">
  <test:visit />
  <test:expect status="200" />
  <test:expect text="Returns are accepted within 30 days" />
  <test:expect text="No summary right now" />
  <test:expect text="127.0.0.1:9" />
  <test:expect no-text="In short:" />
</q:test>
text
tests/failure.test.q
  PASS  the page still renders, and says why
1 passed, 0 failed

onerror funciona igual em q:llm, q:knowledge, q:agent e q:query. Veja IA-5.

Licença MIT · Feito com VitePress