Examples
This page provides examples of how to use WizardSData in different scenarios.
Basic Usage Example
Here’s a simple example of how to use WizardSData to generate conversations:
import os
import sys
import json
import wizardsdata as wsd
def main():
"""Example of using WizardSData."""
# Configure the library
missing = wsd.set_config(
API_KEY="YOUR-API-KEY", # Replace with your actual API key
template_client_prompt="templates/financial01/prompts/financial_client_01.j2",
template_advisor_prompt="templates/financial01/prompts/financial_advisor_01.j2",
file_profiles="templates/financial01/profiles/financial_sample01_1.json",
file_output="templates/financial01/outputs/test_dataset01_1.json",
model_client="gpt-4o-mini",
model_advisor="gpt-4o-mini",
# Optional parameters with custom values
temperature_client=0.8,
max_recommended_questions=10
)
# Check for missing parameters
if missing:
print(f"Missing configuration parameters: {', '.join(missing)}")
return
# Display current configuration
config = wsd.get_config()
print("Current configuration:")
print(json.dumps(config, indent=2))
# Check if configuration is valid
if not wsd.is_config_valid():
print("Configuration is not valid.")
return
# Start generating conversations
print("Starting conversation generation...")
success = wsd.start_generation()
if success:
print("Conversations generated successfully!")
else:
print("Failed to generate conversations.")
if __name__ == "__main__":
main()
Loading Configuration from Environment Variables
You can load the API key from environment variables:
import os
import wizardsdata as wsd
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Get API key from environment
api_key = os.environ.get("OPENAI_API_KEY")
# Configure WizardSData with the API key
errors = wsd.set_config(
API_KEY=api_key,
template_client_prompt="templates/client.j2",
template_advisor_prompt="templates/advisor.j2",
file_profiles="profiles.json",
file_output="output.json",
model_client="gpt-4",
model_advisor="gpt-4"
)
# Check for errors
if not errors:
# Start generation
wsd.start_generation()
Creating and Using a Configuration File
You can save and load configuration to/from a file:
import wizardsdata as wsd
# Set configuration
wsd.set_config(
API_KEY="your-api-key",
template_client_prompt="templates/client.j2",
template_advisor_prompt="templates/advisor.j2",
file_profiles="profiles.json",
file_output="output.json",
model_client="gpt-4",
model_advisor="gpt-4"
)
# Save configuration to file
wsd.save_config("config.json")
# Later, in another script
wsd.load_config("config.json")
wsd.start_generation()
Using the Command Line Interface
You can use WizardSData from the command line:
# Configure WizardSData
python -m wizardsdata configure \
--api-key "your-api-key" \
--client-template "templates/client.j2" \
--advisor-template "templates/advisor.j2" \
--profiles "profiles.json" \
--output "output.json" \
--client-model "gpt-4" \
--advisor-model "gpt-4" \
--config-file "config.json"
# Generate conversations
python -m wizardsdata generate
# Show current configuration
python -m wizardsdata show-config
# Load configuration from file
python -m wizardsdata load-config "config.json"
Creating a Retail Banking Dataset
Here’s an example of creating a retail banking conversation dataset:
import wizardsdata as wsd
import json
import os
from dotenv import load_dotenv
# Load API key from environment
load_dotenv()
api_key = os.environ.get("OPENAI_API_KEY")
# Configure WizardSData
errors = wsd.set_config(
API_KEY=api_key,
template_client_prompt="templates/financial01/prompts/financial_client_01.j2",
template_advisor_prompt="templates/financial01/prompts/financial_advisor_01.j2",
file_profiles="templates/financial01/profiles/financial_sample01_5.json",
file_output="test_financial_dataset01_5.json",
model_client="gpt-4o-mini",
model_advisor="gpt-4o-mini",
temperature_client=0.8,
temperature_advisor=0.1,
max_recommended_questions=15
)
# Check for errors
if not errors:
# Generate conversations
success = wsd.start_generation()
if success:
print("Retail banking dataset generated successfully!")
else:
print("Failed to generate retail banking dataset.")
else:
print(f"Configuration errors: {errors}")
# Load and analyze the generated dataset
with open("test_financial_dataset01_5.json", "r") as f:
data = json.load(f)
# Print the number of conversation turns
print(f"Generated {len(data)} conversation turns.")
# Count distinct conversations
conversations = set(item["id_conversation"] for item in data)
print(f"Number of distinct conversations: {len(conversations)}")