# + tags=["hide_inp"] | |
desc = """ | |
### Backtrack on Failure | |
Chain that backtracks on failure. [[Code](https://github.com/srush/MiniChain/blob/main/examples/backtrack.py)] | |
""" | |
# - | |
from minichain import prompt, Mock, show | |
import minichain | |
def prompt_function1(model, x): | |
return model(x) | |
def prompt_function2(model, x): | |
if x == "red": | |
return model.fail(1) | |
return model(dict(x=x)) | |
def run(query): | |
x = prompt_function1(query) | |
return prompt_function2(prompt_function2(x)) | |
demo = show(run, | |
examples=["a"], | |
subprompts=[prompt_function1, prompt_function2, prompt_function2]) | |
if __name__ == "__main__": | |
demo.launch() | |