Project 1 Sprint 3
This agile sprint is a continuation sprint2
found here, which itself was a continuation of
sprint1 found here. An instructor's solution for sprint2 will be
published shortly after this assignment, at which time I will be unable to
accept any late sprint2 submissions.
Summary: In this third sprint, you will build an interactive
program which will let a user ask about their reservations via voice and
get an answer.
Due: Sun March 1st at 11:59pm (I may well publish sprint 4 the
previous Friday)
Important: Do all of your work in
the same github project as sprint1 and Sprint2 .
Deliverable for Sprint3
- In this sprint, you will hook together the voice from sprint1 and the
skills from sprint2: use langchain or some similar AI agent building
library to build an Agentic AI which will listen for voice input and
answer questions like "when is my next booked room"?
- update your skills from sprint2 as needed
- python skills will need type-hints added
- python skills will need doc strings added
- java skills will need
@tool("<docs here">)
documentation strings
- add additional skills as needed
- you probably need one to get the current day and/or time
- others?
- update your voice if needed
- you don't want to feed "partials" to the LLM - some of you were
generating more "partials" than full voice transcripts
- for this sprint, your agent only needs to answer questions about the
meeting reservations, it doesn't need to make or delete reservations.
- Sample questions your agent should be able to answer:
- (grad students only) do I have a reservation
tomorrow?
- When is my reservation for Welcome Center206?
- Do I have a reservation in Room 1 today?
- What rooms are free today at 11am that have at least 6 seats.
- Git commit comments:
- make sure your commit comments are meaningful and that your commits
are regular (this will now be part of the grade)
- the same commit message a dozen times in a row is not ok
- these messages are what your future colleagues will use to decide
what commits to look at when there is trouble
- Automated Tests: in this sprint, you will add to your suite of
automated tests - this time lets do an integration/functional/end-to-end
test
- feel free to use fixtures and/or setup/teardown to support this
(though we haven't discussed this aspect of testing yet) or just stuff
it all into one function given our sprinting nature
- the test should create a meeting room reservation - use your
sprint2 function
- include a voice file asking for details on the reservation
- test your new code to make sure the returned text include correct
information about the reservation
- remove the reservation so the creation will work properly next
time.
- devops
- update your github actions file to support this new test
- if using cloud AI, be sure to keep your api key secret using the
secrets mechanism
- update your maven/gradle/pyproject.toml/requirements.txt with the
new libraries you are adding for this project.
- Update your readme to
- explain how to use your program
- explain how to setup the AI
- explain the current format of your secrets file so I can recreate it
on my machine.
- explain anything else that I as a user not deeply familiar with the
project like you are, need to know to work with your project.
Submitting this assignment
At the due date (or since it is midnight - probably the next morning) I will
re-pull your project from the original repository.