File size: 758 Bytes
f5ec828
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# + 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

@prompt(Mock(["red", "blue"]))
def prompt_function1(model, x):
    return model(x)

@prompt(Mock(["b"]), template_file="test.pmpt.tpl")
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()