nextjs-openai-doc-search icon indicating copy to clipboard operation
nextjs-openai-doc-search copied to clipboard

Cannot generate embeddings

Open antonioglass opened this issue 2 years ago • 12 comments

Bug report

antonio@Antonios-MacBook-Pro nextjs-openai-doc-search % pnpm run embeddings

> [email protected] embeddings /Users/antonio/Desktop/nextjs-openai-doc-search
> tsx lib/generate-embeddings.ts

Discovered 1 pages
Checking which pages are new or have changed
Page '/docs/openai_embeddings' or one/multiple of its page sections failed to store properly. Page has been marked with null checksum to indicate that it needs to be re-generated.
{
  code: 'PGRST116',
  details: 'The result contains 0 rows',
  hint: null,
  message: 'JSON object requested, multiple (or no) rows returned'
}
Embedding generation complete

Describe the bug

Cannot generate embeddings when running pnpm run embeddings.

To Reproduce

  1. Set up a local project that is connected to a remote Supabase project.
  2. Run pnpm run embeddings locally.

Expected behavior

Successful generation of embeddings.

System information

  • OS: macOS
  • Version of supabase-js: ^2.13.0
  • Version of Node.js: 18.15.10

antonioglass avatar Aug 29 '23 13:08 antonioglass

got the same issue

thiemo--bleeken avatar Sep 01 '23 06:09 thiemo--bleeken

Can you double check that your local .env file is configured with the correct keys and if yes, can you share the content of your nods_page and nods_page_section tables?

thorwebdev avatar Sep 08 '23 06:09 thorwebdev

I'm having the same issue. My keys are correct in the local env, and on the production environment Supabase and Vercel are integrated. But pnpm run embeddings fails consistently.

jackf723 avatar Sep 11 '23 13:09 jackf723

This seems to have resolved on my end after upgrading the supabase client package. You can do so by running pnpm up @supabase/supabase-js Screenshot 2023-09-15 at 5 39 37 PM

wonkishtofu avatar Sep 15 '23 09:09 wonkishtofu

After updating the version of Supabase, we can generate embeddings now, but now one of the TypeScript files fail to compile after updating the version of Supabase. image

I would post my fix, but I'm very much not a software developer and I'm pretty sure my solution violates at least 10 good practices of software engineering, so I'll let someone else propose a fix.

danielnyan avatar Sep 15 '23 13:09 danielnyan

After updating supabase, same error as before when attempting a search. Sad news, the search has failed! Please try again.

jackf723 avatar Sep 15 '23 13:09 jackf723

And also getting the ts compilation errors on deployment. Failed to compile.

./lib/generate-embeddings.ts:334:36 Type error: Conversion of type '{ id: any; path: any; }[]' to type 'undefined' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.

332 | // We use checksum to determine if this page & its sections need to be regenerated 333 | if (!shouldRefresh && existingPage?.checksum === checksum) {

334 | const existingParentPage = existingPage?.parentPage as Singular< | ^ 335 | typeof existingPage.parentPage 336 | > 337 |

jackf723 avatar Sep 15 '23 13:09 jackf723

As of 19 Sep 2023, 00:09 UTC, Vercel has identified an Increased middleware and edge function failures in pdx1 which causes the error of "Sad news, the search has failed!" to occur. This issue doesn't seem to lie with Supabase because I logged the queries and responses in a backend Supabase table, and it seems that the queries are being sent back and forth from OpenAI just fine. As of right now (04:03 UTC), my front-end is receiving the outputs from OpenAI successfully.
(Edit: nevermind, it's still a bit iffy. My request times out every now and then, even now)

I'm not entirely sure what lines 333 to 337 is doing either, but I used this quick fix in my project by replacing lines 333 to 337 with the following: .

if (!shouldRefresh && existingPage !== null && existingPage.checksum === checksum) {
        const existingParentPage = existingPage.parentPage?.length === 1 ? existingPage.parentPage[0] : undefined;

I'm not sure if this is the intended fix, but it should minimally get the project up and running in the meantime.

danielnyan avatar Sep 17 '23 04:09 danielnyan

@antonioglass Did you ever find a fix? upgrading the supabase-js package and got this error

{
  code: 'PGRST102',
  details: null,
  hint: null,
  message: 'Content-Type not acceptable: application/json, text/plain'
}

r3fs avatar Sep 21 '23 01:09 r3fs

@antonioglass Did you ever find a fix? upgrading the supabase-js package and got this error

{
  code: 'PGRST102',
  details: null,
  hint: null,
  message: 'Content-Type not acceptable: application/json, text/plain'
}

fix this issue by upgrading supabase and node js to v20

r3fs avatar Sep 21 '23 04:09 r3fs

Apologies, took a break before coming back to this. I made fixed this a bit ago by:

  • swapping on line 331 the undefined type to unknown.
  • modify the if statement on line 340, to assert a 'string' type on the path property in the existingParentPage object.

These changes were made on my own forked project, so I can't be sure if it would work on this one. Perhaps someone could give it a spin? ;)

Screenshot 2023-09-29 at 11 03 47 AM

wonkishtofu avatar Sep 29 '23 03:09 wonkishtofu

Line numbers must be mismatched on my end. If you don't mind posting this generate-embeddings.ts code, or at least a side by side of the original lines vs the corrected ones, that would be appreciated.

jackf723 avatar Oct 01 '23 23:10 jackf723