File size: 1,624 Bytes
cd607b2
 
eac37df
cd607b2
eac37df
 
 
cd607b2
 
fcc66cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eac37df
 
 
cd607b2
 
fcc66cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# + tags=["hide_inp"]
desc = """
### Word Problem Solver

Chain that solves a math word problem by first generating and then running Python code. [[Code](https://github.com/srush/MiniChain/blob/main/examples/math.py)]

(Adapted from Dust [maths-generate-code](https://dust.tt/spolu/a/d12ac33169))
"""
# -

import minichain

# Prompt that asks LLM for code from math.

class MathPrompt(minichain.TemplatePrompt[str]):
    template_file = "math.pmpt.tpl"

    
# Ask a question and run it as python code.

with minichain.start_chain("math") as backend:
    math_prompt = MathPrompt(backend.OpenAI())
    code_prompt = minichain.SimplePrompt(backend.Python())
    prompt = math_prompt.chain(code_prompt)
    # result = prompt({"question": question})
    # print(result)

gradio = prompt.to_gradio(fields =["question"],
                          examples=["What is the sum of the powers of 3 (3^i) that are smaller than 100?",
                                    "What is the sum of the 10 first positive integers?",
                                    "Carla is downloading a 200 GB file. She can download 2 GB/minute, but 40% of the way through the download, the download fails. Then Carla has to restart the download from the beginning. How load did it take her to download the file in minutes?"],
                          out_type="markdown",
                          description=desc
                 
)
if __name__ == "__main__":
    gradio.launch()

    
# View the prompt

# + tags=["hide_inp"]
# MathPrompt().show({"question": "What is 10 + 12?"}, "10 + 12")
# # -

# # View the log

# minichain.show_log("math.log")