Marked as helpful by the asker
VITE_ (and NEXT_PUBLIC_) means "ship this to the browser". Your key is in the JavaScript bundle right now; anyone can copy it and spend your credits. Rotate it today.
The key must live on a server you control: a tiny API route (Vercel function, Supabase Edge Function) that holds the key and forwards the request. The browser talks to your route, never to OpenAI. Add rate limiting to that route or the same people will spend your credits through it.