Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: otroWeyMas.nasm en 30 Marzo 2023, 05:56 am



Título: Ayuda con ChatGPT y javascript
Publicado por: otroWeyMas.nasm en 30 Marzo 2023, 05:56 am
Hola

Estaba leyendo la Dococumentación de OpenAi para aprender a usarlo, y se me ocurrió hacerlo con javascript, pero tengo una duda que no logro resolver. no tengo mucho conocimiento con JSON, les explico.

desarrollé esté codigo basandome en la Doc, le muestro como lo hice

Código:
 const response = await fetch('https://api.openai.com/v1/chat/completions', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer openAPI.Key'
      },
      body: JSON.stringify({"model": "gpt-3.5-turbo",
      "messages": [{"role": "user", "content": "Say this is a test!"}],
      "temperature": 0.7})
    }).then(response =>{


    //console.log( response.json();


y me muestra lo siguiente en la consola.

Código:
Promise {<pending>}
[[Prototype]]
:
Promise
[[PromiseState]]
:
"fulfilled"
[[PromiseResult]]
:
Object

Si lo busco tal cual lo haría en python, por ejemplo

choices[0].message.content

Efectivamente, me sale la respuesta de ChatGPT

Código:
[[PromiseResult]]
:
Object
choices
:
Array(1)
0
:
finish_reason
:
"stop"
index
:
0
message
:
content
:
"This is a test!"
role
:
"assistant"

¿Cómo puedo llegar a 'content' usando Json y que solo me muestre en console.log lo que hay en 'content' usando el código de javascript de arriba?

Porque me gustaría mostrar la respuesta después usando

document.getElementById('mostrar).innerText = respuesta;

Estuve googleando pero solo encuentro ejemplos de JSON.stringfy pero no de como mostrar solo el contenido de un array, en este caso el array de 'choices'

Espero me puedan ayudar con esto y haber podido explicar bien mi duda.

Gracias.


Título: Re: Ayuda con ChatGPT y javascript
Publicado por: Locura_23 en 30 Marzo 2023, 16:56 pm
Hola, por lo que entiendo entonces, el JSON te está llegando pero tenes problemas para leerlo en el programa.

JSON es una notacion tipo llave, valor. Esta basada en la notacion de objetos de javascript pero es diferente. En Python es equivalente a un diccionario. Por lo tanto para utilizar los datos en el programa primero tenes que hacer esa conversion que corresponda.

Lo que pienso es que primero tendrias que convertir el json que te llega, a un objeto de javascript para que puedas luego hacer lo que necesites con el.

Fijate este ejemplo, donde se guardan las llaves del json en un arreglo:

Código
  1. const randomJson = '{"nombre": "Juan", "apellido":"Perez", "edad": "28"}';
  2. const arregloLlaves = [];
  3.  
  4. //convertir el json en un objeto de javascript
  5. const obj = JSON.parse(randomJson);
  6.  
  7. //imprimir el objeto
  8. console.log("\nObjeto");
  9. console.log(obj);
  10.  
  11. //recorrer el objeto con un for
  12. for(const [llave, valor] of Object.entries(obj) )
  13. {
  14. console.log(`${llave}: ${valor}`);
  15. arregloLlaves.push(llave); //guardar en el arreglo cada llave
  16. }
  17.  
  18. console.log("\nArreglo");
  19. console.log(arregloLlaves);
  20.  

Por cierto, no falta verificar la respuesta del servidor en tu código?



Título: Re: Ayuda con ChatGPT y javascript
Publicado por: otroWeyMas.nasm en 30 Marzo 2023, 18:49 pm
Hola

Gracias Locura_23, ya lo pude solucionar.

Tratando de hacerlo funcionar con el ejemplo que me diste, me di cuenta que al parecer ya como un objeto los datos, pero no conocía Promise ni tampoco como funcionaba Response.json completamente.

Buscando encontré info sobre Promise y funciones de Response, por ejemplo

response.status
response.text()
etc...

Al buscar en developer.mozilla encontré una pequeña explicación sobre response y ahí encontré el array con los datos y listo, ya funciona.

Muchas gracias,

Saludos.


Título: Re: Ayuda con ChatGPT y javascript
Publicado por: Locura_23 en 31 Marzo 2023, 03:27 am
Genial saludos!


Título: Re: Ayuda con ChatGPT y javascript
Publicado por: DarK_FirefoX en 4 Abril 2023, 13:45 pm
Hola

Gracias Locura_23, ya lo pude solucionar.

Tratando de hacerlo funcionar con el ejemplo que me diste, me di cuenta que al parecer ya como un objeto los datos, pero no conocía Promise ni tampoco como funcionaba Response.json completamente.

Buscando encontré info sobre Promise y funciones de Response, por ejemplo

response.status
response.text()
etc...

Al buscar en developer.mozilla encontré una pequeña explicación sobre response y ahí encontré el array con los datos y listo, ya funciona.

Muchas gracias,

Saludos.

Nota relacionada: Muy importante, si utilizas JS, el conocimiento de las Promises. Te recomiendo que le dediques un tiempito a estudiarlas bien.