{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "4ed306df", "metadata": {}, "outputs": [], "source": [ "!pip install -q git+https://github.com/srush/MiniChain\n", "!git clone git+https://github.com/srush/MiniChain; cp -fr MiniChain/examples/* . " ] }, { "cell_type": "code", "execution_count": null, "id": "1c9aac71", "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": "780fdf4d", "metadata": {}, "outputs": [], "source": [ "from minichain import show, prompt, OpenAI, Bash" ] }, { "cell_type": "code", "execution_count": null, "id": "6e8d844b", "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": "e529c0da", "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": "9894b4b8", "metadata": {}, "outputs": [], "source": [ "def bash(query):\n", " return bash_run(cli_prompt(query))" ] }, { "cell_type": "code", "execution_count": null, "id": "721196f5", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d18f754f", "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 }