Skip to content

Blog

#320: Store Embeddings in ChromaDB

We paused our AI journey after we figured out a way to work with large PDF files. It is now time to continue and find a solution to create and store vectors in a way that we can incrementally add new documents. The vectors, or embeddings, represent the semantic meaning and are a key part of the "chat with our docs" feature.

There are a handful solutions we can use. I start with Chroma (or ChromaDB) because it is an open-source vector database designed specifically to make building AI applications easy. It is built on top of SQLite, what helps us to work with the persisted data should we want to know more about how the magic works behind the scenes. Let us explore how we can use Chroma to calculate and store embeddings.

#315: Access Stock Market Data With yfinance

The stock market is a treasure trove for data analytics. The only problem: getting the data in a usable format without paying a fortune. Thanks to the work of Ran Aroussi and an active community, we can use a tool like yfinance to do the heavy lifting. Let us explore how we can use this tool to get the data we need.

#314: Sortable GUIDs With UUID V7

One of the new features in Python 3.14 is the support for version 7 of UUID. This means we can get a built-in support for collision free and sortable unique identifiers without the need for additional packages. Let us see how we can use them.

#313: Persisted Cache for Function Calls

It is already 2 years since I wrote about built-in functools to cache calls to your Python functions. While this is still a great approach, it has one downside: when we restart our tool, the cache is empty and we need to do the computational work once more.

When it comes to persisting our cache, we have multiple options. A simple little tool that pops up in a lot of post I read in the last weeks is DiskCache. The last update of this library is from August 2023, what leads to questions if this library is still maintained. We should keep an eye on that but still give it a try. Let us see how we can use this tool for a persisted cache.

#312: Switch Statement in Python

For a long time, there was no switch/case statement in Python. Instead, we had to use a cascade of if/elif/else to filter for the different cases. But with Python 3.10 that changed and now we can use match / case to save us some typing. Let us see how this works.