Automatically Record QueryBot Calls with PromptRecorder
In this tutorial, we will learn how to use the PromptRecorder
class to automatically record calls made to the QueryBot
. The PromptRecorder
class is designed to record prompts and responses, making it a perfect fit for logging interactions with the QueryBot
.
Prerequisites
Before we begin, make sure you have the following Python libraries installed:
- pandas
- panel
You can install them using pip:
pip install pandas panel
Step 1: Import the necessary classes
First, we need to import the PromptRecorder
and QueryBot
classes from their respective source files. You can do this by adding the following lines at the beginning of your script:
from llamabot.recorder import PromptRecorder, autorecord
from llamabot.bot.querybot import QueryBot
Step 2: Initialize the QueryBot
Next, we need to create an instance of the QueryBot
class. You can do this by providing the necessary parameters, such as the system message, model name, and document paths. For example:
system_message = "You are a helpful assistant that can answer questions based on the provided documents."
model_name = "gpt-4"
doc_paths = ["document1.txt", "document2.txt"]
query_bot = QueryBot(system_message, model_name=model_name, document_paths=doc_paths)
Step 3: Use the PromptRecorder context manager
Now that we have an instance of the QueryBot
, we can use the PromptRecorder
context manager to automatically record the prompts and responses. To do this, simply wrap your interactions with the QueryBot
inside a with
statement, like this:
with PromptRecorder() as recorder:
# Interact with the QueryBot here
Step 4: Interact with the QueryBot
Inside the with
statement, you can now interact with the QueryBot
by calling it with your queries. For example:
with PromptRecorder() as recorder:
query = "What is the main idea of document1?"
response = query_bot(query)
print(response.content)
query = "How does document2 support the main idea?"
response = query_bot(query)
print(response.content)
The PromptRecorder
will automatically record the prompts and responses for each interaction with the QueryBot
.
Step 5: Access the recorded data
After you have finished interacting with the QueryBot
, you can access the recorded data using the PromptRecorder
instance. For example, you can print the recorded data as a pandas DataFrame:
print(recorder.dataframe())
Or, you can display the recorded data as an interactive panel:
recorder.panel().show()
Complete Example
Here's the complete example that demonstrates how to use the PromptRecorder
to automatically record QueryBot
calls:
from llamabot.recorder import PromptRecorder, autorecord
from llamabot.bot.querybot import QueryBot
system_message = "You are a helpful assistant that can answer questions based on the provided documents."
model_name = "gpt-4"
doc_paths = ["document1.txt", "document2.txt"]
query_bot = QueryBot(system_message, model_name=model_name, document_paths=doc_paths)
with PromptRecorder() as recorder:
query = "What is the main idea of document1?"
response = query_bot(query)
print(response.content)
query = "How does document2 support the main idea?"
response = query_bot(query)
print(response.content)
print(recorder.dataframe())
recorder.panel().show()
That's it! You now know how to use the PromptRecorder
class to automatically record calls made to the QueryBot
. This can be a useful tool for logging and analyzing interactions with your chatbot.