Harnessing LangChain: A Guide to Fine-Tuning in Python