Open Source Projects
My open source projects and contributions. View my full profile on GitHub.
Hybrid Groups
Personal ProjectHybrid Groups is a multi-user, multi-agent collaboration platform that enables users to interact with both agents and other users in group chats on Slack and GitHub. Agents act and respond according to each user's identity, preferences and privileges, enabling secure access to a user's private resources while collaborating in a team.
freeact
Personal Projectfreeact is a lightweight AI agent library using Python as the common language to define executable actions and tool interfaces. This is in contrast to traditional approaches where actions and tools are described with JSON. A unified code-based approach enables freeact agents to reuse actions from earlier steps as tools or skills in later steps. This design allows agents to build on their previous work and compose more complex actions from simpler ones.
This demo of freeact shows how an agent dynamically generates and executes code to perform web searches and return accurate answers based on real-time data.
Generative Internet Search with Local LLMs
ContributionI created a generative internet search tool using Retrieval-Augmented Generation (RAG). The tool accepts user queries in natural language and searches the internet for information, filters and re-ranks the result by relevance and generates responses based on the search results using a LLM. It is designed for local deployment, utilizing smaller open LLMs (specifically Llama3-8B) and a local metasearch engine, eliminating the need for external search-API keys.
The search could be used either as a standalone tool or by an agent equipped with tool-handling capabilities. This is illustrated in the following notebook, where the internet search tool is integrated into an agentic workflow that uses tools, implementing an agentic RAG approach.
For more information see this blog post.
Perceiver IO
ContributionA modular implementation of the Perceiver family of model architectures (Perceiver, Perceiver IO, and Perceiver AR) in PyTorch. The library integrates with PyTorch Lightning for distributed training and Hugging Face for inference.
I made various improvements to the library and implemented:
- Optical flow estimation predicting the apparent motion of each pixel between two consecutive video frames and
- Symbolic audio modeling showcasing how to use a Perceiver AR audio model to generate symbolic (MIDI) audio data, by training Perceiver AR on the GiantMIDI-Piano dataset.
A ML-based Intrusion Detection System
Personal ProjectThis project is a proof of concept for a machine learning-based system able to identify malicious network traffic. It addresses the limitations of traditional signature-based methods by learning normal network behavior from benign data packets, enabling the system to detect anomalous data flows and potentially novel types of attacks.
The project is comprised of a research repository, a fully functional REST API for network attack detection and an API client.
Image Captioning Transformer
ContributionExtension of pytorch/fairseq with Transformer-based image captioning models. I implemented an evaluation pipeline for models using MS COCO Caption Evaluation.
Eventuate
ContributionEventuate is a toolkit for building applications composed of event-driven and event-sourced services that communicate via causally ordered event streams on a single node or distributed up to global scale.
I was responsible for the Vert.x integration into Eventuate and developed the Vert.x adapter, enabling bidirectional event communication between event logs and the Vert.x event bus, incorporating features like at-least-once delivery guarantees and enhanced event metadata handling. I also made various improvements to the Java API and the corresponding documentation.
Alpakka Kafka
ContributionThe Alpakka Kafka connector enables the integration of Apache Kafka with Akka Streams.
I enhanced the Kafka producer's reliability by implementing deterministic failure handling that prevented message reordering and ensured consistent behavior when encountering send failures.
Event sourcing for Akka Streams
ContributionThe akka-stream-eventsourcing project that provides persistence via event sourcing for Akka Streams.
I implemented a generic Akka-Serializer that used Google Protobuf to handle the serialization of events.