Como faço para passar dados para um artefato?

Alguma dica de como passar dados para o artefato? Quero colar o mesmo artefato em vários lugares do meu fórum, usando um token JWT diferente em cada lugar. Tenho tentado coisas como esta, mas não consigo fazer o criador usá-lo:


<div class="ai-artifact" data-jwt-token="my-jwt-token" data-ai-artifact-id="10"></div>

Ou se o Criador Web pudesse descobrir em qual tópico está o ID, eu poderia trabalhar com isso.

3 curtidas

Ah, este é um caso complicado, não, isso não é algo que o framework permite no momento, é um caso de uso muito interessante.

Gosto da solicitação de recurso aqui de simplesmente passar todos os atributos data- para o artefato isolado, é uma solução elegante.

Uma opção que pode funcionar, no entanto, é usar parâmetros de consulta, mas o iframe isolado não tinha acesso a isso:

https://meta.discourse.org/discourse-ai/ai-bot/artifacts/166?222

@david você acha que há alguma implicação de segurança em passar informações sobre o mundo exterior para um artefato? (deixar o sandbox, mas acho que ecoar window.location.search em algum tipo de atributo?)

3 curtidas

Dar ao artefato acesso à string de consulta parece bom. A maneira mais fácil seria usar Ruby para injetá-la no documento HTML não confiável. Talvez como uma meta tag ou algo assim.

3 curtidas

Foi ideia do bot. :slight_smile:

Eu pensaria que é um caso de uso muito comum para artefatos do mundo real. Tenho um artefato de análise financeira que quero executar contra muitos investimentos. O artefato extrai os dados de desempenho de uma API, usando o JWT para identificar qual investimento. Criar muitos artefatos diferentes, cada um com um JWT codificado diferente, não é uma opção.

Sem querer abusar da sorte, mas se eu também pudesse obter o ID do usuário e o ID do tópico no artefato, isso abriria muito mais aplicações.

4 curtidas

o ID do tópico é fácil de adicionar, mas o ID do usuário pode ser um pouco mais complicado, pois o artefato é fortemente armazenado em cache, teríamos que reduzir parte do cache para que isso acontecesse.

Isso seria, na verdade, melhor para minha aplicação do que passar atributos de dados. Existe um mapeamento de 1:1 entre tópicos e meus JWTs, então posso procurar o JWT, sem ter que editar o JWT em cada postagem.

Isso provavelmente não lida com outros casos de uso, no entanto.

Tecnicamente, apenas passar a URL resolve isso, pois o ID do tópico faz parte da URL.

Vou resolver isso na próxima semana, estou trabalhando no suporte a PDF no momento :slight_smile:

Só para confirmar, isso foi implementado?

Ainda não, vou brincar um pouco com isso hoje para ver o quão complicado é.

Isso resolverá o problema. Não há realmente uma escolha simples a não ser usar postMessage aqui devido ao sandboxing, então a API requer um await… funciona, o que é bom.

7 curtidas

Funciona muito bem para mim!

1 curtida