chatgpt-leifer
Use the new GPT-4 api to build a chatGPT chatbot for multiple Large PDF files.
Tech stack used includes LangChain, Pinecone, Typescript, Openai, and Next.js. LangChain is a framework that makes it easier to build scalable AI/LLM apps and chatbots. Pinecone is a vectorstore for storing embeddings and your PDF in text to later retrieve similar docs.
Join the discord if you have questions
The visual guide of this repo and tutorial is in the visual guide
folder.
If you run into errors, please review the troubleshooting section further down this page.
git clone [github https url]
pnpm install
.env
file.env.example
into .env
.env
file should look like this:OPENAI_API_KEY=
PINECONE_API_KEY=
PINECONE_ENVIRONMENT=
PINECONE_INDEX_NAME=
.env
file.In the config
folder, replace the PINECONE_NAME_SPACE
with a namespace
where you'd like to store your embeddings on Pinecone when you run pnpm run ingest
. This namespace will later be used for queries and retrieval.
In utils/makechain.ts
chain change the QA_PROMPT
for your own usecase. Change modelName
in new OpenAIChat
to gpt-3.5-turbo
, if you don't have access to gpt-4
. Please verify outside this repo that you have access to gpt-4
, otherwise the application will not work with it.
This repo can load multiple PDF files
Inside docs
folder, add your pdf files or folders that contain pdf files.
Run the script npm run ingest
to 'ingest' and embed your docs. If you run into errors troubleshoot below.
Check Pinecone dashboard to verify your namespace and vectors have been added.
Once you've verified that the embeddings and content have been successfully added to your Pinecone, you can run the app pnpm run dev
to launch the local dev environment, and then type a question in the chat interface.
In general, keep an eye out in the issues
and discussions
section of this repo for solutions.
General errors
node -v
Console.log
the env
variables and make sure they are exposed..env
file that contains your valid (and working) API keys, environment and index name.modelName
in OpenAIChat
note that the correct name of the alternative model is gpt-3.5-turbo
gpt-4
if you decide to use. Test your openAI keys outside the repo and make sure it works and that you have enough API credits.env
file from the project will be overwritten by systems env
variable.process.env
variables.Pinecone errors
environment
and index
matches the one in the pinecone.ts
and .env
files.1536
.Frontend of this repo is inspired by langchain-chat-nextjs