Autor: Danés Meraj
Perfil de Linkedin: https://www.linkedin.com/in/danish-meraj-5b3138200
“Integración de ChatGPT-3 en SAP Analytics Cloud usando el widget personalizado”. ¿Suena complejo? ¡Créeme! No lo es. Puedes hacerlo en menos de 30 minutos, incluso si eres un principiante absoluto.
Esta publicación de blog explicará cómo crear una aplicación analítica en SAP Analytics Cloud que pueda tomar consultas de los usuarios y devolver respuestas. Implicará la creación de un widget personalizado en SAP Analytics Cloud para integrarse con ChatGPT-3 utilizando la API de OpenAI.
Paso 1 Requisitos previos:
Antes de proceder con la creación de un widget personalizado y su integración en SAC, es importante que cumpla con los siguientes requisitos.
Figura 1: La figura muestra la creación de la clave secreta.
Nota: Asegúrese de copiar y guardar de forma segura la clave secreta. Esta clave será necesaria para realizar una llamada a la API en el paso futuro.
Paso 2: crear un widget personalizado:
El widget personalizado creado en este blog nos ayudará a integrar la nube de SAP Analytics con la API de OpenAI. El widget personalizado se crea con diferentes componentes web y un archivo JSON. Estos archivos de componentes web difieren según el caso de uso del widget personalizado. En este caso, necesitamos dos archivos, es decir, «customWidget.json» y «main.js».
No cubriré los conceptos básicos del widget personalizado, pero si desea comprender los widgets personalizados en detalle, le recomiendo leer este agradable blog. Desmitificando widgets personalizados para SAP Analytics Cloud por Pranav Kandpal.
Seleccione un método entre el Método 1 y el Método 2. Tenga en cuenta que Se recomienda el método 1 para la creación rápida del widget personalizado.
Método 1: enchufar y usar
Copie el siguiente código y guárdelo como un archivo .json en su sistema local con el nombre «customWidget» y continúe con Paso 3.
{
"eula": "",
"vendor": "Danish",
"license": "",
"id": "com.danish.sap.sac.chatgpt",
"version": "1.0.0",
"name": "chatGPT SAC",
"newInstancePrefix": "chatGPTInSAC",
"description": "A custom widget to integrate chatGPT3 in SAC Analytic application",
"webcomponents": [
{
"kind": "main",
"tag": "custom-widget",
"url": "https://dmeraj.github.io/integrating-chatGPT3-in-SAC/main.js",
"integrity": "",
"ignoreIntegrity": true
}
],
"properties": {
"width": {
"type": "integer",
"default": 1
},
"height": {
"type": "integer",
"default": 1
}
},
"methods": {
"post": {
"description": "Wrapper for jQuery post",
"parameters": [
{
"name": "APIKey",
"type": "string",
"description": ""
},
{
"name": "endPoint",
"type": "string",
"description": ""
},
{
"name": "prompt",
"type": "string",
"description": ""
}
],
"returnType": "string"
}
},
"events": {
}
}
Método 2:
var ajaxCall = (key, url, prompt) => {
return new Promise((resolve, reject) => {
$.ajax({
url: url,
type: "POST",
dataType: "json",
data: JSON.stringify({
model: "text-davinci-002",
prompt: prompt,
max_tokens: 1024,
n: 1,
temperature: 0.5,
}),
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${key}`,
},
crossDomain: true,
success: function (response, status, xhr) {
resolve({ response, status, xhr });
},
error: function (xhr, status, error) {
const err = new Error('xhr error');
err.status = xhr.status;
reject(err);
},
});
});
};
const url = "https://api.openai.com/v1";
(function () {
const template = document.createElement("template");
template.innerHTML = `
<style>
</style>
<div id="root" style="width: 100%; height: 100%;">
</div>
`;
class MainWebComponent extends HTMLElement {
async post(apiKey, endpoint, prompt) {
const { response } = await ajaxCall(
apiKey,
`${url}/${endpoint}`,
prompt
);
//console.log(response.choices[0].text);
return response.choices[0].text;
}
}
customElements.define("custom-widget", MainWebComponent);
})();
Figura 2: La figura muestra la edición requerida si se cambia la URL de alojamiento.
Paso 3: Agregar el cuWidget de stom en SAC.
Agregue un widget personalizado en SAC navegando a Aplicación analítica -> Widgets personalizados y haga clic en el ícono ‘+’ como se muestra en la figura 3. Seleccione el archivo del sistema local y haga clic en «Aceptar» como se muestra en la fig. 4.
Figura 3: La figura muestra la adición del widget personalizado en SAC.
Figura 4: La figura muestra la carga del archivo json en SAC.
Etapa 4: Adición del widget personalizado a Analytic Designer.
Agregue el widget personalizado al diseñador de aplicaciones siguiendo los pasos de la figura 5.
Figura 5: La figura muestra cómo agregar un widget personalizado en el diseñador analítico.
Paso 5: Creación de una interfaz de usuario en Analytic Designer.
Agregue widgets adicionales al diseñador analítico para crear una interfaz de usuario básica y nombre los widgets como los que se muestran en la figura 6.
Figura 6: La figura muestra el widget necesario para crear una interfaz de usuario básica.
La interfaz de usuario final debería verse como se muestra en la fig. 7.
Figura 7: La figura muestra la descripción general de la interfaz de usuario.
Nota: El logotipo de ChatGPT-3 es opcional.
Paso 6: agregar un script al evento onClick
Agregue el siguiente script al evento onClick «button_submit». Reemplace SECRET_API_KEY con su clave API secreta creada en el Paso 1.
var endpoint = "completions";
var APIKey = "SECRET_API_KEY";
var prompt = InputField_prompt.getValue();
var response = chatGPTInSAC_1.post(APIKey,endpoint,prompt);
Text_response.applyText(response);
//console.log(["output", response]);
Figura 8: La figura muestra el script para el evento «onClick» en el botón.
Paso 7: Probar la integración
¡¡¡Felicidades!!! Se completó la integración de ChatGPT-3 en SAP Analytics Cloud. Adelante, escriba su consulta y obtenga la respuesta de chatGPT-3 como se muestra en la figura 9.
Nota: Si tiene problemas, como que la salida no es visible, haga que el tamaño del widget «Text_response» sea un poco más grande. Además, trate de obtener respuestas más cortas primero y luego ajuste gradualmente el resto de la interfaz de usuario para que se ajuste al requisito.
Figura 9: La figura muestra la aplicación Analítica dando respuesta de ChatGPT-3.
Conclusión: En este blog, creamos una aplicación analítica y la integramos con la API de OpenAI usando widgets personalizados. La aplicación analítica tiene una interfaz de usuario a través de la cual los usuarios pueden interactuar con el ChatGPT-3. La aplicación existente se puede ampliar y ajustar para adaptarse a casos de uso específicos. Este blog también puede dar una idea sobre cómo crear widgets personalizados para integrar con API externas.
Si encuentra útil este blog, haga clic en Me gusta en esta publicación de blog y sígame para obtener contenido relacionado con SAP Analytics Cloud. Si tiene alguna pregunta o comentario, por favor deje un comentario a continuación.
Referencias y estudios adicionales sobre un tema similar:
Integre rápidamente Sap Analytics Cloud con otros sistemas mediante un widget personalizado.
Desmitificando widgets personalizados para SAP Analytics Cloud
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073