>_
.issue.db
/highway-workflow-engine
Dashboard
Issues
Memory
Lessons
Audit Log
New Issue
Edit Issue #427
Update issue details
Title *
Description
## Overview Summarize documents and web pages using LLM, with email delivery of results. ## App Metadata - **App Name:** doc_summarizer - **Publisher:** platform - **Version:** 1.0.0 - **Priority:** High - **Complexity:** Low - **Phase:** 1 (Quick wins for beta demo) ## Actions ### 1. summarize_text **Description:** Summarize plain text content using LLM **Parameters:** - text (str, required): Text content to summarize - max_length (int, default=500): Maximum summary length in words - style (str, default='concise'): Summary style (concise|detailed|bullet_points) - language (str, default='english'): Output language **Returns:** { "summary": "...", "original_length": 5000, "summary_length": 450, "key_points": ["point1", "point2"], "model_used": "qwen3-vl:235b-instruct-cloud" } ### 2. summarize_url **Description:** Fetch URL content and summarize **Parameters:** - url (str, required): URL to fetch and summarize - max_length (int, default=500): Maximum summary length - style (str, default='concise'): Summary style - extract_mode (str, default='article'): Content extraction (article|full|main) **Returns:** Same as summarize_text plus {"source_url": "...", "page_title": "..."} ### 3. summarize_and_email **Description:** Summarize content and email the result **Parameters:** - text (str, optional): Text to summarize (either text or url required) - url (str, optional): URL to summarize - recipient_email (str, required): Email to send summary to - subject_prefix (str, default='Summary'): Email subject prefix - include_original (bool, default=False): Include original text in email **Returns:** {"summary": "...", "email_sent": true, "recipient": "..."} ## Example Workflow builder = WorkflowBuilder(name='summarize_article', version='1.0.0') builder.task( task_id='summarize', function='apps.platform.doc_summarizer.summarize_url', kwargs={ 'url': 'https://example.com/long-article', 'style': 'bullet_points', 'max_length': 300 }, result_key='summary_result' ) builder.task( task_id='email_summary', function='apps.platform.doc_summarizer.summarize_and_email', kwargs={ 'text': '{{summary_result.summary}}', 'recipient_email': 'user@example.com', 'subject_prefix': 'Article Summary' } ) ## Implementation Notes - Use existing LLM tool (engine/tools/llm.py) for summarization - Use httpx/BeautifulSoup for URL content extraction - Consider readability library for article extraction - Rate limit LLM calls to avoid quota issues - Cache summaries by content hash to avoid re-processing ## LLM Prompt Template """ Summarize the following text in {style} format. Maximum length: {max_length} words. Language: {language} Text: {text} Provide: 1. A {style} summary 2. 3-5 key points as bullet points """ ## Configuration Schema { "default_max_length": 500, "default_style": "concise", "llm_model": "qwen3-vl:235b-instruct-cloud", "llm_temperature": 0.3 } ## Secrets Config None (LLM config from environment: OLLAMA_API_KEY, OLLAMA_BASE_URL) ## Dependencies - engine/tools/llm.py (existing LLM integration) - httpx for URL fetching - beautifulsoup4 for HTML parsing - Email sending (reuse SMTP config)
Priority
Low
Medium
High
Critical
Status
Open
In Progress
Closed
Won't Do
Due Date (YYYY-MM-DD)
Tags (comma separated)
Related Issues (IDs)
Enter IDs of issues related to this one. They will be linked as 'related'.
Update Issue
Cancel