html ⛑️ Eventos | Nullcore
Pule para o conteúdo principal

⛑️ Eventos: usando__event_emitter__e__event_call__em webui aberto

A arquitetura de plug -in da Nullcore não é apenas processar a entrada e produzir saída -É sobre comunicação interativa em tempo real com a interface do usuário e usuários. Para tornar suas ferramentas, funções e tubos mais dinâmicos, o Webui aberto fornece um sistema de eventos integrado por meio do__event_emitter__e__event_call__ajudantes.

Este guia explicaO que são eventos, Assim,Como você pode desencadeá -losdo seu código eo catálogo completo dos tipos de eventosvocê pode usar (incluindo muito mais do que apenas"input"


🌊 O que são eventos?

Eventossão notificações em tempo real ou solicitações interativas enviadas do seu código de back-end (ferramenta ou função) para a interface da web. Eles permitem atualizar o bate -papo, exibir notificações, solicitar confirmação, executar fluxos de interface do usuário e muito mais.

  • Os eventos são enviados usando o__event_emitter__ajudante para atualizações unidirecionais, ou__event_call__Quando você precisa de entrada do usuário ou resposta (por exemplo, confirmação, entrada, etc.).

Metáfora:
Pense em eventos como notificações push e diálogos modais que seu plug -in pode acionar, tornando a experiência de bate -papo mais rica e mais interativa.


🧰 Uso básico

Enviando um evento

Você pode desencadear um evento em qualquer lugar dentro da sua ferramenta ou funcionar chamando:

aguarde__event_emitter__
{
"tipo" "status", Assim, # Veja a lista de tipos de eventos abaixo
"dados" {
"descrição" "O processamento começou!", Assim,
"feito" Falso, Assim,
"escondido" Falso, Assim,
, Assim,


Vocênãoprecisa adicionar manualmente campos comochat_idoumessage_id- Estes são tratados automaticamente por Webui aberto.

Eventos interativos

Quando você precisa pausar a execução até que o usuário responda (por exemplo, confirmar/cancelar diálogos, execução de código ou entrada), use__event_call__

resultado aguarde__Event_Call__
{
"tipo" "entrada", Assim, # Ou "confirmação", "execute"
"dados" {
"título" "Por favor, digite sua senha", Assim,
"mensagem" "A senha é necessária para esta ação", Assim,
"espaço reservado" "Sua senha aqui", Assim,
, Assim,


# O resultado conterá o valor de entrada do usuário

📜 Estrutura de carga útil de eventos

Quando você emite ou chama um evento, a estrutura básica é:

{
"tipo" "Event_type", Assim, // Veja a lista completa abaixo
"dados" { // Carga útil específica do evento

Na maioria das vezes, você só define"type"e"data". Abra o Webui preenche o roteamento automaticamente.


🗂 Lista completa de tipos de eventos

Abaixo está uma tabela abrangente detodos suportadostypevaloresPara eventos, juntamente com o efeito pretendido e a estrutura de dados. (Isso é baseado na análise atualizada da lógica de manuseio de eventos do Webui.

tipoQuando usarEstrutura de carga útil de dados (exemplos)
statusMostre uma atualização/histórico de status para uma mensagem{description: ..., done: bool, hidden: bool}
chat:completionForneça um resultado de conclusão de bate -papo(Custom, consulte Nullcore Internals)
chat:message:delta, Assim,
message
Anexar conteúdo à mensagem atual{content: "text to append"}
chat:message, Assim,
replace
Substitua completamente o conteúdo atual da mensagem{content: "replacement text"}
chat:message:files, Assim,
files
Definir ou substituir arquivos de mensagens (para uploads, saída){files: [...]}
chat:titleDefinir (ou atualizar) o título de conversa de bate -papoString de tópico ou{title: ...}
chat:tagsAtualize o conjunto de tags para um bate -papoArray de tag ou objeto
source, Assim,
citation
Adicione uma fonte/citação ou resultado de execução de códigoPara código: vejaabaixo.
notificationMostre uma notificação ("torrada") na interface do usuário{type: "info" or "success" or "error" or "warning", content: "..."}
confirmation
(precisa__event_call__
Peça confirmação (diálogo OK/Cancelar){title: "...", message: "..."}
input
(precisa__event_call__
Solicite entrada simples de entrada do usuário (caixa de diálogo "Caixa de entrada"){title: "...", message: "...", placeholder: "...", value: ...}
execute
(precisa__event_call__
Solicitar a execução do código do lado do usuário e resultado de retorno{code: "...javascript code..."}

Outros/Tipos Avançados:

  • Você pode definir seus próprios tipos e lidar com eles na camada da interface do usuário (ou usar os próximos mecanismos de extensão de eventos).

❗ Detalhes sobre tipos de eventos específicos

status

Mostre uma atualização de status/progresso na interface do usuário:

aguarde__event_emitter__
{
"tipo" "status", Assim,
"dados" {
"descrição" "Etapa 1/3: dados buscando dados ...", Assim,
"feito" Falso, Assim,
"escondido" Falso, Assim,
, Assim,



chat:message:deltaoumessage

Saída de streaming(Appender Text):

aguarde__event_emitter__
{
"tipo" "Chat: Mensagem: Delta", Assim, # ou simplesmente "mensagem"
"dados" {
"contente" "Texto parcial",
, Assim,



# Mais tarde, como você gera mais:
aguarde__event_emitter__
{
"tipo" "Chat: Mensagem: Delta", Assim,
"dados" {
"contente" "Próximo pedaço de resposta."
, Assim,



chat:messageoureplace

Defina (ou substitua) o conteúdo inteiro da mensagem:

aguarde__event_emitter__
{
"tipo" "Chat: mensagem", Assim, # ou "Substituir"
"dados" {
"contente" "Resposta final e completa."
, Assim,



filesouchat:message:files

Anexe ou atualize arquivos:

aguarde__event_emitter__
{
"tipo" "Arquivos", Assim, # ou "Chat: Mensagem: Arquivos"
"dados" {
"Arquivos" [[
# Abrir objetos de arquivo webui

, Assim,



chat:title

Atualize o título do bate -papo:

aguarde__event_emitter__
{
"tipo" "Chat: título", Assim,
"dados" {
"título" "Sessão de Bot Análise de Mercado"
, Assim,



chat:tags

Atualize as tags do bate -papo:

aguarde__event_emitter__
{
"tipo" "Chat: Tags", Assim,
"dados" {
"Tags" [["financiar", Assim, "Ai", Assim, "Relatamento diário"
, Assim,



sourceoucitation(e execução de código)

Adicione uma referência/citação:

aguarde__event_emitter__
{
"tipo" "fonte", Assim, # ou "citação"
"dados" {
# Nullcore Fonte (Citation) Objeto



Para execução de código (Estado de execução do rastreamento):

aguarde__event_emitter__
{
"tipo" "fonte", Assim,
"dados" {
# Nullcore Code Source (Citation) Objeto




notification

Mostre uma notificação de brinde:

aguarde__event_emitter__
{
"tipo" "notificação", Assim,
"dados" {
"tipo" "Info", Assim, # "Sucesso", "Aviso", "Erro"
"contente" "A operação foi concluída com sucesso!"




confirmationrequer __event_call__

Mostre uma caixa de diálogo Confirmar e obter resposta do usuário:

resultado aguarde__Event_Call__
{
"tipo" "confirmação", Assim,
"dados" {
"título" "Tem certeza?", Assim,
"mensagem" "Você realmente quer prosseguir?"




seresultado # ou verifique o conteúdo do resultado
aguarde__event_emitter__{
"tipo" "notificação", Assim,
"dados" {"tipo" "sucesso", Assim, "contente" "Operação confirmada pelo usuário."

outro
aguarde__event_emitter__{
"tipo" "notificação", Assim,
"dados" {"tipo" "aviso", Assim, "contente" "Usuário cancelado."


inputrequer __event_call__

Promover o usuário para entrada de texto:

resultado aguarde__Event_Call__
{
"tipo" "entrada", Assim,
"dados" {
"título" "Digite seu nome", Assim,
"mensagem" "Precisamos do seu nome prosseguir.", Assim,
"espaço reservado" "Seu nome completo"




user_inputresultado
aguarde__event_emitter__
{
"tipo" "notificação", Assim,
"dados" {"tipo" "Info", Assim, "contente" F "Você entrou:{user_input



executerequer __event_call__

Execute o código dinamicamente do lado do usuário:

resultado aguarde__Event_Call__
{
"tipo" "executar", Assim,
"dados" {
"código" "Imprimir (40 + 2);", Assim,




aguarde__event_emitter__
{
"tipo" "notificação", Assim,
"dados" {
"tipo" "Info", Assim,
"contente" F "Código executado, resultado:{resultado




🏗�️ Quando e onde usar eventos

  • De qualquer ferramenta, ou funçãoem webui aberto.
  • Pararespostas de fluxo, mostre progresso, solicite dados do usuário, atualize a interface do usuário ou exiba informações/arquivos suplementares.
  • await __event_emitter__é para mensagens unidirecionais (fogo e esqueça).
  • await __event_call__é para quando você precisa de uma resposta do usuário (entrada, execução, confirmação).

💡 Dicas e notas avançadas

  • Vários tipos por mensagem:Você pode emitir vários eventos de tipos diferentes para uma mensagem - por exemplo, mostrarstatusAtualizações e depois transmitem comchat:message:delta, então completo com umchat:message
  • Tipos de eventos personalizados:Embora a lista acima seja o padrão, você pode usar seus próprios tipos e detectá -los/lidar com o código da interface do usuário personalizado.
  • Extensibilidade:O sistema de eventos foi projetado para evoluir - sempre verifique oAbra a documentação da Webuipara a lista mais atual e uso avançado.

🧐 FAQ

P: Como faço para acionar uma notificação para o usuário?

Usarnotificationtipo:

aguarde__event_emitter__{
"tipo" "notificação", Assim,
"dados" {"tipo" "sucesso", Assim, "contente" "Tarefa completa"

P: Como solicito a entrada do usuário e receba a resposta deles?

Usar:

resposta aguarde__Event_Call__{
"tipo" "entrada", Assim,
"dados" {
"título" "Qual o seu nome?", Assim,
"mensagem" "Por favor, digite seu nome preferido:", Assim,
"espaço reservado" "Nome"


# Resposta será: {"value": "Resposta do usuário"}

P: Quais tipos de eventos estão disponíveis para__event_call__

  • "input": Caixa de diálogo de caixa de entrada
  • "confirmation": Sim/não, ok/cancelar diálogo
  • "execute": Execute o código fornecido no cliente e o resultado de retorno

P: Posso atualizar arquivos anexados a uma mensagem?

Sim - use o"files"ou"chat:message:files"tipo de evento com um{files: [...]}carga útil.

P: Posso atualizar o título ou tags da conversa?

Absolutamente: Use"chat:title"ou"chat:tags"de acordo.

P: Posso transmitir respostas (tokens parciais) para o usuário?

Sim - emoção"chat:message:delta"eventos em um loop e depois terminar com"chat:message"


📝 Conclusão

EventosDê a você superpotências interativas em tempo real dentro do Nullcore. Eles permitem que seu código atualize o conteúdo, acionem notificações, solicitam entrada do usuário, resultados de fluxo, código de manuseio e muito mais - conectando sua inteligência de back -end à interface do usuário de bate -papo.

  • Usar__event_emitter__Para atualizações de status/conteúdo unidirecional.
  • Usar__event_call__Para interações que requerem acompanhamento do usuário (entrada, confirmação, execução).

Consulte este documento para obter tipos e estruturas de eventos comuns e explorar o código -fonte ou documentos do WebUI aberto para quebrar atualizações ou eventos personalizados!


Feliz codificação orientada a eventos em webui aberto! 🚀