Spaces:
Sleeping
Sleeping
| # Application Flow Diagram | |
| ## User Interface Flow | |
| ``` | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β π€ AI Text Assistant β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Mode Selection: β | |
| β β Text Generation β Text Summarization β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Input Text (max 500 words): β | |
| β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| β β Enter your text here... β β | |
| β β β β | |
| β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Max Tokens: [βββββββββββββββ] 100 β | |
| β 10 500 β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββ | |
| β π Process β | |
| βββββββββββββββββ | |
| β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Status: β Generated 42 tokens β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Result (hover over words for alternatives): β | |
| β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| β β The [quick] [brown] [fox] [jumps] [over]... β β | |
| β β β β | |
| β β [Hover shows tooltip] β β | |
| β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| ## Backend Processing Flow | |
| ``` | |
| User Input | |
| β | |
| ββββββββββββββββββββββ | |
| β Validate Input β | |
| β - Check non-empty β | |
| β - Count words β | |
| β - Max 500 words β | |
| ββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββ | |
| β Route Based on Mode β | |
| ββββββββββββββββββ¬ββββββββββββββββ€ | |
| β Text Gen β Summarization β | |
| ββββββββββββββββββ΄ββββββββββββββββ | |
| β β | |
| βββββββββββββββββββ ββββββββββββββββββββ | |
| β Qwen Model β β BART Model β | |
| β Generate with β β Generate with β | |
| β output_scores β β output_scores β | |
| βββββββββββββββββββ ββββββββββββββββββββ | |
| β β | |
| ββββββββββββββββββββββββββββββββββ | |
| β Extract Token Alternatives β | |
| β - Apply softmax to scores β | |
| β - Get top-5 tokens per positionβ | |
| β - Format with probabilities β | |
| ββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββ | |
| β Create HTML with Tooltips β | |
| β - Split text into words β | |
| β - Map alternatives to words β | |
| β - Generate CSS tooltips β | |
| ββββββββββββββββββββββββββββββββββ | |
| β | |
| Display to User | |
| ``` | |
| ## Token Alternative Tooltip Structure | |
| ``` | |
| Word in Text: "quick" | |
| β | |
| [Hover] | |
| β | |
| βββββββββββββββββββββββββββββββββββ | |
| β Top 5 Alternatives: β | |
| βββββββββββββββββββββββββββββββββββ€ | |
| β 1. quick 45.23% β | |
| β 2. fast 23.15% β | |
| β 3. rapid 12.08% β | |
| β 4. swift 8.54% β | |
| β 5. speedy 4.12% β | |
| βββββββββββββββββββββββββββββββββββ | |
| β² | |
| (Dark themed, | |
| positioned above word) | |
| ``` | |
| ## Data Flow for Token Generation | |
| ``` | |
| Input: "Write a story about a cat" | |
| β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β Tokenization β | |
| β β [Write, a, story, about, a, cat] β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β Model Forward Pass β | |
| β β Logits for each position β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β For Each Generated Token: β | |
| β β | |
| β Position 1 Scores: β | |
| β [The: 2.5, A: 1.8, Once: 1.2, ...] β | |
| β β Softmax β | |
| β [The: 52%, A: 22%, Once: 11%, ...] β | |
| β β Top-K (k=5) β | |
| β Store top 5 β | |
| β β | |
| β Position 2 Scores: β | |
| β [cat: 3.1, dog: 2.1, story: 1.5 ...] β | |
| β β Softmax β | |
| β [cat: 45%, dog: 23%, story: 12% ...] β | |
| β β Top-K (k=5) β | |
| β Store top 5 β | |
| β β | |
| β ... (repeat for all tokens) β | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| Output: | |
| - Generated text: "The cat was very curious..." | |
| - Alternatives: List[{token, probability}] for each position | |
| ``` | |
| ## Component Interaction | |
| ``` | |
| βββββββββββββββ ββββββββββββββββ ββββββββββββββ | |
| β Gradio βββββββΊβ app.py βββββββΊβ PyTorch β | |
| β Interface β β Handler β β Models β | |
| βββββββββββββββ ββββββββββββββββ ββββββββββββββ | |
| β β β | |
| β β β | |
| βΌ βΌ βΌ | |
| βββββββββββββββ ββββββββββββββββ ββββββββββββββ | |
| β Browser β β Processing β βTransformersβ | |
| β Renders β β Functions β β Library β | |
| β HTML β ββββββββββββββββ ββββββββββββββ | |
| βββββββββββββββ β | |
| β | |
| βΌ | |
| ββββββββββββββββββββ | |
| β HTML Generator β | |
| β with Tooltips β | |
| ββββββββββββββββββββ | |
| ``` | |
| ## Error Handling Flow | |
| ``` | |
| Input Received | |
| β | |
| ββββββββββββββββ NO ββββββββββββββββββββ | |
| β Text empty? βββββββββββ Count words β | |
| ββββββββββββββββ ββββββββββββββββββββ | |
| β YES β | |
| β β | |
| ββββββββββββββββ ββββββββββββββββ YES | |
| β Return error β β > 500 words? ββββββββββ | |
| ββββββββββββββββ ββββββββββββββββ β | |
| β NO β | |
| β β | |
| ββββββββββββββββ ββββββββββββββββ | |
| β Try process β β Return error β | |
| ββββββββββββββββ ββββββββββββββββ | |
| β | |
| ββββββββ΄βββββββ | |
| β Exception? β | |
| ββββββββ¬βββββββ | |
| YES ββββ | |
| β | |
| ββββββββββββββββ | |
| β Catch & show β | |
| β error to userβ | |
| ββββββββββββββββ | |
| ``` | |
| ## Model Loading Sequence | |
| ``` | |
| App Startup | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 1. Detect Device (GPU/CPU) β | |
| β print("Using device: cpu") β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 2. Load Qwen Tokenizer β | |
| β ~50MB download (first time) β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 3. Load Qwen Model β | |
| β ~988MB download (first time) β | |
| β Load to device β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 4. Load BART Tokenizer β | |
| β ~2MB download (first time) β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 5. Load BART Model β | |
| β ~1.6GB download (first time) β | |
| β Load to device β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β | |
| ββββββββββββββββββββββββββββββββββββ | |
| β 6. Launch Gradio Interface β | |
| β Ready for user input! β | |
| ββββββββββββββββββββββββββββββββββββ | |
| ``` | |