srush commited on
Commit
d5281f2
·
1 Parent(s): 2de850a

Upload with huggingface_hub

Browse files
Files changed (2) hide show
  1. app.py +30 -49
  2. requirements.txt +2 -1
app.py CHANGED
@@ -1,62 +1,43 @@
1
- # Notebook to generate and run a bash command.
2
- # Adapted from LangChain
3
- # [BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html)
4
-
5
- import minichain
6
-
7
- # Prompt that asks LLM to produce a bash command.
8
-
9
-
10
- class CLIPrompt(minichain.TemplatePrompt):
11
- template_file = "bash.pmpt.tpl"
12
-
13
- def parse(self, out: str, inp):
14
- out = out.strip()
15
- assert out.startswith("```bash")
16
- return out.split("\n")[1:-1]
17
-
18
-
19
- # Prompt that runs the bash command.
20
-
21
-
22
- class BashPrompt(minichain.Prompt):
23
- def prompt(self, inp) -> str:
24
- return ";".join(inp).replace("\n", "")
25
 
26
- def parse(self, out: str, inp) -> str:
27
- return out
28
 
 
29
 
30
- # Generate and run bash command.
 
 
31
 
32
- with minichain.start_chain("bash") as backend:
33
- question = (
34
 
35
- )
36
- prompt = CLIPrompt(backend.OpenAI()).chain(BashPrompt(backend.BashProcess()))
37
 
38
 
39
- prompt.to_gradio(fields =["question"],
40
- examples=['Go up one directory, and then into the minichain directory,'
41
- 'and list the files in the directory'],
42
- out_type="markdown"
43
-
44
- ).launch()
45
 
46
-
47
- # View the prompts.
 
48
 
49
- # + tags=["hide_inp"]
50
- # CLIPrompt().show(
51
- # {"question": "list the files in the directory"}, """```bash\nls\n```"""
52
- # )
53
- # # -
54
 
55
 
56
- # # + tags=["hide_inp"]
57
- # BashPrompt().show(["ls", "cat file.txt"], "hello")
58
- # # -
59
 
60
- # # View the run log.
 
 
 
 
 
 
 
 
 
 
61
 
62
- # minichain.show_log("bash.log")
 
1
+ # + tags=["hide_inp"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ desc = """
4
+ ### Bash Command Suggestion
5
 
6
+ Chain that ask for a command-line question and then runs the bash command. [[Code](https://github.com/srush/MiniChain/blob/main/examples/bash.py)]
7
 
8
+ (Adapted from LangChain [BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html))
9
+ """
10
+ # -
11
 
12
+ # $
 
13
 
14
+ from minichain import show, prompt, OpenAI, Bash
 
15
 
16
 
17
+ @prompt(OpenAI(), template_file = "bash.pmpt.tpl")
18
+ def cli_prompt(model, query):
19
+ x = model(dict(question=query))
20
+ return "\n".join(x.strip().split("\n")[1:-1])
 
 
21
 
22
+ @prompt(Bash())
23
+ def bash_run(model, x):
24
+ return model(x)
25
 
26
+ def bash(query):
27
+ return bash_run(cli_prompt(query))
 
 
 
28
 
29
 
30
+ # $
 
 
31
 
32
+ gradio = show(bash,
33
+ subprompts=[cli_prompt, bash_run],
34
+ examples=['Go up one directory, and then into the minichain directory,'
35
+ 'and list the files in the directory',
36
+ "Please write a bash script that prints 'Hello World' to the console."],
37
+ out_type="markdown",
38
+ description=desc,
39
+ code=open("bash.py", "r").read().split("$")[1].strip().strip("#").strip(),
40
+ )
41
+ if __name__ == "__main__":
42
+ gradio.launch()
43
 
 
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
- gradio
2
  git+https://github.com/srush/minichain@gradio
3
  manifest-ml
 
 
1
+ gradio==3.21.0
2
  git+https://github.com/srush/minichain@gradio
3
  manifest-ml
4
+ faiss-cpu