Scripts to help prepare for robot interviews by managing interview contexts and Redis data.
This toolkit provides:
- Interview Context Management - Create, store, and load interview contexts for robot interviews
- Redis Integration - Store and retrieve interview data in Redis with session management
- Docker Support - Connect to Redis running in Docker containers
-
prepare_guest_prompt.py
- Creates structured interview briefs from Qwello data and LLM processing
- Saves interview briefs as text files
-
manage_interview_context.py
- Lists available interview contexts stored as text files
- Selects contexts to load into Redis for upcoming interviews
- Creates new contexts when needed
-
redis_client.py
- Handles different Redis data types
- Provides functions to get, set, list, and delete variables
-
interview_redis_utils.py
- Lists all stored interview guests
- Retrieves interview briefs
- Deletes interview data when no longer needed
-
find_redis_ip.py
- Locates Redis containers in Docker environments
- Updates .env file with correct connection details
-
Clone the repository:
git clone https://github.com/yourusername/interview-prep.git cd interview-prep -
Run the setup script:
chmod +x setup.sh ./setup.sh
This script will:
- Create a Python virtual environment
- Install all dependencies
- Make the scripts executable
- Create a template .env file
- Create the interview_contexts directory
-
Edit the .env file with your Redis connection details
After running the setup script, you can use the tools directly from the bin directory:
./bin/manage_interview_context
./bin/redis_client
./bin/find_redis_ipFor convenience, you can add the bin directory to your PATH:
export PATH="$PATH:$(pwd)/bin"Then you can run the commands from anywhere:
manage_interview_context
redis_client- The script prompts for guest information (name and focus areas)
- It queries the Qwello API for background data on the guest (when available)
- The data is processed through an LLM via LangChain
- The LLM structures the information into sections like:
- Guest background
- Key topics
- Talking points
- Suggested questions
- Potential follow-ups
- Interview strategy
- The structured output is saved as a text file in the
interview_contextsdirectory
The hrsdk system uses a session ID to organize Redis variables:
- Each session has a unique ID stored in
default.current_session - All variables for a session are prefixed with
default.{session_id}. - This keeps Redis organized and allows multiple interview sessions
In your robot's Jinja2 templates, you can access the interview data like this:
{% if interview_context %}
{# Use the interview context data here #}
{% endif %}- Interview contexts are stored as text files in the
interview_contextsdirectory - When you select a context, it's loaded into Redis with the current session ID
- The system is designed to keep Redis clean by using session-based prefixes
- Ensure you have valid API keys in your
.envfile if using external services
The redis_client.py utility allows direct interaction with Redis:
# List variables (excluding sentence embeddings)
./bin/redis_client --list
# List all variables including sentence embeddings
./bin/redis_client --list-all
# Get a specific variable
./bin/redis_client --get <key>
# Set a specific variable
./bin/redis_client --set <key> <value>
# Delete a specific variable
./bin/redis_client --delete <key>