Spaces:
Sleeping
Sleeping
| from llm import generate_response | |
| from pubmed import search_pubmed | |
| from rag import retrieve_context | |
| from whisper_api import transcribe_audio | |
| from molecules import generate_molecules | |
| def run_pipeline(symptoms, audio_path=None): | |
| try: | |
| # Audio transcription | |
| if audio_path: | |
| transcription = transcribe_audio( | |
| audio_path | |
| ) | |
| print( | |
| "TRANSCRIBED:", | |
| transcription | |
| ) | |
| if not symptoms.strip(): | |
| symptoms = transcription | |
| else: | |
| symptoms += ( | |
| " " + transcription | |
| ) | |
| # Fallback | |
| if not symptoms.strip(): | |
| symptoms = "general symptoms" | |
| # PubMed retrieval | |
| pubmed_papers = search_pubmed( | |
| symptoms | |
| ) | |
| # REAL RAG retrieval | |
| context = retrieve_context( | |
| symptoms, | |
| pubmed_papers | |
| ) | |
| # LLM reasoning | |
| response = generate_response( | |
| symptoms, | |
| context | |
| ) | |
| # Drug generation | |
| molecules = generate_molecules( | |
| symptoms | |
| ) | |
| return { | |
| "response": response, | |
| "pubmed": [ | |
| p["id"] | |
| for p in pubmed_papers | |
| ], | |
| "molecules": molecules | |
| } | |
| except Exception as e: | |
| print( | |
| "PIPELINE ERROR:", | |
| e | |
| ) | |
| return { | |
| "response": | |
| f"Pipeline Error: {str(e)}", | |
| "pubmed": [], | |
| "molecules": [] | |
| } |