ReportAgent / app.py
Quazim0t0's picture
Update app.py
0604637 verified
import gradio as gr
import time
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):
"""Process files and generate report with status updates"""
status = "Starting analysis..."
yield "", status
full_content = []
for path in file_paths:
status = f"Reading {path.split('/')[-1]}..."
yield "", status
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:
yield f"Error processing {path}: {str(e)}", ""
return
status = "Analyzing content with AI..."
yield "", status
report = agent.run(f"""
Analyze these documents:
{"".join(full_content)[:10000]}
Create report with:
1. Key insights
2. Important patterns
3. Actionable recommendations
Use markdown formatting with headers.
""")
status = "Analysis complete!"
yield report, status
with gr.Blocks() as demo:
gr.Markdown("# Document Analysis System")
with gr.Row():
file_input = gr.File(
file_count="multiple",
file_types=[".txt"],
label="Upload Documents"
)
process_btn = gr.Button("Generate Report", variant="primary")
report_output = gr.Markdown(label="Analysis Report")
status = gr.Textbox(label="Processing Status", interactive=False)
process_btn.click(
fn=analyze_content,
inputs=file_input,
outputs=[report_output, status],
show_progress="hidden"
)
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True
)