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