Spaces:
Sleeping
Sleeping
| from langchain.prompts import PromptTemplate | |
| from langchain.chains import LLMChain | |
| from langchain.llms import OpenAI | |
| llm = OpenAI(temperature=0.5) | |
| def book_summary_generator(theme): | |
| book_name_prompt_template = PromptTemplate( | |
| input_variables=["theme"], | |
| template="Please provide a list of ten well-known books that center around the theme of {theme}", | |
| ) | |
| # Create an LLM chain with the prompt template and LLM | |
| book_name_chain = LLMChain(llm=llm, prompt=book_name_prompt_template, output_key="book_names_list") | |
| book_summary_prompt_template = PromptTemplate( | |
| input_variables=["book_names_list"], | |
| template=""" | |
| Please take one book from the books list {book_names_list}. Start with the book title in capitals. | |
| Please provide a comprehensive summary of the book, in 10 bullet points | |
| """ | |
| ) | |
| # Create an LLM chain with the new prompt template and LLM | |
| book_summary_chain = LLMChain(llm=llm, prompt=book_summary_prompt_template, output_key="book_summary") | |
| from langchain.chains import SequentialChain | |
| # Create a sequential chain that first gets the book names based on the theme and then gets the summary of a specific book | |
| book_chain = SequentialChain( | |
| chains=[book_name_chain, book_summary_chain], | |
| input_variables=["theme"], | |
| output_variables=["book_names_list", "book_summary"] | |
| ) | |
| # Get the book summary for a specific book based on the theme | |
| book_summary = book_chain.invoke(theme) | |
| return(book_summary) | |
| if __name__ == "__main__": | |
| theme = "personality development" | |
| book_summary = book_summary_generator(theme) | |
| print(book_summary) | |