¿Cómo puedo acceder a la response en la función de datos desde los methods ?
this no funcionará en este caso, this solo me dará acceso a una propiedad de alcance de methods :
<script> export default { data: function () { return { prompt: '', response: '', show: false } }, methods: { getResponse: function () { let text const data = { prompt: this.prompt, temperature: 0.5, max_tokens: 64, top_p: 1.0, frequency_penalty: 0.0, presence_penalty: 0.0, } fetch("https://api.openai.com/v1/engines/text-curie-001/completions", { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${process.env.VUE_APP_OPENAI_SECRET}`, }, body: JSON.stringify(data), }) .then (response => { if (response.ok) { return response.json() }else{ throw new Error('We got an error') } }) .then (result => { text = result.choices[0].text console.log(text) }) .catch( (err) => { console.log('ERROR:', err.message) }) this.response = text } } } </script>Algo como esto debería funcionar
<template> <div> <pre>{{ response }}</pre> <button @click="getResponse">call it</button> </div> </template> <script> export default { data() { return { prompt: '', response: '', } }, methods: { async getResponse() { const data = { prompt: this.prompt, temperature: 0.5, max_tokens: 64, top_p: 1.0, frequency_penalty: 0.0, presence_penalty: 0.0, } try { const response = await fetch( 'https://api.openai.com/v1/engines/text-curie-001/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.VUE_APP_OPENAI_SECRET}`, }, body: JSON.stringify(data), } ) if (response.ok) { const result = await response.json() this.response = result.choices[0].text } } catch (err) { throw new Error('We got an error', err) } }, }, } </script>