File size: 1,297 Bytes
a6b9aa3
3a199e0
 
 
 
 
 
126287f
3a199e0
 
 
 
 
 
 
 
 
 
 
126287f
3a199e0
 
 
 
 
 
 
 
a6b9aa3
3a199e0
 
 
a6b9aa3
 
 
8a2b45e
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
import gradio as gr
import asyncio
from AICoreAGIX_with_TB import AICoreAGIX

ai_core = AICoreAGIX()

async def diagnose_tb(image_file, audio_file):
    user_id = 1  # Example user
    result = await ai_core.run_tb_diagnostics(image_file.name, audio_file.name, user_id)
    return (
        f"**TB Risk Level:** {result['tb_risk']}\n\n"
        f"**Image Result:** {result['image_analysis']['result']} "
        f"(Confidence: {result['image_analysis']['confidence']:.2f})\n\n"
        f"**Audio Result:** {result['audio_analysis']['result']} "
        f"(Confidence: {result['audio_analysis']['confidence']:.2f})\n\n"
        f"**Ethical Analysis:** {result['ethical_analysis']}\n\n"
        f"**Explanation:** {result['explanation']}"
    )

# Async wrapper for Gradio
def sync_diagnose_tb(image_file, audio_file):
    return asyncio.run(diagnose_tb(image_file, audio_file))

demo = gr.Interface(
    fn=sync_diagnose_tb,
    inputs=[
        gr.File(label="Upload TB Saliva Image"),
        gr.File(label="Upload Cough Audio File (.wav)")
    ],
    outputs=gr.Markdown(label="Codriao's Response"),
    title="Codriao TB Risk Analyzer",
    description="Upload a microscopy image and cough audio to analyze TB risk with compassionate AI support."
)

if __name__ == "__main__":
    demo.launch()