ontograph / README.md
AI-Manith's picture
Update README.md
95a3954 verified

A newer version of the Streamlit SDK is available: 1.42.0

Upgrade
metadata
title: Ontograph
emoji: πŸ’»
colorFrom: red
colorTo: green
sdk: streamlit
sdk_version: 1.41.1
app_file: app.py
pinned: false

🌟 OntoGraph - Drug Interaction Analysis System

A sophisticated Python-based application that combines ontology reasoning with LLM capabilities to analyze drug interactions, conflicts, and alternatives. The system provides comprehensive analysis through both CLI and web interfaces. alt text

πŸš€ Key Features

  • Dual Interface Options:
    • Web-based interface using Streamlit
    • Command-line interface for direct interaction
  • Comprehensive Drug Analysis:
    • Drug interaction detection
    • Conflict identification
    • Similar drug suggestions
    • Alternative medication recommendations
  • Advanced Technology Stack:
    • RDF/OWL ontology for knowledge representation
    • Groq LLM integration for natural language processing
    • Agent-based architecture using Langgraph for modular analysis
    • Structured logging system

πŸ› οΈ Technical Requirements

  • Python 3.x
  • Groq API key
  • Required Python packages:
    • rdflib
    • langchain
    • python-dotenv
    • langchain-community
    • langchain-groq
    • langgraph
    • streamlit

πŸ“₯ Installation

  1. Clone the repository:
git clone https://github.com/Manithj/onto_graph.git
cd onto_graph
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure environment:
    • Create a .env file in the project root
    • Add your Groq API key:
GROQ_API_KEY=your_api_key_here

πŸ’» Usage

Web Interface

streamlit run app.py

Navigate to the displayed local URL to access the web interface.

Command Line Interface

python appcli.py

πŸ—οΈ Project Structure

onto_graph/
β”œβ”€β”€ app.py              # Streamlit web interface
β”œβ”€β”€ appcli.py          # Command line interface
β”œβ”€β”€ agents/            # Agent implementations
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ alternative_agent.py
β”‚   β”œβ”€β”€ base_agent.py
β”‚   β”œβ”€β”€ conflict_agent.py
β”‚   β”œβ”€β”€ interaction_agent.py
β”‚   └── similarity_agent.py
β”œβ”€β”€ analyzers/         # Analysis coordination
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── drug_interaction_analyzer.py
β”œβ”€β”€ ontology/         # Knowledge base
β”‚   └── DrugInteraction.owl
└── requirements.txt  # Project dependencies

πŸ” Features in Detail

Agent System

  • Base Agent: Common functionality for ontology queries
  • Alternative Agent: Identifies alternative medications
  • Similarity Agent: Finds similar drugs
  • Conflict Agent: Detects drug conflicts
  • Interaction Agent: Analyzes drug interactions

Analysis Pipeline

  1. User input processing
  2. Ontology querying
  3. LLM-powered result synthesis
  4. Structured response generation

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to your branch
  5. Create a Pull Request

πŸ“ Logging

The system maintains detailed logs in app.log, capturing:

  • Information level messages
  • Warning and error states
  • Query execution details
  • System state changes

πŸ“œ License

This project is licensed under the Apache 2.0.