Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
Espera en un bucle. (otra vez)

Este problema me parece la repetición de una pesadilla. El proyecto es entrenar un chatbot usando gpt3 y estoy experimentando con incrustaciones.

Tengo un documento y estoy tratando de crear incrustaciones para las diferentes secciones. getEmbeddings() parece devolver un valor de acuerdo con mis pruebas. Sin embargo, cuando mi ciclo finaliza, parece que no tengo una incrustación en mi sección (solo hay una... cuesta dinero hacer incrustaciones, así que solo ejecutaré el ciclo una vez hasta que funcione).

¿Qué estoy haciendo mal?

 begin(); async function begin(){ let sections = []; let inputFileName = "sourceDocument.jsonl"; let filecontents = fs.readFileSync(inputFileName,{encoding:'utf-8'}) let inputRows = [] = String(filecontents).split(/\r?\n/); for(let i = 0; i < inputRows.length; i++) { let row = inputRows[i]; if(row.trim().length == 0) continue; let dataObject = JSON.parse(row); let text = dataObject.completion; let section = new Section(); let titleend = text.indexOf("'>") //console.log(dataObject); section.title = text.substring(1,titleend); section.text = String(text).substring( (titleend + 2), (text.length - 10) ); section.embedding = await getEmbedding(section.text); sections.push(section); break; } console.log(sections[0]); } async function getEmbedding(textSample){ const embeddingModel = "text-search-davinci-doc-001"; if(DEBUGGING){ console.log(`DEBUG: getEmbedding(${textSample})`); } const OPENAI_REQEST_HEADERS = { "Content-Type":"application/json", "Authorization":`Bearer ${OPENAI_API_KEY}` } let data = { "input" : textSample, "model" : embeddingModel }; let res; await axios.post(EMBEDDINGS, data, {headers:OPENAI_REQEST_HEADERS}) .then((response) => { if(DEBUGGING) { console.log(" Embedding: " + response.data.data[0].embedding); } let embedding = response.data.data[0].embedding; return embedding; }) .catch((error) => { console.log("Error posting to OpenAI:"); console.log(error.response.data); }) }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Use async / await o use then patrón nativo de Promises, pero trate de evitar usar ambos: se vuelve confuso y ahí es donde se equivocó. Su declaración de return regresa del método then , pero no del método getEmbedding externo en sí.

Hay 2 formas de resolver esto: una es devolver el resultado de axios.post pero el otro método, un poco más fácil de leer, usa async / await en todo momento.

 async function getEmbedding(textSample){ const embeddingModel = "text-search-davinci-doc-001"; if(DEBUGGING){ console.log(`DEBUG: getEmbedding(${textSample})`); } const OPENAI_REQEST_HEADERS = { "Content-Type":"application/json", "Authorization":`Bearer ${OPENAI_API_KEY}` } let data = { "input" : textSample, "model" : embeddingModel }; try{ const response = await axios.post(EMBEDDINGS, data, {headers:OPENAI_REQEST_HEADERS}); if(DEBUGGING) { console.log(" Embedding: " + response.data.data[0].embedding); } return response.data.data[0].embedding; } catch(error){ console.log("Error posting to OpenAI:"); console.log(error.response.data); } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda