developer_salary_prediction / example_inference.py
dima806's picture
Upload 38 files
1a584f9 verified
Raw
History Blame Contribute Delete
5.13 kB
"""Example script showing how to use the salary prediction model programmatically."""
from src.schema import SalaryInput
from src.infer import predict_salary
def main():
"""Run sample predictions with different input parameters."""
print("=" * 60)
print("Developer Salary Prediction - Sample Inference")
print("=" * 60)
# Example 1: Default parameters (same as Streamlit app defaults)
print("\nπŸ“Š Example 1: Default Parameters")
print("-" * 60)
input_data_1 = SalaryInput(
country="United States of America",
years_code=5.0,
work_exp=3.0,
education_level="Bachelor's degree (B.A., B.S., B.Eng., etc.)",
dev_type="Developer, full-stack",
industry="Software Development",
age="25-34 years old",
ic_or_pm="Individual contributor",
org_size="20 to 99 employees",
)
print(f"Country: {input_data_1.country}")
print(f"Years of Coding (Total): {input_data_1.years_code}")
print(f"Work Experience: {input_data_1.work_exp}")
print(f"Education Level: {input_data_1.education_level}")
print(f"Developer Type: {input_data_1.dev_type}")
print(f"Industry: {input_data_1.industry}")
print(f"Age: {input_data_1.age}")
print(f"IC or PM: {input_data_1.ic_or_pm}")
print(f"Organization Size: {input_data_1.org_size}")
salary_1 = predict_salary(input_data_1)
print(f"πŸ’° Predicted Salary: ${salary_1:,.2f} USD/year")
# Example 2: Junior developer
print("\nπŸ“Š Example 2: Junior Developer")
print("-" * 60)
input_data_2 = SalaryInput(
country="United States of America",
years_code=2.0,
work_exp=1.0,
education_level="Master's degree (M.A., M.S., M.Eng., MBA, etc.)",
dev_type="Developer, front-end",
industry="Fintech",
age="18-24 years old",
ic_or_pm="Individual contributor",
org_size="20 to 99 employees",
)
print(f"Country: {input_data_2.country}")
print(f"Years of Coding (Total): {input_data_2.years_code}")
print(f"Work Experience: {input_data_2.work_exp}")
print(f"Education Level: {input_data_2.education_level}")
print(f"Developer Type: {input_data_2.dev_type}")
print(f"Industry: {input_data_2.industry}")
print(f"Age: {input_data_2.age}")
print(f"IC or PM: {input_data_2.ic_or_pm}")
print(f"Organization Size: {input_data_2.org_size}")
salary_2 = predict_salary(input_data_2)
print(f"πŸ’° Predicted Salary: ${salary_2:,.2f} USD/year")
# Example 3: Senior developer with Master's degree
print("\nπŸ“Š Example 3: Senior Developer")
print("-" * 60)
input_data_3 = SalaryInput(
country="United States of America",
years_code=10.0,
work_exp=8.0,
education_level="Master's degree (M.A., M.S., M.Eng., MBA, etc.)",
dev_type="Engineering manager",
industry="Banking/Financial Services",
age="35-44 years old",
ic_or_pm="People manager",
org_size="1,000 to 4,999 employees",
)
print(f"Country: {input_data_3.country}")
print(f"Years of Coding (Total): {input_data_3.years_code}")
print(f"Work Experience: {input_data_3.work_exp}")
print(f"Education Level: {input_data_3.education_level}")
print(f"Developer Type: {input_data_3.dev_type}")
print(f"Industry: {input_data_3.industry}")
print(f"Age: {input_data_3.age}")
print(f"IC or PM: {input_data_3.ic_or_pm}")
print(f"Organization Size: {input_data_3.org_size}")
salary_3 = predict_salary(input_data_3)
print(f"πŸ’° Predicted Salary: ${salary_3:,.2f} USD/year")
# Example 4: Different country
print("\nπŸ“Š Example 4: Different Country (Germany)")
print("-" * 60)
input_data_4 = SalaryInput(
country="Germany",
years_code=5.0,
work_exp=3.0,
education_level="Bachelor's degree (B.A., B.S., B.Eng., etc.)",
dev_type="Developer, back-end",
industry="Manufacturing",
age="25-34 years old",
ic_or_pm="Individual contributor",
org_size="100 to 499 employees",
)
print(f"Country: {input_data_4.country}")
print(f"Years of Coding (Total): {input_data_4.years_code}")
print(f"Work Experience: {input_data_4.work_exp}")
print(f"Education Level: {input_data_4.education_level}")
print(f"Developer Type: {input_data_4.dev_type}")
print(f"Industry: {input_data_4.industry}")
print(f"Age: {input_data_4.age}")
print(f"IC or PM: {input_data_4.ic_or_pm}")
print(f"Organization Size: {input_data_4.org_size}")
salary_4 = predict_salary(input_data_4)
print(f"πŸ’° Predicted Salary: ${salary_4:,.2f} USD/year")
print("\n" + "=" * 60)
print("βœ… All predictions completed successfully!")
print("=" * 60)
if __name__ == "__main__":
try:
main()
except FileNotFoundError:
print("❌ Error: Model file not found!")
print("Please train the model first by running:")
print(" uv run python src/train.py")
except Exception as e:
print(f"❌ Error occurred: {str(e)}")