File size: 1,632 Bytes
6a0ec6a
dbbcf50
91561ce
dbbcf50
6d4e0a3
e1e2089
6d4e0a3
 
 
a6f506b
 
e3ecb0f
a808dce
a6f506b
e3ecb0f
a6f506b
 
 
e3ecb0f
a6f506b
a808dce
a6f506b
 
 
 
a808dce
a6f506b
 
 
 
 
 
 
 
 
 
f3a5662
6d4e0a3
a6f506b
a808dce
 
e3ecb0f
 
 
a6f506b
e3ecb0f
a6f506b
dbbcf50
a6f506b
237bccb
e3ecb0f
a6f506b
3df9eeb
a6f506b
811c7ec
6a0ec6a
 
dbbcf50
 
 
a6f506b
dbbcf50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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):
    """Process files and generate comprehensive report"""
    full_content = []
    
    for path in file_paths:
        try:
            with open(path, 'r', encoding='utf-8') as f:
                content = f.read()
                full_content.append(f"--- {path.split('/')[-1]} ---\n{content}")
        except Exception as e:
            return f"Error processing {path}: {str(e)}"
    
    report = agent.run(f"""
    Analyze these documents and create a detailed report:
    
    {''.join(full_content)[:10000]}  # First 10k characters
    
    Report should include:
    1. Key themes and patterns
    2. Important relationships
    3. Contextual insights
    4. Actionable recommendations
    
    Use professional markdown formatting with headings.
    """)
    
    return report

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")

    process_btn.click(
        fn=analyze_content,
        inputs=file_input,
        outputs=report_output
    )

if __name__ == "__main__":
    demo.launch(
        server_name="0.0.0.0",
        server_port=7860,
        share=True
    )