Spaces:
Running
Running
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 | |
) |