|
desc = """ |
|
### Prompt-aided Language Models |
|
|
|
Chain for answering complex problems by code generation and execution. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/srush/MiniChain/blob/master/examples/pal.ipynb) |
|
|
|
(Adapted from Prompt-aided Language Models [PAL](https://arxiv.org/pdf/2211.10435.pdf)). |
|
""" |
|
|
|
|
|
|
|
from minichain import prompt, show, GradioConf, OpenAI, Python |
|
import gradio as gr |
|
|
|
@prompt(OpenAI(), template_file="pal.pmpt.tpl") |
|
def pal_prompt(model, question): |
|
return model(dict(question=question)) |
|
|
|
@prompt(Python(), |
|
gradio_conf=GradioConf(block_input = lambda: gr.Code(language="python"))) |
|
def python(model, inp): |
|
return model(inp + "\nprint(solution())") |
|
|
|
def pal(question): |
|
return python(pal_prompt(question)) |
|
|
|
|
|
|
|
question = "Melanie is a door-to-door saleswoman. She sold a third of her " \ |
|
"vacuum cleaners at the green house, 2 more to the red house, and half of " \ |
|
"what was left at the orange house. If Melanie has 5 vacuum cleaners left, " \ |
|
"how many did she start with?" |
|
|
|
gradio = show(pal, |
|
examples=[question], |
|
subprompts=[pal_prompt, python], |
|
description=desc, |
|
out_type="json", |
|
code=open("pal.py", "r").read().split("$")[1].strip().strip("#").strip(), |
|
) |
|
|
|
if __name__ == "__main__": |
|
gradio.queue().launch() |
|
|