-
Langchain Milvus RAG Chatbot with Gradio and Streamlit GUI
The chatbot is built using LangChain and Milvus as the vector database. It runs locally with Ollama (for LLM execution) and Milvus powering vector storage. Python scripts are used to preprocess and ingest documents into the system.
During ingestion:
- 1. Text is chunked into smaller segments.
- 2. Each segment is converted into an embedding vector using a compatible model.
- 3. The resulting vectors are stored in Milvus.
RAG Architecture (Retrieval-Augmented Generation)
When a user sends a query, the system follows a RAG architecture in two main phases:
Phase 1: Retrieval
- The system determines whether external context is needed using a classifier or heuristic.
- If needed, it converts the user query into an embedding vector.
- A semantic search is performed in Milvus to retrieve the most relevant document chunks.
- Results may be ranked or filtered before moving to the next phase.
Phase 2: Generation
- The retrieved documents are formatted and included in the prompt passed to the LLM via Ollama.
- The LLM generates a context-aware response based on both the query and retrieved documents.
- This reduces hallucinations and improves factual accuracy.
Thanks to this architecture, there's no need to retrain the model to incorporate new knowledge. Simply updating the vector database is enough, making the system more scalable and maintainable.
To learn more about the benefits of local inference, check out my blog post on the topic.
2024-2021
-
Carousel
This TypeScript carousel was built using web components and CSS animations. It is optimized for the best loading experience, enhancing SEO. Initially, a low-resolution image is displayed until the page is fully loaded. While animated, the images can be switched by clicking in the carousel. Additionally, the toggle button allows the user to stop the carousel and display the initial banner.
-
Lean-Agile Resources Search Engine
Implementation of a Lean-Agile resources search service. Search by category, topic, tag, or word.
Try it now. -
Shopify cart migration to Stripe PaymentIntent API.
Migrate the application to directly integrate with Stripe to minimize hosting and transactional expenses.
2023
-
Stripe shopping cart
Custom shopping-cart with Stripe PaymentIntents API.
2020-2019
-
Goutte 2.0 - Producteurs de Lait du Québec
Architected and implementated a dynamic CRUD application with custom components for the milk management data manipulation. Reactive form fields, validation messages, single and multi select autocomplete.
2018-2016
-
OMS Trainer - Bombardier Aircraft Training (BAT)
The OMS Trainer emulates the OMS implementated in the Global 6000, 7000 and CSeries(A220) aircrafts. It is a window type data application made out of Vue.js custom widgets including: data sorting, Windows popup, Navigational selector, scrolling, paging with Control Knob navigation.
2015
-
Ericsson - Ericloud
Refactored UI with Composite buttons. These CSS buttons with SVG icons allow improved visual quality and facilitate buttons setup with CSS icons selection and colors.
2014
-
System Simulation Trainer (SST) - Bombardier Aircraft Training (BAT).
HTML5 Mobile web et desktop Interface for Bombardier Global Aircraft simulation. The interactive tool allows to configure aircraft components and simulate aircraft systems behavior in faults conditions.
2013
-
Human resources evaluation application - YPG
Design and programmed a data grid type UI in order to retreive and set data through a API Soap. Tree view, Excel type grid components, Ajax, XML to JSON.
-
Hybrid Web Mobile App
Prototype produced under the Microsoft Montreal Hackethon. Winner of the Azure category. Used Azure Mobile Services, Phonegap and HTML5.
2012-2010
-
Web Operations Optimization
ASP.net presentation and solution for Web site operation optimization. (Communauté .NET Montréal)
After optimization at technologyevaluation.com, Google analytics reported a 70% bandwidth consumption decrease and proportionaly a first load improvement from 10 to 3 seconds and a 50% latency decrease for the whole site.
-
Kitco Mobile Web Application
Webkit compatibles XHTML mobile application. Progressive enhancement, Ajax, CSS3, VanillaJS.
Kitco Applications
Stock markets application distribution portal.
-
Kitco Hong Kong
Kitco Montreal eCommerce site to Kitco Hong Kong Refactoring. Introduced jQuery. CSS, Javascirpt Minification. Layers separations - design, behaviour, content.
2010
-
Dialogic
.NET MVC1 app. Repository pattern, Create, Read, Update, Delete, autentication, autorization, data validation
-
jqVideo : jQuery mashup
This video utility enables the use of Flash video and the interactions with Flowplayer et jqModal plugins.
2009-2001
-
Sûreté du Québec Website
Pager - Client Side Data Grid
Creation of a client side data grid aiming to optimize client server interactions.
-
MSDS Solutions