ReportAgent / app.py
Quazim0t0's picture
Update app.py
db33f59 verified
raw
history blame
2.38 kB
import gradio as gr
from smolagents import CodeAgent, HfApiModel
# Initialize the AI agent
agent = CodeAgent(
tools=[],
model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),
)
def analyze_content(file_paths, progress=gr.Progress()):
"""Process files and generate comprehensive report with progress tracking"""
full_content = []
# Track file reading progress
progress(0, desc="Starting analysis...")
for i, path in enumerate(file_paths):
progress(i/len(file_paths), desc=f"Reading {path.split('/')[-1]}...")
try:
with open(path, 'r', encoding='utf-8') as f:
content = f.read()
full_content.append(f"## {path.split('/')[-1]}\n{content}\n")
except Exception as e:
return f"Error processing {path}: {str(e)}"
# Track analysis progress
progress(0.8, desc="Analyzing content with AI...")
report = agent.run(f"""
Analyze these documents and create a detailed report:
{"".join(full_content)[:10000]}
Report structure:
1. Executive Summary
2. Key Findings
3. Important Patterns
4. Recommendations
Use professional markdown formatting with headings and bullet points.
""")
progress(1.0, desc="Analysis complete!")
return report
with gr.Blocks() as demo:
gr.Markdown("# Professional Document Analyzer")
with gr.Row():
with gr.Column(scale=1):
file_input = gr.File(
file_count="multiple",
file_types=[".txt"],
label="Upload Documents"
)
process_btn = gr.Button("Generate Report", variant="primary")
with gr.Column(scale=2, variant="panel"):
gr.Markdown("## Analysis Report")
report_output = gr.Markdown(
elem_classes="report-box",
label="",
show_label=False
)
status = gr.Textbox(label="Processing Status", visible=False)
process_btn.click(
fn=analyze_content,
inputs=file_input,
outputs=[report_output, status],
show_progress="minimal"
)
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True,
ssr=False # Disable experimental server-side rendering
)