Within your course repository, create a directory "hw6". Commit and push to your remote repository.

cd <path_to_repo>
mkdir hw6
touch hw6/app.py
touch hw6/screencast_url.txt
git add hw6
git commit -m "initial commit for hw6"
git push

In this homework, based on the lab exercises, you will create your own LangChain application to orchestrate the use of command and configuration generation functions. Some applications might include

Note that when testing these tools on Google Cloud resources, take care to point them only to the internal IP addresses of servers you deploy on your Google Cloud Project (e.g. 10.x.y.z).

Your development should be organized and incremental, with frequent commits into your git repository. Code should also be properly documented via Python docstrings. In addition, you must also ensure API keys do not show up in your source files, but rather are passed in via environment variables. Ensure your application code is pushed to your repository before class.

Screencast

Upon completing your application, via a narrated screencast of no longer than 5 minutes, you will perform a demonstration and source code walk-through of the application using the script below.

Upload your completed screencast on MediaSpace. Ensure that it is published as "Unlisted". Then, update the file screencast_url.txt in the homework's directory to contain the URL that your unlisted screencast on MediaSpace is located. Push the changes that include the updated URL to your repository before class.

Rubric

We will be using your screencast and git repository to evaluate your homework.

Code checkout shown

Demonstration of the various capabilities of the application

Demonstration of the various limitations of the application

Code quality (clean with no unused code or variables, readable, modular, documented with Docstrings and comments, no hard-coded keys within source code)

Walkthrough of source code via git commits on Gitlab

Instructions followed properly including code submission in the specified repository files, sequencing and length of screencast.