Spaces:
Sleeping
Sleeping
| """ | |
| Quick test script to verify FLAN-T5 integration works correctly. | |
| Tests the core analyzer without launching the full Gradio UI. | |
| """ | |
| import sys | |
| import os | |
| # Add src to path | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src")) | |
| # Set environment for testing | |
| os.environ.setdefault("ENVIRONMENT", "development") | |
| os.environ.setdefault("LOG_LEVEL", "INFO") | |
| os.environ.setdefault("ENABLE_METRICS", "false") | |
| def test_analyzer(): | |
| """Test the WritingAnalyzer with FLAN-T5.""" | |
| print("=" * 80) | |
| print("Testing FLAN-T5 Integration") | |
| print("=" * 80) | |
| try: | |
| from writing_studio.core.analyzer import WritingAnalyzer | |
| from writing_studio.core.config import settings | |
| print(f"\n✓ Imports successful") | |
| print(f"✓ Default model: {settings.default_model}") | |
| print(f"✓ Max model length: {settings.max_model_length}") | |
| # Test text from the user's previous example | |
| test_text = """My career ended unexpectedly. The company downsized and I was let go.""" | |
| print(f"\n{'=' * 80}") | |
| print("Initializing WritingAnalyzer...") | |
| print(f"{'=' * 80}") | |
| analyzer = WritingAnalyzer() | |
| print(f"✓ Analyzer initialized") | |
| print(f"✓ Model service: {type(analyzer.model_service).__name__}") | |
| print(f"✓ Current model: {analyzer.model_service._current_model_name}") | |
| print(f"✓ Task type: {analyzer.model_service._task_type}") | |
| print(f"\n{'=' * 80}") | |
| print("Test Input:") | |
| print(f"{'=' * 80}") | |
| print(test_text) | |
| print(f"\n{'=' * 80}") | |
| print("Generating AI revision with FLAN-T5...") | |
| print("(This will take ~60 seconds on first run - model downloading)") | |
| print(f"{'=' * 80}\n") | |
| original, revision, feedback, diff_html, metadata = analyzer.analyze_and_compare( | |
| test_text, | |
| prompt_pack="General" | |
| ) | |
| print(f"\n{'=' * 80}") | |
| print("RESULTS") | |
| print(f"{'=' * 80}") | |
| print(f"\n📄 Original Text:") | |
| print(f"{'-' * 80}") | |
| print(original) | |
| print(f"\n🤖 AI-Revised Text (FLAN-T5):") | |
| print(f"{'-' * 80}") | |
| print(revision) | |
| print(f"\n📊 Rubric Feedback:") | |
| print(f"{'-' * 80}") | |
| print(feedback) | |
| print(f"\n⏱️ Processing Time: {metadata['duration']:.2f}s") | |
| print(f"🤖 Model Used: {metadata['model']}") | |
| print(f"📝 Prompt Pack: {metadata['prompt_pack']}") | |
| print(f"\n{'=' * 80}") | |
| print("Test Result:") | |
| print(f"{'=' * 80}") | |
| # Check if revision is different from original | |
| if revision != original and len(revision) > 0: | |
| print("✅ SUCCESS: FLAN-T5 generated a revision!") | |
| print("✅ The revision is different from the original text") | |
| # Check if it's not just a continuation | |
| if test_text not in revision or len(revision) < len(test_text) * 2: | |
| print("✅ Revision appears to be a proper revision (not continuation)") | |
| return True | |
| else: | |
| print("❌ FAIL: Revision is identical to original or empty") | |
| return False | |
| except ImportError as e: | |
| print(f"❌ Import Error: {e}") | |
| print("Make sure all dependencies are installed: pip install -r requirements.txt") | |
| return False | |
| except Exception as e: | |
| print(f"❌ Error during testing: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| return False | |
| if __name__ == "__main__": | |
| success = test_analyzer() | |
| sys.exit(0 if success else 1) | |