¿Cómo paso datos a un artefacto?

¿Algún consejo sobre cómo pasar datos al artefacto? Quiero pegar el mismo artefacto en varios lugares de mi foro, usando un token JWT diferente en cada lugar. He estado intentando cosas como esta pero no consigo que el creador lo use:


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

O si el Creador Web pudiera averiguar en qué tema se encuentra, podría trabajar con eso.

3 Me gusta

Oh, este es complicado. No, el framework no lo permite en este momento, es un caso de uso muy interesante.

Me gusta la solicitud de funcionalidad de simplemente pasar todos los atributos data- al artefacto aislado, es una solución elegante.

Una opción que podría funcionar, sin embargo, es apoyarse en los parámetros de consulta, pero el iframe aislado no tenía acceso a eso:

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

@david, ¿crees que hay alguna implicación de seguridad al pasar información del mundo exterior a un artefacto? (dejar el sandbox, pero supongo que reflejar window.location.search en algún tipo de atributo).

3 Me gusta

Darle al artefacto acceso a la cadena de consulta suena bien. Lo más fácil sería usar Ruby para inyectarlo en el documento HTML no confiable. Quizás como una etiqueta meta o algo así.

3 Me gusta

Fue idea del bot. :slight_smile:

Pensaría que es un caso de uso muy común para artefactos del mundo real. Tengo un artefacto de análisis financiero que quiero ejecutar contra muchas inversiones. El artefacto extrae los datos de rendimiento de una API, utilizando el JWT para identificar la inversión. Crear muchos artefactos diferentes, cada uno con un JWT codificado de forma diferente, no es una opción.

Sin querer abusar de la suerte, pero si también pudiera obtener el ID de usuario y el ID de tema en el artefacto, eso abriría muchas más aplicaciones.

4 Me gusta

el ID de tema es fácil de añadir, pero el ID de usuario puede ser un poco más complicado, ya que el artefacto está muy cacheado, tendríamos que reducir parte del caché para que eso suceda.

Eso sería en realidad mejor para mi aplicación que pasar atributos de datos. Hay una correspondencia 1:1 entre los temas y mis JWT, por lo que puedo buscar el JWT, sin tener que editar el JWT en cada publicación.

Probablemente eso no maneje otros casos de uso.

Técnicamente, solo pasar la URL soluciona esto, ya que el ID del tema es parte de la URL.

Lo solucionaré la próxima semana, estoy trabajando en el soporte de PDF en este momento :slight_smile:

Solo para confirmar, ¿esto se implementó alguna vez?

Aún no, voy a jugar un poco con ello hoy para ver qué tan complicado es esto.

Esto lo solucionará. Realmente no hay una opción sencilla más que usar post message aquí debido al sandboxing, por lo que la API requiere un await… sin embargo, funciona, lo cual es bueno.

7 Me gusta

¡Funciona perfectamente para mí!

1 me gusta