Este artículo es una extensión de este, donde exploramos la integración de Azure OpenAI con Stream en bot Composer Frameworks para respuestas más rápidas.
En esta ocasión, nos alejamos de la parte Low Code del producto para abordar una necesidad específica: enviar un valor desde el Middleware hacia la parte Low Code del producto. Este valor debe ser recuperado y utilizado dentro del contexto de la conversación. Además, como queremos que este dato persista durante las interacciones del usuario y esté disponible en diferentes flujos, hemos decidido almacenarlo en el estado de usuario (UserState
).
Constructor de la clase
El constructor inicializa el estado del usuario (UserState
) y crea un acceso a propiedades específicas utilizando una clave, en este caso, "context"
:
public class ComposerMiddleware : IMiddleware { private readonly UserState _userState; private readonly IStatePropertyAccessor<string> _userContextAccessor; public ComposerMiddleware(UserState userState) { _userState = userState; _userContextAccessor = _userState.CreateProperty<string>("context"); } }
Estableciendo el valor de una propiedad
Para asignar valores dentro del contexto del usuario, se utiliza el método SetAsync
:
var variable = "mi valor de variable"; await _userContextAccessor.SetAsync(turnContext, variable, cancellationToken);
Guardando los cambios en el estado
Finalmente, los cambios realizados en el estado de usuario se persisten usando SaveChangesAsync
, asegurando que los datos sean almacenados correctamente:
await _userState.SaveChangesAsync(turnContext, false, cancellationToken);
Con esto es todo, muchas gracias por llegar hasta aquí.