{ "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 }