Inspiration

I’m part of the Freqtrade Discord server, where cool things are shared daily. I came across a thread where members were discussing Retrieval-augmented Generation (RAG) and how great it would be to implement it for the documentation and other features.

What It does

It lets you interact with the documentation of Freqtrade through a chatbot.

How I built it

I built the app using Python, FastAPI, and LangChain. Chroma is used for the vector database, along with Gemini API, embeddings, and used "gemini-1.5-flash" models from Google. The server is also deployed on Google Cloud.

Challenges I ran into

I had to understand some terminology like vector database, embeddings, LLMs, and the role of each of them.
Poe offers a simple way to deploy the server through Modal, but I wanted to self-host. I ran into SSL issues, such as the use of self-signed certificates, which Poe didn’t accept. This led me to implement reverse proxy with Nginx and certbot.

Accomplishments that I am proud of

It’s a step towards open-source contribution that I was hesitant to take, but it’s a contribution I’m proud of. I have some ideas that might be interesting to implement in the future, and I plan to contribute more to the open-source space.

What I learned

I learned about generative AI, particularly RAG, and how to use custom data to train a model. I also learned how to generate SSL certificates for Nginx.

What's next for FreqRag

I plan to implement continuous integration and delivery to track the documentation folder. Upon modification, it will recreate the database and re-index it. I also want to add some channels, like support from the Discord server, to the vector database with embeddings from Google.

Built With

Share this project:

Updates