forked from Archives/langchain
ee670c448e
Clean up linting and make more idiomatic by using an output parser --------- Co-authored-by: FergusFettes <fergusfettes@gmail.com>
187 lines
4.7 KiB
Plaintext
187 lines
4.7 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8f210ec3",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Bash\n",
|
|
"It can often be useful to have an LLM generate bash commands, and then run them. A common use case for this is letting the LLM interact with your local file system. We provide an easy util to execute bash commands."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "f7b3767b",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from langchain.utilities import BashProcess"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "cf1c92f0",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"bash = BashProcess()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "2fa952fc",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"apify.ipynb\n",
|
|
"arxiv.ipynb\n",
|
|
"bash.ipynb\n",
|
|
"bing_search.ipynb\n",
|
|
"chatgpt_plugins.ipynb\n",
|
|
"ddg.ipynb\n",
|
|
"google_places.ipynb\n",
|
|
"google_search.ipynb\n",
|
|
"google_serper.ipynb\n",
|
|
"gradio_tools.ipynb\n",
|
|
"human_tools.ipynb\n",
|
|
"ifttt.ipynb\n",
|
|
"openweathermap.ipynb\n",
|
|
"python.ipynb\n",
|
|
"requests.ipynb\n",
|
|
"search_tools.ipynb\n",
|
|
"searx_search.ipynb\n",
|
|
"serpapi.ipynb\n",
|
|
"wikipedia.ipynb\n",
|
|
"wolfram_alpha.ipynb\n",
|
|
"zapier.ipynb\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(bash.run(\"ls\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "e7896f8e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"apify.ipynb\n",
|
|
"arxiv.ipynb\n",
|
|
"bash.ipynb\n",
|
|
"bing_search.ipynb\n",
|
|
"chatgpt_plugins.ipynb\n",
|
|
"ddg.ipynb\n",
|
|
"google_places.ipynb\n",
|
|
"google_search.ipynb\n",
|
|
"google_serper.ipynb\n",
|
|
"gradio_tools.ipynb\n",
|
|
"human_tools.ipynb\n",
|
|
"ifttt.ipynb\n",
|
|
"openweathermap.ipynb\n",
|
|
"python.ipynb\n",
|
|
"requests.ipynb\n",
|
|
"search_tools.ipynb\n",
|
|
"searx_search.ipynb\n",
|
|
"serpapi.ipynb\n",
|
|
"wikipedia.ipynb\n",
|
|
"wolfram_alpha.ipynb\n",
|
|
"zapier.ipynb\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"bash.run(\"cd ..\")\n",
|
|
"# The commands are executed in a new subprocess each time, meaning that\n",
|
|
"# this call will return the same results as the last.\n",
|
|
"print(bash.run(\"ls\"))"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"id": "851fee9f",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Terminal Persistance\n",
|
|
"\n",
|
|
"By default, the bash command will be executed in a new subprocess each time. To retain a persistent bash session, we can use the `persistent=True` arg."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "4a93ea2c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"bash = BashProcess(persistent=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "a1e98b78",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"custom_tools.ipynb\t\tmulti_input_tool.ipynb\n",
|
|
"examples\t\t\ttool_input_validation.ipynb\n",
|
|
"getting_started.md\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"bash.run(\"cd ..\")\n",
|
|
"# Note the list of files is different\n",
|
|
"print(bash.run(\"ls\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e13c1c9c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.16"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|