openllmetry-js icon indicating copy to clipboard operation
openllmetry-js copied to clipboard

Bug: OpenAI parse method crashes the process

Open Kovbo opened this issue 5 months ago • 2 comments

Along with structured outputs, OpenAI introduced the parse method openai.beta.chat.completions.parse(), which returns a type-safe completion based on a provided zod schema.

Calling this method with openLLMetry initialized, results in the following error:

An error occurred: TypeError: this._client.chat.completions.create(...)._thenUnwrap is not a function
    at Completions.parse (.../node_modules/.pnpm/[email protected][email protected]/node_modules/openai/src/resources/beta/chat/completions.ts:77:8)

It captures the trace but crashes the whole process.

Minimal reproducible example:

import traceloop from '@traceloop/node-server-sdk';
import OpenAI from 'openai';
import { z } from 'zod';
import { zodResponseFormat } from 'openai/helpers/zod';

const openai = new OpenAI();

traceloop.initialize({ disableBatch: true });

async function main() {
  const completion = await openai.beta.chat.completions.parse({
    messages: [
      {
        role: 'system',
        content:
          'You are a helpful math tutor. Guide the user through the solution step by step.',
      },
      { role: 'user', content: 'how can I solve 8x + 7 = -23' },
    ],
    model: 'gpt-4o-2024-08-06',
    response_format: zodResponseFormat(
      z.object({
        final_answer: z.string(),
      }),
      'math_answer'
    ),
  });

  console.log(completion);
}

main();

Kovbo avatar Sep 20 '24 00:09 Kovbo