Carlo Lepelaars
@carlolepelaars.bsky.social
https://carlo.ai | {AI, Investing, Reading, Music}
Added parallelization to irouter. This allows you to do rapid evals for many LLMs at the same time. Your only bottleneck is the slowest LLM.
For example, check 21 LLMs tackle this tricky question from
Formula 1 2021 where Max Verstappen and Lewis Hamilton were tied on points. 👇
(1/3)
For example, check 21 LLMs tackle this tricky question from
Formula 1 2021 where Max Verstappen and Lewis Hamilton were tied on points. 👇
(1/3)
August 19, 2025 at 8:52 PM
Added parallelization to irouter. This allows you to do rapid evals for many LLMs at the same time. Your only bottleneck is the slowest LLM.
For example, check 21 LLMs tackle this tricky question from
Formula 1 2021 where Max Verstappen and Lewis Hamilton were tied on points. 👇
(1/3)
For example, check 21 LLMs tackle this tricky question from
Formula 1 2021 where Max Verstappen and Lewis Hamilton were tied on points. 👇
(1/3)
Just uploaded an example notebook on getting structured output in irouter.
Passing a schema to `response_format` is sufficient to enable structured output.
OpenAI's GPT-5 Mini seems to work well and supports multiple modalities.
More info:
github.com/CarloLepelaa...
Passing a schema to `response_format` is sufficient to enable structured output.
OpenAI's GPT-5 Mini seems to work well and supports multiple modalities.
More info:
github.com/CarloLepelaa...
August 13, 2025 at 5:45 PM
Just uploaded an example notebook on getting structured output in irouter.
Passing a schema to `response_format` is sufficient to enable structured output.
OpenAI's GPT-5 Mini seems to work well and supports multiple modalities.
More info:
github.com/CarloLepelaa...
Passing a schema to `response_format` is sufficient to enable structured output.
OpenAI's GPT-5 Mini seems to work well and supports multiple modalities.
More info:
github.com/CarloLepelaa...
Adding web search to your LLM app is super simple with irouter.
Chat will automatically keep track of web citations.
pip install -U irouter
Example notebook for web search in irouter:
github.com/CarloLepelaa...
Docs page:
carlolepelaars.github.io/irouter/web
Chat will automatically keep track of web citations.
pip install -U irouter
Example notebook for web search in irouter:
github.com/CarloLepelaa...
Docs page:
carlolepelaars.github.io/irouter/web
August 10, 2025 at 11:54 AM
Adding web search to your LLM app is super simple with irouter.
Chat will automatically keep track of web citations.
pip install -U irouter
Example notebook for web search in irouter:
github.com/CarloLepelaa...
Docs page:
carlolepelaars.github.io/irouter/web
Chat will automatically keep track of web citations.
pip install -U irouter
Example notebook for web search in irouter:
github.com/CarloLepelaa...
Docs page:
carlolepelaars.github.io/irouter/web
irouter is built on and has the most solid support for
@openrouter.bsky.social, but also offers experimental support for other APIs compatible with the OpenAI spec, like XAI and Moonshot AI.
If you insist on using a different API provider change the base URL.
(5/6)
@openrouter.bsky.social, but also offers experimental support for other APIs compatible with the OpenAI spec, like XAI and Moonshot AI.
If you insist on using a different API provider change the base URL.
(5/6)
August 6, 2025 at 12:30 PM
irouter is built on and has the most solid support for
@openrouter.bsky.social, but also offers experimental support for other APIs compatible with the OpenAI spec, like XAI and Moonshot AI.
If you insist on using a different API provider change the base URL.
(5/6)
@openrouter.bsky.social, but also offers experimental support for other APIs compatible with the OpenAI spec, like XAI and Moonshot AI.
If you insist on using a different API provider change the base URL.
(5/6)
Tool usage in irouter is as simple as passing a list of functions to the `tools` parameter.
This example uses a tool to get the time for a specific timezone.
(4/6)
This example uses a tool to get the time for a specific timezone.
(4/6)
August 6, 2025 at 12:30 PM
Tool usage in irouter is as simple as passing a list of functions to the `tools` parameter.
This example uses a tool to get the time for a specific timezone.
(4/6)
This example uses a tool to get the time for a specific timezone.
(4/6)
Multimodality is becoming commonplace in LLMs, so we need a simple interface to work with them.
irouter supports:
- text
- image URL
- local image path
- pdf URL
- local pdf path
- local audio path
Just provide a list of strings with the modalities you need.
(3/6)
irouter supports:
- text
- image URL
- local image path
- pdf URL
- local pdf path
- local audio path
Just provide a list of strings with the modalities you need.
(3/6)
August 6, 2025 at 12:30 PM
Multimodality is becoming commonplace in LLMs, so we need a simple interface to work with them.
irouter supports:
- text
- image URL
- local image path
- pdf URL
- local pdf path
- local audio path
Just provide a list of strings with the modalities you need.
(3/6)
irouter supports:
- text
- image URL
- local image path
- pdf URL
- local pdf path
- local audio path
Just provide a list of strings with the modalities you need.
(3/6)
irouter also offers a way to process multiple LLMs at once. Just provide a list of model slugs and irouter will process multiple models. Output is given as a mapping from model to message.
(2/6)
(2/6)
August 6, 2025 at 12:30 PM
irouter also offers a way to process multiple LLMs at once. Just provide a list of model slugs and irouter will process multiple models. Output is given as a mapping from model to message.
(2/6)
(2/6)
Introducing irouter, a super simple interface to access 100s of @openrouter.bsky.social LLMs with 2 lines of code.
It supports multi-modal inputs (text, images, PDF, audio) and tool loops. Mix and match as you see fit.
pip install irouter
github.com/CarloLepelaa...
Examples (1/6) 👇
It supports multi-modal inputs (text, images, PDF, audio) and tool loops. Mix and match as you see fit.
pip install irouter
github.com/CarloLepelaa...
Examples (1/6) 👇
August 6, 2025 at 12:30 PM
Introducing irouter, a super simple interface to access 100s of @openrouter.bsky.social LLMs with 2 lines of code.
It supports multi-modal inputs (text, images, PDF, audio) and tool loops. Mix and match as you see fit.
pip install irouter
github.com/CarloLepelaa...
Examples (1/6) 👇
It supports multi-modal inputs (text, images, PDF, audio) and tool loops. Mix and match as you see fit.
pip install irouter
github.com/CarloLepelaa...
Examples (1/6) 👇
Chord and Scale objects can be exported to a table for further analysis. (5/7)
June 17, 2025 at 4:10 PM
Chord and Scale objects can be exported to a table for further analysis. (5/7)
Chord objects can be extended and transformed with easy method chaining. This includes adding upper extensions, removing notes, inversion and transposition.
carlolepelaars.github.io/musy/chord.h... (4/7)
carlolepelaars.github.io/musy/chord.h... (4/7)
June 17, 2025 at 4:10 PM
Chord objects can be extended and transformed with easy method chaining. This includes adding upper extensions, removing notes, inversion and transposition.
carlolepelaars.github.io/musy/chord.h... (4/7)
carlolepelaars.github.io/musy/chord.h... (4/7)
Scale objects allow you to get all modes, chords and secondary dominants from any scale.
carlolepelaars.github.io/musy/scale.h... (3/7)
carlolepelaars.github.io/musy/scale.h... (3/7)
June 17, 2025 at 4:10 PM
Scale objects allow you to get all modes, chords and secondary dominants from any scale.
carlolepelaars.github.io/musy/scale.h... (3/7)
carlolepelaars.github.io/musy/scale.h... (3/7)
The basic building blocks are Note, Chord and Scale. Each object can be listened to and visualized on a piano or fretboard.
carlolepelaars.github.io/musy/viz.html (2/7)
carlolepelaars.github.io/musy/viz.html (2/7)
June 17, 2025 at 4:10 PM
The basic building blocks are Note, Chord and Scale. Each object can be listened to and visualized on a piano or fretboard.
carlolepelaars.github.io/musy/viz.html (2/7)
carlolepelaars.github.io/musy/viz.html (2/7)
In the past few weeks I have been working on a Python library for analyzing, listening to and visualizing music theory. The goal is that you and I can easily build music-related apps from fundamental blocks.
github.com/CarloLepelaa...
Here are some of the highlights! 👇 (1/7)
github.com/CarloLepelaa...
Here are some of the highlights! 👇 (1/7)
June 17, 2025 at 4:10 PM
In the past few weeks I have been working on a Python library for analyzing, listening to and visualizing music theory. The goal is that you and I can easily build music-related apps from fundamental blocks.
github.com/CarloLepelaa...
Here are some of the highlights! 👇 (1/7)
github.com/CarloLepelaa...
Here are some of the highlights! 👇 (1/7)
Reading up on recent papers in language modelling as well as some of the classics.
I think the main conclusion is that Noam Shazeer is a genius! 😁
Check out this phrase from the GeGLU paper. 😎
Link:
arxiv.org/abs/2002.052...
I think the main conclusion is that Noam Shazeer is a genius! 😁
Check out this phrase from the GeGLU paper. 😎
Link:
arxiv.org/abs/2002.052...
April 4, 2025 at 1:02 PM
Reading up on recent papers in language modelling as well as some of the classics.
I think the main conclusion is that Noam Shazeer is a genius! 😁
Check out this phrase from the GeGLU paper. 😎
Link:
arxiv.org/abs/2002.052...
I think the main conclusion is that Noam Shazeer is a genius! 😁
Check out this phrase from the GeGLU paper. 😎
Link:
arxiv.org/abs/2002.052...
Fixed some silly bugs in auditus and started using a domain-specific embedding model for the @kaggle.com BirdCLEF2025+ competition.
Now we are getting somewhere! 🤩
Explore the embeddings here:
kaggle.com/code/carlole...
Now we are getting somewhere! 🤩
Explore the embeddings here:
kaggle.com/code/carlole...
March 26, 2025 at 4:48 PM
Fixed some silly bugs in auditus and started using a domain-specific embedding model for the @kaggle.com BirdCLEF2025+ competition.
Now we are getting somewhere! 🤩
Explore the embeddings here:
kaggle.com/code/carlole...
Now we are getting somewhere! 🤩
Explore the embeddings here:
kaggle.com/code/carlole...
Curious what you can do with these embeddings? A great use case is to visualize with UMAP to find patterns and verify how good the embeddings are for ML modelling. Here I analyze 206 species from audio in the BirdCLEF+ 2025 @kaggle.com competition:
kaggle.com/code/carlole... (3/5)
kaggle.com/code/carlole... (3/5)
March 26, 2025 at 12:57 PM
Curious what you can do with these embeddings? A great use case is to visualize with UMAP to find patterns and verify how good the embeddings are for ML modelling. Here I analyze 206 species from audio in the BirdCLEF+ 2025 @kaggle.com competition:
kaggle.com/code/carlole... (3/5)
kaggle.com/code/carlole... (3/5)
Introducing auditus, a little Python library for generating Audio Embeddings. The AI field has focused on text, vision and text-to-speech, but there are also many use cases for general purpose audio. Couldn't find a simple tool, so built one.
github.com/CarloLepelaa... (1/5)
github.com/CarloLepelaa... (1/5)
March 26, 2025 at 12:57 PM
Introducing auditus, a little Python library for generating Audio Embeddings. The AI field has focused on text, vision and text-to-speech, but there are also many use cases for general purpose audio. Couldn't find a simple tool, so built one.
github.com/CarloLepelaa... (1/5)
github.com/CarloLepelaa... (1/5)
This is a game changer for interactive blog posts! Marimo Snippets allow you to embed Python apps directly in your web apps. In this new post I show you how to do this using FastHTML.
Blog post:
carlo.ai/til/marimo-s...
Blog post:
carlo.ai/til/marimo-s...
March 22, 2025 at 3:22 PM
This is a game changer for interactive blog posts! Marimo Snippets allow you to embed Python apps directly in your web apps. In this new post I show you how to do this using FastHTML.
Blog post:
carlo.ai/til/marimo-s...
Blog post:
carlo.ai/til/marimo-s...
Shout out to "The Kaggle Book" by Luca Massaron and Konrad Banachewicz! Finally got around to ordering it and did not know that some of my Kaggle Notebooks are highlighted in this book (p. 107)!
February 19, 2025 at 7:53 PM
Shout out to "The Kaggle Book" by Luca Massaron and Konrad Banachewicz! Finally got around to ordering it and did not know that some of my Kaggle Notebooks are highlighted in this book (p. 107)!
January 15, 2025 at 5:39 PM
Excited to dive into this book and learn more about HTMX! You can read it for free at hypermedia.systems, but definitely handy to have the book.
Its a big book! I didn't have a banana on me so here is a KitKat for scale. 😁
Its a big book! I didn't have a banana on me so here is a KitKat for scale. 😁
December 19, 2024 at 11:54 PM
Excited to dive into this book and learn more about HTMX! You can read it for free at hypermedia.systems, but definitely handy to have the book.
Its a big book! I didn't have a banana on me so here is a KitKat for scale. 😁
Its a big book! I didn't have a banana on me so here is a KitKat for scale. 😁
The Gran Turismo World Finals with @bramgrooten.bsky.social were a lot of fun! Oh my, got a selfie with the ONLY REAL Michelin man! And one with Steve Alvarez Brown (SuperGT) 😁
December 7, 2024 at 8:52 PM
The Gran Turismo World Finals with @bramgrooten.bsky.social were a lot of fun! Oh my, got a selfie with the ONLY REAL Michelin man! And one with Steve Alvarez Brown (SuperGT) 😁
Checking out the Gran Turismo World Finals in Amsterdam today with @bramgrooten.bsky.social ! Let's go!! 🏁
December 7, 2024 at 12:39 PM
Checking out the Gran Turismo World Finals in Amsterdam today with @bramgrooten.bsky.social ! Let's go!! 🏁
carlo.ai features:
- Homepage
- Posts (blog) section with interactive data visualizations.
- TIL (Today I Learned) section with shorter form education.
- Searchable book list with books I enjoyed + notes.
Am still iterating a lot and working on making it responsive. Feedback is appreciated! (2/2)
- Homepage
- Posts (blog) section with interactive data visualizations.
- TIL (Today I Learned) section with shorter form education.
- Searchable book list with books I enjoyed + notes.
Am still iterating a lot and working on making it responsive. Feedback is appreciated! (2/2)
November 25, 2024 at 7:13 PM
carlo.ai features:
- Homepage
- Posts (blog) section with interactive data visualizations.
- TIL (Today I Learned) section with shorter form education.
- Searchable book list with books I enjoyed + notes.
Am still iterating a lot and working on making it responsive. Feedback is appreciated! (2/2)
- Homepage
- Posts (blog) section with interactive data visualizations.
- TIL (Today I Learned) section with shorter form education.
- Searchable book list with books I enjoyed + notes.
Am still iterating a lot and working on making it responsive. Feedback is appreciated! (2/2)
So I made a personal website with FastHTML and wrote a blog post in FastHTML on how I built the website with FastHTML. Deployed with Railway and Cloudflare. Love it!
If you are into FastHTML feel free to ask me anything.
FastHTML blog post explaining the site:
carlo.ai/posts/fasthtml (1/2)
If you are into FastHTML feel free to ask me anything.
FastHTML blog post explaining the site:
carlo.ai/posts/fasthtml (1/2)
November 25, 2024 at 7:13 PM
So I made a personal website with FastHTML and wrote a blog post in FastHTML on how I built the website with FastHTML. Deployed with Railway and Cloudflare. Love it!
If you are into FastHTML feel free to ask me anything.
FastHTML blog post explaining the site:
carlo.ai/posts/fasthtml (1/2)
If you are into FastHTML feel free to ask me anything.
FastHTML blog post explaining the site:
carlo.ai/posts/fasthtml (1/2)