| # + tags=["hide_inp"] | |
| desc = """ | |
| ### Backtrack on Failure | |
| Chain that backtracks on failure. [](https://colab.research.google.com/github/srush/MiniChain/blob/master/examples/backtrack.ipynb) | |
| """ | |
| # - | |
| # $ | |
| from minichain import prompt, Mock, show, OpenAI | |
| import minichain | |
| def prompt_generation(model): | |
| return model("") | |
| def prompt_validation(model, x): | |
| out = model(dict(query=x)) | |
| if out.strip().lower().startswith("yes"): | |
| return x | |
| return model.fail(1) | |
| def run(): | |
| x = prompt_generation() | |
| return prompt_validation(x) | |
| # $ | |
| gradio = show(run, | |
| examples = [], | |
| subprompts=[prompt_generation, prompt_validation], | |
| code=open("backtrack.py", "r").read().split("$")[1].strip().strip("#").strip(), | |
| out_type="markdown" | |
| ) | |
| if __name__ == "__main__": | |
| gradio.launch() | |