from typing import List from langchain.prompts import ChatPromptTemplate FOLLOW_UP_TEMPLATE = """Based on the previous question and answer, generate 2-3 relevant follow-up questions that would help explore the topic further. Previous Question: {user_input} Previous Answer: {answer} Generate short, concise, focused follow-up questions You don't need a full question as it will be reformulated later as a standalone question with the context. Eg. "Details the first point" """ def make_follow_up_node(llm): prompt = ChatPromptTemplate.from_template(FOLLOW_UP_TEMPLATE) def generate_follow_up(state): print("---- Generate_follow_up ----") if not state.get("answer"): return state response = llm.invoke(prompt.format( user_input=state["user_input"], answer=state["answer"] )) # Extract questions from response follow_ups = [q.strip() for q in response.content.split("\n") if q.strip()] state["follow_up_questions"] = follow_ups return state return generate_follow_up