finds.dev← search

// the find

dabit3/semantic-search-nextjs-pinecone-langchain-chatgpt

★ 763 · TypeScript · updated Feb 2026

Embeds text files into vectors, stores them on Pinecone, and enables semantic search using GPT3 and Langchain in a Next.js UI

A starter template that wires together Next.js, LangChain.js, OpenAI embeddings, and Pinecone to let you drop text files into a folder, embed them, and query them with natural language. It's squarely aimed at developers who want a working skeleton rather than building the plumbing from scratch. The default data is Lens Protocol docs, which is specific enough to feel arbitrary.

The project covers the full pipeline end-to-end — ingestion, embedding, storage, and query — in one place, which is genuinely useful when you're trying to understand how the pieces fit together. The Next.js App Router structure is clean and modern, not the pages-directory legacy setup most tutorials still use. The setup route handles index creation with a polling wait, which is the right call given Pinecone's async initialization. Source is short enough to read in an afternoon, which is the point of a starter.

LangChain dependency is a liability here — LangChain.js has a history of aggressive API churn, and this repo's last meaningful update is years old at this point, so the pinned versions are almost certainly broken against current Pinecone and OpenAI SDK releases. There's no chunking strategy beyond whatever LangChain defaults to, which means long documents will either get truncated or produce poor retrieval results with no obvious way to tune it. Error handling in the API routes is absent — if Pinecone is slow or the OpenAI call fails, you get an unhandled rejection. The 180-second setTimeout for index initialization is a brittle workaround that will silently fail in serverless environments with shorter execution limits.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →