Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!