A containerized lambda function that does the following:
- downloads the chromadb data from S3 in the
chromadb.zipfile - downloads the list of markdown files from S3 in the
session-notes/S3 prefix - updates the chromadb data with the markdown files that were updated, deleted, or renamed
- saves the chromadb data back to S3 in the
chromadb.zipfile
A containerized lambda function that does the following:
- downloads the chromadb data from S3 in the
chromadb.zipfile - queries the chromadb data for the 5 most similar data points closest to the supplied
query - passes the
queryand the similar data points to the OpenAI API to answer the question
A python runtime lambda function that allows for login, file manageent, and access to the RAG answering utility.
The frontend is a CloudFront distribution pointing to an S3 bucket, which talks to the backend.
I have some miscellaneous scripts in the session-notes/ directory, used for actually creating the inputs for the other apps above
This file exclusively combines LLM instructions, campaign state, and big-picture notes in one doc for use with the summary-generate.py method
- create a
mainifest.txtwhich lists all of the files and folders to be combined, example below.
instructions.ignore.md
characters-header.ignore.md
characters/
after-characters-spacing.ignore.md
campaign-setting-map.md
important-places.md
important-items.md
important-groups.md.ignore.mdis an extension that does not get uploaded when runningsync-notes.py, so you can create secret DM-only notes that don't get used in the RAG completion but do get used for summarizing things.- you can set a directory in the
manifest.txtand thegenerate.shscript will walk th edirectory and find all the*.mdfiles
cd session-notes/
sh generate.sh
This will generate a file in sessions/instructions-and-state.txt
This script requires a OPENAI_API_KEY environment variable.
- set your
OPENAI_API_KEYenvironment variable - create three files
sessions/YYYY-MM-DD-chat-log.mdsessions/YYYY-MM-DD-notes.mdsessions/YYYY-MM-DD-summary.md
- run the
generate.shscript to createsessions/instructions-and-state.txt
Once you run the script with whatever flavor of python (uv, pipenv, whatever idc), it will generate a sessions/YYYY-MM-DD-summary.md
This script syncs between your local session-notes folder and a S3 bucket defined on BUCKET and a prefix defined on PREFIX
Once you run the script with whatever flavor of python (uv, pipenv, whatever idc), it will interactively ask you how to resolve conflicts between files.
To make the transcripts, i use the hear command, here's an example
./hear -p -d -i ../../dnd-session-notes/session-notes/2025-12-09.mp3 > ../../dnd-session-notes/session-notes/2025-12-09.txt