From 8980dcc743f4b4cec9fa6115a27b3ae9a2c22c61 Mon Sep 17 00:00:00 2001 From: ajosh0504 Date: Mon, 10 Jun 2024 07:38:33 -0700 Subject: [PATCH] Adding Colab instructions, updated readme --- README.md | 41 ++++++------------ docs/30-dev-env/1-dev-setup.mdx | 16 ++++++- .../screenshots/30-dev-env/1-open-colab.png | Bin 0 -> 16531 bytes ...er-notebook.png => 2-jupyter-notebook.png} | Bin 4 files changed, 27 insertions(+), 30 deletions(-) create mode 100644 static/img/screenshots/30-dev-env/1-open-colab.png rename static/img/screenshots/30-dev-env/{1-jupyter-notebook.png => 2-jupyter-notebook.png} (100%) diff --git a/README.md b/README.md index 6058691..bf03aa4 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,26 @@ -# Docusaurus Template Workshop +# Developer Days AI Agents Lab -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. It's available on https://mongodb-developer.github.io/docusaurus-workshop/. +This is the AI Agents Lab used during MongoDB Developer Days that covers building AI Agents using a fully open AI stack. -This is a template to create new Workshop documentation sites. Contains info on how to use Docusaurus and is a good starting point. +You can access the online version of the lab [here](https://mongodb-developer.github.io/ai-agents-lab/). -### Installation +## Running the Lab Locally -``` -npx create-docusaurus@latest name-of-my-new-awesome-workshop https://github.com/mongodb-developer/docusaurus-workshop -cd name-of-my-new-awesome-workshop -npm start -``` +If you want to run the lab locally, you can start by cloning the repository or downloading the code. You will need to have [Node.js](https://nodejs.org/en/) installed. -As you don't want to get the changes of these sample pages, just delete the `.git` folder and then `git init`. +Once you have the code, you can run the following commands to install the dependencies and start the server: -Open `docusaurus.config.js` and change at least the `workshopName` - -### Local Development - -``` -$ npm start ``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ npm build +npm install +npm start ``` -This command generates static content into the `build` directory and can be served using any static contents hosting service. +You can then access the lab at http://localhost:3000 -### Deployment +## Contributing -Use the provided Github Action, or deploy manually after building +If you find any issues with the lab, please open an issue or submit a pull request. -### Disclaimer +## License -Use at your own risk; not a supported MongoDB product +This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details diff --git a/docs/30-dev-env/1-dev-setup.mdx b/docs/30-dev-env/1-dev-setup.mdx index c53658c..ee4bf5e 100644 --- a/docs/30-dev-env/1-dev-setup.mdx +++ b/docs/30-dev-env/1-dev-setup.mdx @@ -2,6 +2,18 @@ import Screenshot from "@site/src/components/Screenshot"; # 👐 Setup dev environment +You will be working in a Jupyter Notebook throughout this lab. The easiest and recommended way to run the lab notebook is using Google Colab. + +Navigate to the notebook on [GitHub](https://github.com/mongodb-developer/ai-agents-lab-notebooks/blob/main/notebook_template.ipynb) and click the **Open in Colab** badge at the top of the notebook to open it in Google Colab. + + + +That's it! You're ready for the lab! + +## Local setup + +If you want to run the notebook locally, follow the steps below: + * Clone the [GitHub repo](https://github.com/mongodb-developer/ai-agents-lab-notebooks.git) for this lab by executing the following command from the terminal: ``` @@ -28,6 +40,6 @@ pip install notebook jupyter notebook ``` -* In the browser tab that pops up, open the notebook named `notebook_template.ipynb`. This is the notebook you will be working in for this lab. +* In the browser tab that pops up, open the notebook named `notebook_template.ipynb`. - \ No newline at end of file + \ No newline at end of file diff --git a/static/img/screenshots/30-dev-env/1-open-colab.png b/static/img/screenshots/30-dev-env/1-open-colab.png new file mode 100644 index 0000000000000000000000000000000000000000..ab4aad91b5212ca12cee433c2b29fed972a347d4 GIT binary patch literal 16531 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 literal 0 HcmV?d00001 diff --git a/static/img/screenshots/30-dev-env/1-jupyter-notebook.png b/static/img/screenshots/30-dev-env/2-jupyter-notebook.png similarity index 100% rename from static/img/screenshots/30-dev-env/1-jupyter-notebook.png rename to static/img/screenshots/30-dev-env/2-jupyter-notebook.png