|
|
|
|
|
|
|
prompt = """ |
|
Question: Who lived longer, Muhammad Ali or Alan Turing? |
|
Are follow up questions needed here: Yes. |
|
Follow up: How old was Muhammad Ali when he died? |
|
Intermediate answer: Muhammad Ali was 74 years old when he died. |
|
Follow up: How old was Alan Turing when he died? |
|
Intermediate answer: Alan Turing was 41 years old when he died. |
|
So the final answer is: Muhammad Ali |
|
|
|
Question: When was the founder of craigslist born? |
|
Are follow up questions needed here: Yes. |
|
Follow up: Who was the founder of craigslist? |
|
Intermediate answer: Craigslist was founded by Craig Newmark. |
|
Follow up: When was Craig Newmark born? |
|
Intermediate answer: Craig Newmark was born on December 6, 1952. |
|
So the final answer is: December 6, 1952 |
|
|
|
Question: Who was the maternal grandfather of George Washington? |
|
Are follow up questions needed here: Yes. |
|
Follow up: Who was the mother of George Washington? |
|
Intermediate answer: The mother of George Washington was Mary Ball Washington. |
|
Follow up: Who was the father of Mary Ball Washington? |
|
Intermediate answer: The father of Mary Ball Washington was Joseph Ball. |
|
So the final answer is: Joseph Ball |
|
|
|
Question: Are both the directors of Jaws and Casino Royale from the same country? |
|
Are follow up questions needed here: Yes. |
|
Follow up: Who is the director of Jaws? |
|
Intermediate answer: The director of Jaws is Steven Spielberg. |
|
Follow up: Where is Steven Spielberg from? |
|
Intermediate answer: The United States. |
|
Follow up: Who is the director of Casino Royale? |
|
Intermediate answer: The director of Casino Royale is Martin Campbell. |
|
Follow up: Where is Martin Campbell from? |
|
Intermediate answer: New Zealand. |
|
So the final answer is: No |
|
|
|
Question: {{input}} |
|
Are followup questions needed here: {% if agent_scratchpad %}Yes{%else%}No{% endif %}. |
|
""" |
|
|
|
import jinja2 |
|
|
|
class SelfAsk: |
|
def render(self, input: str, agent_scratchpad: bool): |
|
return jinja.render(prompt, dict(input=input, |
|
agent_scatchpad=agent_scratchpad)) |
|
|
|
def parse(self, response: str): |
|
pass |
|
|
|
|
|
def stop(self): |
|
return [] |
|
|