Spaces:
Sleeping
Sleeping
| # /scripts/seed_data.py | |
| #!/usr/bin/env python3 | |
| """ | |
| Seed script to load sample products and FAQs into local data files. | |
| - Creates ./data/products.json and ./data/faqs.json | |
| - Provides a CLI to re-seed or show contents | |
| - No external dependencies required | |
| Run: | |
| python scripts/seed_data.py # create seed files | |
| python scripts/seed_data.py show # print contents | |
| """ | |
| import sys | |
| import json | |
| from pathlib import Path | |
| import datetime | |
| ROOT = Path(__file__).resolve().parent.parent | |
| DATA_DIR = ROOT / "data" | |
| DATA_DIR.mkdir(parents=True, exist_ok=True) | |
| PRODUCTS_PATH = DATA_DIR / "products.json" | |
| FAQS_PATH = DATA_DIR / "faqs.json" | |
| SAMPLE_PRODUCTS = [ | |
| { | |
| "id": "p1", | |
| "name": "Chatbot Pro Subscription", | |
| "description": "Access advanced features of the chatbot platform.", | |
| "price": 9.99, | |
| "currency": "USD", | |
| "tags": ["subscription", "chatbot"], | |
| }, | |
| { | |
| "id": "p2", | |
| "name": "Custom Bot Avatar", | |
| "description": "A personalized avatar for your chatbot.", | |
| "price": 4.99, | |
| "currency": "USD", | |
| "tags": ["avatar", "customization"], | |
| }, | |
| { | |
| "id": "p3", | |
| "name": "Analytics Dashboard", | |
| "description": "Real-time analytics and reporting for your conversations.", | |
| "price": 14.99, | |
| "currency": "USD", | |
| "tags": ["analytics", "dashboard"], | |
| }, | |
| ] | |
| SAMPLE_FAQS = [ | |
| { | |
| "q": "How do I reset my password?", | |
| "a": "Click 'Forgot password' on the login page and follow the instructions.", | |
| }, | |
| { | |
| "q": "Can I export my chat history?", | |
| "a": "Yes, you can export your chat history from the account settings page.", | |
| }, | |
| { | |
| "q": "Do you offer refunds?", | |
| "a": "Refunds are available within 14 days of purchase. Contact support for help.", | |
| }, | |
| ] | |
| def write_json(path: Path, data) -> None: | |
| path.write_text(json.dumps(data, indent=2, ensure_ascii=False), encoding="utf-8") | |
| def seed() -> None: | |
| write_json(PRODUCTS_PATH, SAMPLE_PRODUCTS) | |
| write_json(FAQS_PATH, SAMPLE_FAQS) | |
| print(f"✅ Seeded data at {datetime.date.today()} into {DATA_DIR}") | |
| def show() -> None: | |
| if PRODUCTS_PATH.is_file(): | |
| print("Products:") | |
| print(PRODUCTS_PATH.read_text(encoding="utf-8")) | |
| if FAQS_PATH.is_file(): | |
| print("\nFAQs:") | |
| print(FAQS_PATH.read_text(encoding="utf-8")) | |
| if __name__ == "__main__": | |
| if len(sys.argv) > 1 and sys.argv[1] == "show": | |
| show() | |
| else: | |
| seed() | |