Welcome to my blog! I’m Jan Wilhelm T. Sy, a Computer Science student from Bicol University.

Over the past few weeks, I’ve had the incredible opportunity to undertake an On-the-Job Training (OJT) at Iraya Energies.

This experience will be a pivotal part of my academic journey, allowing me to apply and expand my knowledge in real-world settings
My OJT
Summary
Purpose
The purpose of this report is to document the activities and progress made during the On-the-Job Training (OJT) program, specifically focusing on the development of a chatbot. This report will cover the research, development, challenges, and solutions encountered while working on this project.

Background
As part of the On-the-Job Training (OJT) program at Iraya Energies, our primary task was to develop an OCR (Optical Character Recognition) system designed to extract data from PDF files and store it in a database. This extracted data would then serve as input for a chatbot. I was specifically assigned to the development of the chatbot, which involves researching various language models, creating a user interface, and enhancing the chatbot’s performance.
Weekly Summary
From May 10, 2024, to June 14, 2024, the first week of my OJT program focused on initiating research for chatbot development. I explored various language models, such as OpenAI's GPT-3.5 Turbo, Mistral AI's Mistral-7B, Meta's LLaMA-3-8B, and Microsoft's Phi-3, testing them using Python and Hugging Face's Transformers Library. I also delved into Retrieval-Augmented Generation (RAG) to enhance language responses and began creating the chatbot's user interface using StreamLit. These initial efforts laid the groundwork for the project's development.

From June 17, 2024, to June 21, 2024, the second week focused on continuing research and experimenting with RAG. I used LangChain to implement RAG, embedding sample documents into a Vector Database for improved chatbot responses. I updated the StreamLit UI to visualize retrieved text chunks and created two prototype versions to manage memory usage. Additionally, I explored memory optimization techniques like history summarization and model quantization, significantly enhancing the chatbot's efficiency and performance.

From June 24, 2024, to June 28, 2024, the third week of my OJT program focused on the Chatbot Design Phase, improving the prototype, and adding functionality. I continued researching memory optimization, discovering that model quantization could reduce the model size from 7GB to 2.65GB without significant performance loss. I created a comprehensive flowchart and initiated a complete redesign of the chatbot's interface using Figma, aiming to enhance user experience despite uncertainties about StreamLit’s capabilities. This week was productive, laying a solid foundation for further development.

From July 1, 2024, to July 5, 2024, the fourth week centered on developing the chatbot, improving features, and implementing the new Figma design into StreamLit. The UI now includes a document selection interface and a conversational interface. I explored Hugging Face's models and their Inference API to enhance efficiency and continued refining the RAG System. These efforts significantly improved the chatbot prototype, integrating functionalities and optimizing performance.

From July 8, 2024, to July 12, 2024, the fifth week focused on enhancing, testing, and optimizing the chatbot. I added features like a search bar, navigation functionalities, and settings adjustments for the Language Model and database. I researched Llama_Index as an alternative to LangChain, studied AI agents for better query handling, and set up a basic RAG framework. Integrating the database, using LLMCompiler for faster responses, and Dockerizing the application ensured efficient deployment and improved scalability.

From July 15, 2024, to July 19, 2024, the final week involved testing and optimizing the chatbot and completing documentation. I created and tested a new Docker image, verified the chatbot's functionality, and evaluated integration with Ollama. Stress and regression testing ensured robust performance. I finalized the Software Specification Requirements and User Manual and prepared a comprehensive presentation of the project. The program concluded with a successful presentation to the Iraya Energies team, receiving valuable feedback and marking the end of an enriching OJT experience.
Image 1 Image 2 Image 3 Image 4 Image 5 Image 6 Image 7 Image 8 Image 9 Image 10 Image 11 Image 12 Image 13 Image 14 Image 15 Image 16 Image 17 Image 18 Image 19 Image 20 Image 21 Image 22 Image 23 Image 24