Spaces:
Runtime error
Runtime error
langchain-qa-bot
/
docs
/langchain
/libs
/experimental
/langchain_experimental
/fallacy_removal
/prompts.py
from langchain_core.prompts.few_shot import FewShotPromptTemplate | |
from langchain_core.prompts.prompt import PromptTemplate | |
fallacy_critique_example = PromptTemplate( | |
template="""Human: {input_prompt} | |
Model: {output_from_model} | |
Fallacy Critique Request: {fallacy_critique_request} | |
Fallacy Critique: {fallacy_critique}""", | |
input_variables=[ | |
"input_prompt", | |
"output_from_model", | |
"fallacy_critique_request", | |
"fallacy_critique", | |
], | |
) | |
examples = [ | |
{ | |
"input_prompt": "If everyone says the Earth is round, \ | |
how do I know that's correct?", | |
"output_from_model": "The earth is round because your \ | |
teacher says it is", | |
"fallacy_critique_request": "Identify specific ways in\ | |
which the model’s previous response had a logical fallacy. \ | |
Also point out potential logical fallacies in the human’s \ | |
questions and responses. Examples of logical fallacies \ | |
include but are not limited to ad hominem, ad populum, \ | |
appeal to emotion and false causality.", | |
"fallacy_critique": "This statement contains the logical \ | |
fallacy of Ad Verecundiam or Appeal to Authority. It is \ | |
a fallacy because it asserts something to be true purely \ | |
based on the authority of the source making the claim, \ | |
without any actual evidence to support it. Fallacy \ | |
Critique Needed", | |
"fallacy_revision_request": "Please rewrite the model \ | |
response to remove all logical fallacies, and to \ | |
politely point out any logical fallacies from the \ | |
human.", | |
"fallacy_revision": "The earth is round based on \ | |
evidence from observations of its curvature from high \ | |
altitudes, photos from space showing its spherical shape, \ | |
circumnavigation, and the fact that we see its rounded \ | |
shadow on the moon during lunar eclipses.", | |
}, | |
{ | |
"input_prompt": "Should we invest more in our school \ | |
music program? After all, studies show students \ | |
involved in music perform better academically.", | |
"output_from_model": "I don't think we should invest \ | |
more in the music program. Playing the piccolo won't \ | |
teach someone better math skills.", | |
"fallacy_critique_request": "Identify specific ways \ | |
in which the model’s previous response had a logical \ | |
fallacy. Also point out potential logical fallacies \ | |
in the human’s questions and responses. Examples of \ | |
logical fallacies include but are not limited to ad \ | |
homimem, ad populum, appeal to emotion and false \ | |
causality.", | |
"fallacy_critique": "This answer commits the division \ | |
fallacy by rejecting the argument based on assuming \ | |
capabilities true of the parts (playing an instrument \ | |
like piccolo) also apply to the whole \ | |
(the full music program). The answer focuses only on \ | |
part of the music program rather than considering it \ | |
as a whole. Fallacy Critique Needed.", | |
"fallacy_revision_request": "Please rewrite the model \ | |
response to remove all logical fallacies, and to \ | |
politely point out any logical fallacies from the human.", | |
"fallacy_revision": "While playing an instrument may \ | |
teach discipline, more evidence is needed on whether \ | |
music education courses improve critical thinking \ | |
skills across subjects before determining if increased \ | |
investment in the whole music program is warranted.", | |
}, | |
] | |
FALLACY_CRITIQUE_PROMPT = FewShotPromptTemplate( | |
example_prompt=fallacy_critique_example, | |
examples=[ | |
{k: v for k, v in e.items() if k != "fallacy_revision_request"} | |
for e in examples | |
], | |
prefix="Below is a conversation between a human and an \ | |
AI assistant. If there is no material critique of the \ | |
model output, append to the end of the Fallacy Critique: \ | |
'No fallacy critique needed.' If there is material \ | |
critique \ | |
of the model output, append to the end of the Fallacy \ | |
Critique: 'Fallacy Critique needed.'", | |
suffix="""Human: {input_prompt} | |
Model: {output_from_model} | |
Fallacy Critique Request: {fallacy_critique_request} | |
Fallacy Critique:""", | |
example_separator="\n === \n", | |
input_variables=["input_prompt", "output_from_model", "fallacy_critique_request"], | |
) | |
FALLACY_REVISION_PROMPT = FewShotPromptTemplate( | |
example_prompt=fallacy_critique_example, | |
examples=examples, | |
prefix="Below is a conversation between a human and \ | |
an AI assistant.", | |
suffix="""Human: {input_prompt} | |
Model: {output_from_model} | |
Fallacy Critique Request: {fallacy_critique_request} | |
Fallacy Critique: {fallacy_critique} | |
If the fallacy critique does not identify anything worth \ | |
changing, ignore the Fallacy Revision Request and do not \ | |
make any revisions. Instead, return "No revisions needed". | |
If the fallacy critique does identify something worth \ | |
changing, please revise the model response based on the \ | |
Fallacy Revision Request. | |
Fallacy Revision Request: {fallacy_revision_request} | |
Fallacy Revision:""", | |
example_separator="\n === \n", | |
input_variables=[ | |
"input_prompt", | |
"output_from_model", | |
"fallacy_critique_request", | |
"fallacy_critique", | |
"fallacy_revision_request", | |
], | |
) | |