text: such as "Steps for XYZ.\\n1.", (2) using task-specific instructions, and (3) with human inputs.'}3.2.2 Customizing the promptâ€‹The prompt in RetrievalQA chain can be easily customized.# Build promptfrom langchain.prompts import PromptTemplatetemplate = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. Use three sentences maximum and keep the answer as concise as possible. Always say "thanks for asking!" at the end of the answer. {context}Question: {question}Helpful Answer:"""QA_CHAIN_PROMPT = PromptTemplate(input_variables=["context", "question"],template=template,)# Run chainfrom langchain.chains import RetrievalQAllm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)qa_chain = RetrievalQA.from_chain_type(llm,                                       retriever=vectorstore.as_retriever(),                                       chain_type_kwargs={"prompt": QA_CHAIN_PROMPT})result = qa_chain({"query": question})result["result"]'The approaches to Task Decomposition are (1) using simple prompting by LLM, (2) using task-specific instructions, and (3) with human inputs. Thanks for asking!'3.2.3 Returning source documentsâ€‹The full set of retrieved documents used for answer distillation can be returned using return_source_documents=True.from langchain.chains import