A project I made when ChatGPT was starting to get popular. I wanted to connect ChatGPT to my notes, so I enabled it to do so by creating a website that wrapped ChatGPT that allowed the AI to make queires for note information, which my backend then semantically searched for using vector embeddings in pinecone. I also developed an executable that would allow users to upload their notes to PineconeDB.
I first need to take the users notes, and store them as embeddings that I could then search for using semantic search, so that ChatGPT could find them. In order to do that, I decided to make a Rust based application for my users. The first step was to create a Rust crate around the Pinecone HTTP Api, which I did. I focused a lot on designing this properly. I've attached some example code below. You can find the project HERE
The executable was a little simpler, but I did decide to overcomplicate it by using far too much async await and "optimization". This optimization probably made it slower to be honest, but here's an image.
Since the websites users needed to login, and I needed to connect to ChatGPT, I decided to make a backend server in Go that would handle streaming tokens, querying Pinecone for embeddings based on ChatGPT's query, and user sessions / logging in. This can be found HERE
I also design the website myself. The code for the website is HERE