7 prompting tricks, LangChain, and Python example code
This article is the fourth in a series on applying large language models (LLMs). I’ll talk about prompt engineering (PE) in this section and how to leverage it to create LLM-capable applications. I begin by examining important PE techniques before going over some sample Python code for leveraging LangChain to create an LLM-based application.
Many technical individuals, including myself, have a tendency to laugh at the concept of quick engineering when first hearing it. Perhaps we might ask, “Prompt engineering? Oh, that’s really tacky. Please explain how to create an LLM from scratch.
But after looking into it more carefully, I’d advise developers not to dismiss prompt engineering out of hand. I’ll go a step farther and claim that timely engineering can (relatively) easily achieve 80% of the value of the majority of LLM use cases.
This article’s purpose is to illustrate this notion through examples and a practical study of prompt engineering. While rapid engineering undoubtedly has its limitations, it does pave the way for the development of simple yet effective answers to our challenges.
What is Prompt Engineering?
Any use of an LLM straight out of the box (i.e., without training any internal model parameters) was referred to as rapid engineering in the first article of this series. But there is a lot more to be said about it.
“The method by which LLMs are programmed with prompts” is known as prompt engineering.
 According to Wikipedia, prompt engineering is “an empirical art of composing and formatting the prompt to maximize a model’s performance on a desired task.” Language models, according to  “language models… want to complete documents, so you can trick them into performing tasks just by arranging fake documents,” 
The first term encapsulates the main advancement brought about by LLMs, namely the ability to program computers in plain English. The second point frames suggest that engineering is primarily an empirical discipline, and that the principal investigators of this novel programming paradigm are practitioners, tinkerers, and builders.