OpenAI key not getting picked up from Scrimba environment

Hi. I am doing the AI Engineer course. I am getting

TypeError: OpenAI is not a constructor

I’m pretty sure this is because my key is not being picked up correctly (it is saved in my environment settings). I know the code and the key do work as I have recreated the project exactly in VScode / node.js and it runs and gives me a reply from OpenAI. I did have a key saved in scrimba env before that was not valid, but I pasted the new key in its place and pressed save, and I can see it is now correct - could that be part of the problem?

The relevant part of my code looks like this. As per the tutorial, I shouldn’t need to include any reference to my key, right? It just gets picked up automatically?

import OpenAI from 'openai'

const openai = new OpenAI({
    dangerouslyAllowBrowser: true
})

But I think there’s some other bug going on, because sometimes the thing seems to hang, and the error message doesn’t change whatever gibberish I write in the code, and then a full minute later an error pops up on the bottom of the screen for a second or two, saying something like
DOCTYPE is not valid JSON
or something that suggests to me it is something about the scrimba browser that isn’t working right.

@Tom_Chant are you able to help me solve this? For now I have resorted to copy-pasting in to VScode and running the exercises locally in node, but obviously I would prefer to do it all within your lovely platform.

I am having the exact same issue here :thinking:

My OpenAI works because, as the OP, if I run the code locally it works.

Wish the Scrimba devs will be able to sort it out :folded_hands:

Hi @AndreaBarghigiani. So I have now swapped one problem for another. I realised I had not given my key the correct name in the scrimba env. It needs to be OPENAI_API_KEY. Now that I’ve corrected that, I am getting a new error which is

TypeError: Failed to resolve module specifier "openai". Relative references must start with either "/", "./", or "../"

So it seems that the path to openai is not right. This only happens if I have the openai dependency installed. If I remove it, I get the same “not a constructor” error as before. If I put a slash before ‘openai’, I get

`Error: Failed to load script tag with src=“https://cw0.scrimba.com/index.js

I’m gutted because I love this site and the lessons are so good, but I can’t spend any more time trying to troubleshoot this.

I’ve just tried the same thing in Safari (was previously using Chrome). In Safari, instead of the “failed to resolve module” error, I get the error message

Error: Cannot parse given Error object

If I delete the dependency I get no error message in Safari (but nothing happens.)

@roku could you help?

EDIT: @roku I fixed it! It occured to me it might be the version of the OpenAI dependency that was the problem, and I found another post from you elsewhere in the forum asking someone to try openai@4.14.2. I deleted the current package and tried that instead, and it works now.

You might want to pin this advice somewhere? I would have thought there must be a lot of people having this same problem, if the latest OpenAI package, which Scrimba installs as a dependency automatically when you type “openai” in dependenices, doesn’t work with Scrimba?

Someone on Discord replied me with the suggestion of using the same version as the one you did mention here :sweat_smile:

BTW I agree with you here, pinning the answer with the correct version will make life easier to many!

PS: the funny thing is that all following lessons have the openai@4.14.2 version already added into the deps