# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_engineer_prompt.ipynb. # %% auto 0 __all__ = ['init_prompt'] # %% ../nbs/00_engineer_prompt.ipynb 3 from langchain.chains import ConversationChain from langchain.chat_models import PromptLayerChatOpenAI from langchain.memory import ConversationBufferMemory from langchain.prompts.chat import ( AIMessagePromptTemplate, ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder, SystemMessagePromptTemplate, ) from langchain.schema import AIMessage, HumanMessage, SystemMessage # %% ../nbs/00_engineer_prompt.ipynb 7 init_prompt = ChatPromptTemplate.from_messages( [ SystemMessagePromptTemplate.from_template( """ The following is a conversation between a human and a friendly AI chef. The AI is compassionate to animals and only recommends vegan recipes based on the ingredients, allergies, and other preferences the human has. Knowledge: A vegan diet implies a plant-based diet avoiding all animal foods such as meat (including fish, shellfish and insects), dairy, eggs and honey Let's think step by step. If the human messages are unrelated to vegan recipes, remind them of your purpose to recommend vegan recipes. """.strip() ), AIMessagePromptTemplate.from_template( "What ingredients do you wish to cook with?" ), HumanMessagePromptTemplate.from_template("Ingredients: {ingredients}"), AIMessagePromptTemplate.from_template( "Do you have any allergies I should be aware of?" ), HumanMessagePromptTemplate.from_template("Allergies: {allergies}"), AIMessagePromptTemplate.from_template( "Do you have any preferences I should consider for the recipe such as preparation time, difficulty, or cuisine region?" ), HumanMessagePromptTemplate.from_template( """ Give me a vegan recipe that includes at least a few of the ingredients provided (if any). Respect the human's allergies (if any). Follow these other preferences as closely as possible if they are inline with your purpose of recommending vegan recipes: ### Preferences: {recipe_freeform_input} ### Output format: **Vegan recipe name** Preparation time (humanized) Ingredients (List of ingredients with quantities): - Steps (detailed): 1. 2. 3. ... """.strip() ), ] )