Change into your course repository

cd <path_to_repo>

Create a .gitignore file containing the following in it.

env
.chromadb
__pycache__
*.pyc

Then, create a directory "hw1" and populate it with the files you'll be working on for this homework. Finally, commit and push to your remote repository.

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

In this homework, you will experiment with creating your own LangChain RAG application by augmenting the lab examples with functionality from additional modules as documented here or with different architectures as documented here. Leverage any number of additional document types, document chunking/splitting techniques, processing chains, embeddings, vector databases, and language models to build an application of your own. 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.

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.

You may use screencast software of your choice. Options include video conferencing applications such as Google Meet and Zoom or dedicated programs such as OBS Screen Recorder, QuickTime (MacOS), Screencast-O-Matic (Windows), or RecordMyDesktop (Linux). In addition, CaptureSpace Lite is available via PSU's Media Space (https://media.pdx.edu).

Screencast

Upload your completed screencast on MediaSpace. Ensure that it is published as "Unlisted". To do so, visit MediaSpace and click on "My Media".

Click on the screencast video that has been uploaded. Then, in the tabs below, select the "Publish" tab, click on "Unlisted", and then "Save".

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.

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.