Pular para o conteúdo principal

AI Client

Recurso de cliente de inteligência artificial.

Permite integrar com fornecedores de IA compatíveis com a API OpenAI, suportando chat, streaming, embeddings e ferramentas MCP (Model Context Protocol).

const client = _ai.client('openai')
client.model('gpt-4o')

const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const result = client.chat(messages)
_out.json(result)

chat


chat(modelo: string, mensagens: Values) : Values

Descrição

Executa uma conversa especificando explicitamente o modelo a utilizar, sobrepondo o modelo configurado por omissão.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const resposta = client.chat('gpt-4o-mini', messages)
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(modelo: string, mensagens: Values, opcoes: Values) : Values

Descrição

Executa uma conversa especificando explicitamente o modelo a utilizar, com opções adicionais, sobrepondo o modelo configurado por omissão.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

const resposta = client.chat('gpt-4o-mini', messages, options)
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(modelo: string, mensagens: Values, opcoes: Values, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : Values

Descrição

Executa uma conversa especificando explicitamente o modelo a utilizar, com opções adicionais e suporte a ferramentas MCP via callback, sobrepondo o modelo configurado por omissão.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

const resposta = client.chat('gpt-4o-mini', messages, options, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(modelo: string, mensagens: Values, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : Values

Descrição

Executa uma conversa especificando explicitamente o modelo a utilizar, com suporte a ferramentas MCP via callback, sobrepondo o modelo configurado por omissão.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Que horas são?'))

const resposta = client.chat('gpt-4o-mini', messages, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(mensagens: Values) : Values

Descrição

Executa uma conversa com o modelo de IA configurado, enviando uma lista de mensagens e retornando a resposta completa.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'system').set('content', 'És um assistente útil.'))
.add(_val.map().set('role', 'user').set('content', 'Qual é a capital de Portugal?'))

const resposta = client.chat(messages)
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa. Cada mensagem deve ter os campos role (system, user, assistant) e content.
Retorno

( Values )

Objeto com a resposta completa da API, incluindo choices, usage e demais metadados.


chat(mensagens: Values, opcoes: Values) : Values

Descrição

Executa uma conversa com o modelo de IA configurado, com opções adicionais como temperatura e max_tokens.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map()
.set('temperature', 0.7)
.set('max_tokens', 200)

const resposta = client.chat(messages, options)
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(mensagens: Values, opcoes: Values, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : Values

Descrição

Executa uma conversa com o modelo de IA configurado, com opções adicionais e suporte a ferramentas MCP via callback.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

const resposta = client.chat(messages, options, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( Values )

Objeto com a resposta completa da API.


chat(mensagens: Values, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : Values

Descrição

Executa uma conversa com o modelo de IA configurado com suporte a ferramentas MCP via callback. O callback é invocado antes de cada chamada a uma ferramenta, permitindo interceptar ou sobrepor o resultado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Que horas são?'))

const resposta = client.chat(messages, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null // null = deixa o cliente executar normalmente
})
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( Values )

Objeto com a resposta completa da API.


embeddings


embeddings(input: string) : Values

Descrição

Gera um embedding vetorial para um texto de entrada utilizando o modelo configurado.

Como Usar
const resultado = client.embeddings('O céu é azul.')
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
inputstringTexto de entrada para o qual será gerado o embedding.
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados e metadados de uso.


embeddings(modelo: string, input: string) : Values

Descrição

Gera um embedding vetorial para um texto de entrada especificando explicitamente o modelo a utilizar.

Como Usar
const resultado = client.embeddings('text-embedding-3-small', 'O céu é azul.')
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo de embeddings a utilizar, por exemplo: text-embedding-3-small.
inputstringTexto de entrada para o qual será gerado o embedding.
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados e metadados de uso.


embeddings(modelo: string, input: string, opcoes: Values) : Values

Descrição

Gera um embedding vetorial para um texto de entrada especificando explicitamente o modelo e opções adicionais.

Como Usar
const opcoes = _val.map().set('dimensions', 512)

const resultado = client.embeddings('text-embedding-3-small', 'O céu é azul.', opcoes)
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo de embeddings a utilizar, por exemplo: text-embedding-3-small.
inputstringTexto de entrada para o qual será gerado o embedding.
opcoesValuesOpções adicionais: dimensions (número de dimensões do vetor), encoding_format (float ou base64), user (identificador do utilizador).
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados e metadados de uso.


embeddings(modelo: string, entradas: Values) : Values

Descrição

Gera embeddings vetoriais para múltiplos textos de entrada especificando explicitamente o modelo a utilizar. A lista deve conter apenas valores de texto.

Como Usar
const textos = _val.list()
.add('O céu é azul.')
.add('A relva é verde.')

const resultado = client.embeddings('text-embedding-3-small', textos)
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo de embeddings a utilizar, por exemplo: text-embedding-3-small.
entradasValuesLista de textos de entrada. Cada elemento deve ser um texto simples.
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados para cada texto e metadados de uso.


embeddings(modelo: string, entradas: Values, opcoes: Values) : Values

Descrição

Gera embeddings vetoriais para múltiplos textos de entrada especificando explicitamente o modelo a utilizar e opções adicionais. A lista deve conter apenas valores de texto.

Como Usar
const textos = _val.list()
.add('O céu é azul.')
.add('A relva é verde.')

const opcoes = _val.map().set('dimensions', 512)

const resultado = client.embeddings('text-embedding-3-small', textos, opcoes)
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo de embeddings a utilizar, por exemplo: text-embedding-3-small.
entradasValuesLista de textos de entrada. Cada elemento deve ser um texto simples.
opcoesValuesOpções adicionais: dimensions (número de dimensões do vetor), encoding_format (float ou base64), user (identificador do utilizador).
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados para cada texto e metadados de uso.


embeddings(entradas: Values) : Values

Descrição

Gera embeddings vetoriais para múltiplos textos de entrada utilizando o modelo configurado. A lista deve conter apenas valores de texto.

Como Usar
const textos = _val.list()
.add('O céu é azul.')
.add('A relva é verde.')

const resultado = client.embeddings(textos)
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
entradasValuesLista de textos de entrada. Cada elemento deve ser um texto simples.
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados para cada texto e metadados de uso.


embeddings(entradas: Values, opcoes: Values) : Values

Descrição

Gera embeddings vetoriais para múltiplos textos de entrada utilizando o modelo configurado, com opções adicionais. A lista deve conter apenas valores de texto.

Como Usar
const textos = _val.list()
.add('O céu é azul.')
.add('A relva é verde.')

const opcoes = _val.map().set('dimensions', 512)

const resultado = client.embeddings(textos, opcoes)
_out.json(resultado.toJSON())
Atributos
NOMETIPODESCRIÇÃO
entradasValuesLista de textos de entrada. Cada elemento deve ser um texto simples.
opcoesValuesOpções adicionais: dimensions (número de dimensões do vetor), encoding_format (float ou base64), user (identificador do utilizador).
Retorno

( Values )

Objeto com a resposta da API, incluindo os vetores gerados para cada texto e metadados de uso.


getMaxToolLoops


getMaxToolLoops() : int

Descrição

Obtém o número máximo de ciclos de chamadas a ferramentas configurado.

Como Usar
const maxCiclos = client.getMaxToolLoops()
_out.print(maxCiclos)
Retorno

( int )

Número máximo de ciclos de ferramentas.


instance


instance() : com.openai.client.OpenAIClient

Descrição

Obtém a instância interna do cliente OpenAI para uso avançado direto com a biblioteca subjacente.

Como Usar
const openAIClient = client.instance()
Retorno

( com.openai.client.OpenAIClient )

Instância do cliente OpenAI.


isInitialized


isInitialized() : boolean

Descrição

Verifica se o cliente de IA foi inicializado com sucesso para o fornecedor configurado.

Como Usar
if (!client.isInitialized()) {
_log.error('Cliente não inicializado.')
}
Retorno

( boolean )

Verdadeiro se o cliente está inicializado.


maxToolLoops


maxToolLoops(maxCiclos: int) : boolean

Descrição

Define o número máximo de ciclos de chamadas a ferramentas (tool loops) durante uma conversa. Evita ciclos infinitos quando o modelo continua a invocar ferramentas sucessivamente.

Como Usar
client.maxToolLoops(5)
Atributos
NOMETIPODESCRIÇÃO
maxCiclosintNúmero máximo de ciclos de ferramentas. Deve ser pelo menos 1.
Retorno

( boolean )

Verdadeiro se o valor foi aplicado com sucesso, falso se o valor for inválido.


mcp


mcp(configuracoes: Values) : void

Descrição

Configura os servidores MCP (Model Context Protocol) a utilizar nas operações de chat e stream. Cada servidor expõe ferramentas que o modelo pode invocar automaticamente durante a conversa. As ferramentas ficam disponíveis com o prefixo nomeDoServidor__nomeDaFerramenta.

Tipos de transporte suportados:

  • remote: liga a um servidor MCP via HTTP Streamable (SSE/HTTP)
  • stdio: inicia um processo local e comunica via stdin/stdout
Como Usar
// Servidor MCP remoto via HTTP
const servidores = _val.list()
.add(
_val.map()
.set('type', 'remote')
.set('name', 'meuServidor')
.set('url', 'https://mcp.exemplo.com')
.set('endpoint', '/mcp')
.set('headers',
_val.map().set('Authorization', 'Bearer SEU_TOKEN')
)
)

client.mcp(servidores)

const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Usa a ferramenta disponível.'))

const resposta = client.chat(messages)
_out.json(resposta.toJSON())
Atributos
NOMETIPODESCRIÇÃO
configuracoesValuesLista de configurações de servidores MCP. Cada entrada é um objeto com os seguintes campos:
Campos comuns:
- type (obrigatório): tipo de transporte — remote ou stdio
- name (opcional): nome do servidor, usado como prefixo nas ferramentas. Se omitido, é gerado automaticamente
Para type: remote:
- url (obrigatório): URL base do servidor MCP, por exemplo https://mcp.exemplo.com
- endpoint (opcional): caminho do endpoint MCP. Por omissão: /mcp
- headers (opcional): objeto com cabeçalhos HTTP adicionais, por exemplo Authorization
Para type: stdio:
- command (obrigatório): comando a executar
- args (opcional): lista de argumentos do comando
- env (opcional): objeto com variáveis de ambiente
Retorno

( void )


model


model(modelo: string) : boolean

Descrição

Define o modelo de IA a utilizar nas operações de chat, stream e embeddings. O modelo é validado contra a lista de modelos disponíveis no fornecedor.

Como Usar
const ok = client.model('gpt-4o')
if (!ok) {
_log.error('Modelo inválido ou não disponível.')
}
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a utilizar, por exemplo: gpt-4o.
Retorno

( boolean )

Verdadeiro se o modelo é válido e foi definido, falso caso contrário.


models


models() : Values

Descrição

Lista todos os modelos disponíveis no fornecedor de IA configurado.

Como Usar
const modelos = client.models()
_out.json(modelos.toJSON())
Retorno

( Values )

Lista de modelos disponíveis, cada um como um objeto com os seus metadados.


provider


provider(fornecedor: string) : boolean

Descrição

Muda o fornecedor de IA e reinicializa o cliente com as configurações do novo fornecedor definidas no ficheiro de configuração da aplicação.

Como Usar
const trocou = client.provider('anthropic')
if (trocou) {
_log.info('Fornecedor alterado com sucesso.')
}
Atributos
NOMETIPODESCRIÇÃO
fornecedorstringNome do fornecedor de IA conforme definido nas configurações da aplicação.
Retorno

( boolean )

Verdadeiro se o fornecedor foi trocado com sucesso, falso caso contrário.


stream


stream(modelo: string, mensagens: Values, aoToken: java.util.function.Consumer<Values>) : void

Descrição

Executa uma conversa em streaming especificando explicitamente o modelo a utilizar, sobrepondo o modelo configurado por omissão, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Conte-me uma história curta.'))

client.stream('gpt-4o-mini', messages, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
})
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
Retorno

( void )


stream(modelo: string, mensagens: Values, aoToken: java.util.function.Consumer<Values>, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : void

Descrição

Executa uma conversa em streaming especificando explicitamente o modelo a utilizar, com suporte a ferramentas MCP via callback, sobrepondo o modelo configurado por omissão, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Que horas são?'))

client.stream('gpt-4o-mini', messages, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
}, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( void )


stream(modelo: string, mensagens: Values, opcoes: Values, aoToken: java.util.function.Consumer<Values>) : void

Descrição

Executa uma conversa em streaming especificando explicitamente o modelo a utilizar, com opções adicionais, sobrepondo o modelo configurado por omissão, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

client.stream('gpt-4o-mini', messages, options, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
})
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
Retorno

( void )


stream(modelo: string, mensagens: Values, opcoes: Values, aoToken: java.util.function.Consumer<Values>, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : void

Descrição

Executa uma conversa em streaming especificando explicitamente o modelo a utilizar, com opções adicionais e suporte a ferramentas MCP via callback, sobrepondo o modelo configurado por omissão, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

client.stream('gpt-4o-mini', messages, options, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
}, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
Atributos
NOMETIPODESCRIÇÃO
modelostringIdentificador do modelo a usar nesta chamada.
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( void )


stream(mensagens: Values, aoToken: java.util.function.Consumer<Values>) : void

Descrição

Executa uma conversa em streaming com o modelo de IA configurado, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Conte-me uma história curta.'))

client.stream(messages, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
})
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
Retorno

( void )


stream(mensagens: Values, aoToken: java.util.function.Consumer<Values>, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : void

Descrição

Executa uma conversa em streaming com o modelo de IA configurado, com suporte a ferramentas MCP via callback, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Que horas são?'))

client.stream(messages, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
}, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( void )


stream(mensagens: Values, opcoes: Values, aoToken: java.util.function.Consumer<Values>) : void

Descrição

Executa uma conversa em streaming com o modelo de IA configurado, com opções adicionais, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

client.stream(messages, options, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
})
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
Retorno

( void )


stream(mensagens: Values, opcoes: Values, aoToken: java.util.function.Consumer<Values>, callbackFerramenta: org.netuno.tritao.ai.client.Client$ToolCallback) : void

Descrição

Executa uma conversa em streaming com o modelo de IA configurado, com opções adicionais e suporte a ferramentas MCP via callback, processando cada token à medida que é gerado.

Como Usar
const messages = _val.list()
.add(_val.map().set('role', 'user').set('content', 'Olá!'))

const options = _val.map().set('temperature', 0.7)

client.stream(messages, options, (chunk) => {
_out.print(chunk.get('choices').get(0).get('delta').get('content'))
}, (toolName, args, mcpClient, tool) => {
_log.info('Ferramenta invocada: ' + toolName)
return null
})
Atributos
NOMETIPODESCRIÇÃO
mensagensValuesLista de mensagens da conversa.
opcoesValuesOpções adicionais: temperature (0.0–2.0), max_tokens, top_p.
aoTokenjava.util.function.ConsumerCallback invocado para cada token recebido, recebendo o fragmento da resposta como argumento.
callbackFerramentaorg.netuno.tritao.ai.client.Client$ToolCallbackCallback invocado antes de cada execução de ferramenta. Retorne null para execução normal ou um Values para sobrepor o resultado.
Retorno

( void )