Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from medrax.agent import Agent | |
| from medrax.tools import ChestXRayClassifierTool, ChestXRaySegmentationTool, XRayVQATool | |
| from medrax.utils import load_prompts_from_file | |
| from langchain_openai import ChatOpenAI | |
| from langgraph.checkpoint.memory import MemorySaver | |
| # MedRAX ajanını başlatma fonksiyonu (main.py'den uyarlandı) | |
| def initialize_agent(model="chatgpt-4o-latest", temperature=0.2): | |
| # Sistem promptunu yükle | |
| prompts = load_prompts_from_file("medrax/docs/system_prompts.txt") | |
| prompt = prompts["MEDICAL_ASSISTANT"] | |
| # Kullanılacak araçlar | |
| tools_dict = { | |
| "ChestXRayClassifierTool": ChestXRayClassifierTool(device="cuda"), | |
| "ChestXRaySegmentationTool": ChestXRaySegmentationTool(device="cuda"), | |
| "XRayVQATool": XRayVQATool(cache_dir="/model-weights", device="cuda"), | |
| } | |
| # Bellek ve model ayarları | |
| checkpointer = MemorySaver() | |
| model = ChatOpenAI(model=model, temperature=temperature) | |
| # Ajanı başlat | |
| agent = Agent( | |
| model, | |
| tools=list(tools_dict.values()), | |
| log_tools=True, | |
| log_dir="logs", | |
| system_prompt=prompt, | |
| checkpointer=checkpointer, | |
| ) | |
| return agent | |
| # Gradio arayüzü için analiz fonksiyonu | |
| def analyze_xray(image, question): | |
| # Ajanı başlat | |
| agent = initialize_agent() | |
| # Görüntüyü ve soruyu ajana ilet | |
| # Not: Bu kısım MedRAX'in gerçek işleyişine bağlı olarak özelleştirilmeli | |
| response = agent.run(f"Analyze this chest X-ray image and answer: {question}", image=image) | |
| return response | |
| # Gradio arayüzü | |
| with gr.Blocks(title="MedRAX - Chest X-ray Analysis") as demo: | |
| gr.Markdown("# MedRAX: Medical Reasoning Agent for Chest X-ray") | |
| gr.Markdown("Upload a chest X-ray image and ask a question about it.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| image_input = gr.Image(type="pil", label="Upload Chest X-ray") | |
| question_input = gr.Textbox(label="Your Question", placeholder="E.g., Is there a sign of pneumonia?") | |
| submit_btn = gr.Button("Analyze") | |
| with gr.Column(): | |
| output_text = gr.Textbox(label="Analysis Result", interactive=False) | |
| # Butona tıklayınca analiz yap | |
| submit_btn.click( | |
| fn=analyze_xray, | |
| inputs=[image_input, question_input], | |
| outputs=output_text | |
| ) | |
| # Uygulamayı başlat | |
| demo.launch() |