Spaces:
Running
Running
| def prompt_with_default(prompt_text, default_value=None, cast_type=str): | |
| user_input = input(f"{prompt_text} ") | |
| if user_input.strip() == "": | |
| return default_value | |
| try: | |
| return cast_type(user_input) | |
| except ValueError: | |
| print(f"Invalid input. Using default: {default_value}") | |
| return default_value | |
| def get_user_inputs(): | |
| # 1. Novel genre | |
| genre = prompt_with_default("Novel genre (press Enter for default - teen mystery):", "teen mystery") | |
| # 2. General plot | |
| plot = input("General plot (Enter for auto-generated plot): ").strip() | |
| if not plot: | |
| plot = "Auto-Generated Plot" | |
| # 3. Title | |
| title = input("Title (Enter for auto-generated title): ").strip() | |
| if not title: | |
| title = "Auto-Generated Title" | |
| # 4. Number of pages | |
| num_pages = prompt_with_default("Number of pages in novel (Enter for default - 90 pages):", 90, int) | |
| num_words = num_pages * 275 | |
| # 5. Number of chapters | |
| num_chapters = prompt_with_default("Number of chapters (Enter for default - 15):", 15, int) | |
| # 6. Max AI tokens | |
| while True: | |
| max_tokens_input = input( | |
| "\nMaximum AI tokens to use. Note that if the max tokens is not high enough, \ | |
| the novel might not be completely generated. (about 50,000 - 200,000 tokens for 90): " | |
| ).strip() | |
| try: | |
| max_tokens = int(max_tokens_input) | |
| if max_tokens <= 0: | |
| print("Please enter a positive integer.") | |
| continue | |
| if max_tokens > 300000: | |
| print(f"\n⚠️ You entered {max_tokens:,} tokens, which is quite high and may be expensive.") | |
| confirm = input("Are you sure you want to use this value? (Yes or No): ").strip().lower() | |
| if confirm != "yes": | |
| print("Okay, let's try again.\n") | |
| continue # Ask again | |
| break # Valid and confirmed | |
| except ValueError: | |
| print("Please enter a valid integer.") | |
| print(f"\nGenre: {genre}") | |
| print(f"Plot: {plot}") | |
| print(f"Title: {title}") | |
| print(f"Pages: {num_pages}") | |
| print(f"Chapters: {num_chapters}") | |
| print(f"Max Tokens: {max_tokens}") | |
| return genre, title, num_pages, num_words, num_chapters, plot, max_tokens |