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.