File size: 3,062 Bytes
7b856a8
 
 
 
f5ec828
872b692
f5ec828
 
 
 
872b692
f5ec828
 
 
 
 
872b692
7b856a8
f5ec828
4e3dc76
 
 
7b856a8
 
 
4e3dc76
 
 
 
f5ec828
4e3dc76
 
 
7b856a8
 
 
 
f5ec828
872b692
f5ec828
7b856a8
 
4e3dc76
7b856a8
 
 
4e3dc76
f5ec828
872b692
7b856a8
4e3dc76
7b856a8
4e3dc76
7b856a8
4e3dc76
 
 
 
7b856a8
 
 
 
f5ec828
872b692
7b856a8
4e3dc76
7b856a8
 
 
4e3dc76
 
 
7b856a8
 
 
 
f5ec828
872b692
f5ec828
4e3dc76
7b856a8
4e3dc76
 
7b856a8
 
 
f5ec828
 
872b692
7b856a8
f5ec828
 
7b856a8
 
 
f5ec828
872b692
7b856a8
4e3dc76
7b856a8
f5ec828
7b856a8
4e3dc76
 
 
 
 
 
 
 
 
 
7b856a8
 
 
 
 
f5ec828
 
 
7b856a8
 
 
 
 
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0360e829",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install -q git+https://github.com/srush/MiniChain\n",
    "!git clone https://github.com/srush/MiniChain; cp -fr MiniChain/examples/* . "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "60519a97",
   "metadata": {
    "lines_to_next_cell": 2,
    "tags": [
     "hide_inp"
    ]
   },
   "outputs": [],
   "source": [
    "\n",
    "desc = \"\"\"\n",
    "### Bash Command Suggestion\n",
    "\n",
    "Chain that ask for a command-line question and then runs the bash command. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/srush/MiniChain/blob/master/examples/bash.ipynb)\n",
    "\n",
    "(Adapted from LangChain [BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html))\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "852ced62",
   "metadata": {},
   "outputs": [],
   "source": [
    "from minichain import show, prompt, OpenAI, Bash"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b80a8444",
   "metadata": {
    "lines_to_next_cell": 1
   },
   "outputs": [],
   "source": [
    "@prompt(OpenAI(), template_file = \"bash.pmpt.tpl\")\n",
    "def cli_prompt(model, query):\n",
    "    x = model(dict(question=query))\n",
    "    return \"\\n\".join(x.strip().split(\"\\n\")[1:-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7d6cc929",
   "metadata": {
    "lines_to_next_cell": 1
   },
   "outputs": [],
   "source": [
    "@prompt(Bash())\n",
    "def bash_run(model, x):\n",
    "    return model(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3c841ddf",
   "metadata": {},
   "outputs": [],
   "source": [
    "def bash(query):\n",
    "    return bash_run(cli_prompt(query))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cd905126",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8b3470a3",
   "metadata": {
    "lines_to_next_cell": 2
   },
   "outputs": [],
   "source": [
    "gradio = show(bash,\n",
    "              subprompts=[cli_prompt, bash_run],\n",
    "              examples=['Go up one directory, and then into the minichain directory,'\n",
    "                        'and list the files in the directory',\n",
    "                        \"Please write a bash script that prints 'Hello World' to the console.\"],\n",
    "              out_type=\"markdown\",\n",
    "              description=desc,\n",
    "              )\n",
    "if __name__ == \"__main__\":\n",
    "    gradio.launch()"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "tags,-all",
   "main_language": "python",
   "notebook_metadata_filter": "-all"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}