function extractValues()

in resume-extraction/app/api/extract_resume/route.ts [12:46]


function extractValues(resumeText: string): ReadableStream {
  console.log('Extract values from resume text:', resumeText)

  const stream = openai.beta.chat.completions.stream({
    model: MODEL,
    messages: [
      { role: 'system', content: EXTRACT_VALUES_PROMPT },
      { role: 'user', content: resumeText }
    ],
    response_format: zodResponseFormat(ResumeSchema, 'event')
  })

  const encoder = new TextEncoder()

  const readableStream = new ReadableStream({
    start(controller) {
      stream
        .on('content.delta', ({ parsed }) => {
          console.log('content.delta parsed:', parsed)
          // Send the parsed data as JSON
          controller.enqueue(encoder.encode(JSON.stringify(parsed) + '\n'))
        })
        .on('content.done', () => {
          console.log('content.done')
          controller.close()
        })
        .on('error', error => {
          console.error('Error in OpenAI stream:', error)
          controller.error(error)
        })
    }
  })

  return readableStream
}