Skip to main content

A simple wrapper to support drug detection in medical texts.

Project description

drugdetector

This project provides a simple wrapper for performant zero-shot drug detection using LLMs.

Install

pip install drugdetector

Demo

For this demo, we're using a 4-bit quantized Llama-3 8B, but you can use many LLMs available on huggingface. We recommend one of the following fine-tuned models for improved performance:

  • fabriceyhc/Meta-Llama-3-8B-Instruct-DrugDetection-v3
  • fabriceyhc/Meta-Llama-3-70B-Instruct-DrugDetection-v3
from drugdetector import DrugDetector

detector = DrugDetector(model_id="TechxGenus/Meta-Llama-3-8B-Instruct-GPTQ")

Detection on default substances

When no specific drugs are requested, default to the ones we've studied.

results = detector.detect("Patient denies using heroin but reports cocaine use.")
print(results)
{'Heroin': False,
 'Cocaine': True,
 'Methamphetamine': False,
 'Benzodiazepine': False,
 'Prescription Opioids': False,
 'Cannabis': False,
 'Injection Drugs': False,
 'General Drugs': True,
 'medical_text': 'Patient denies using heroin but reports cocaine use.',
 'time_taken': 9.533252477645874}

Detection with custom drug dict

Tests zero-shot accuracy on any substances provided in as a python dictionary in the form of:

new_substances = {
  "substance1":"description1",
  "substance2":"description2",
  ...
  "substanceN":"descriptionN",
}
new_substances = {
    "Alcohol": "Alcohol is a legal substance but can be abused and lead to addiction and various health issues.",
    "Fentanyl": "Fentanyl is a potent synthetic opioid that is highly addictive and can lead to overdose, especially when used illicitly."
}

results = detector.detect("Patient hx of ethl use.", drugs=new_substances)
print(results)
{'Alcohol': True,
 'Fentanyl': False,
 'medical_text': 'Patient hx of ethl use.',
 'time_taken': 2.379117965698242}

Detection with custom drug dict and explanations provided

Demonstrates the model's ability to explain its decisions.

new_drugs = {
    "Alcohol": "Alcohol is a legal substance but can be abused and lead to addiction and various health issues.",
    "Fentanyl": "Fentanyl is a potent synthetic opioid that is highly addictive and can lead to overdose, especially when used illicitly."
}

results = detector.detect("Patient hx of ethl use.", drugs=new_substances, explain=True)
print(results)
{'Alcohol': True,
 'Fentanyl': False,
 'medical_text': 'Patient hx of ethl use.',
 'time_taken': 45.255696296691895,
 'Alcohol_explanation': 'The medical note mentions "ethl use", which is likely referring to ethanol, the scientific name for alcohol.',
 'Fentanyl_explanation': 'There is no mention of Fentanyl use in the medical note.'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drugdetector-0.2.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

drugdetector-0.2.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file drugdetector-0.2.0.tar.gz.

File metadata

  • Download URL: drugdetector-0.2.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for drugdetector-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5d74b8130088ccb11181dda9b728bc850c57da2846232fc36a1db3f85bcfb369
MD5 3635559896a938900336865afa7460af
BLAKE2b-256 73d39ceb6f797b9e859ad8c4fbfcb123489055c510db79b02fccb7cde48d55fe

See more details on using hashes here.

File details

Details for the file drugdetector-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for drugdetector-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ffe3b3c75181db8c6233a782fe89df1987166c6f5ab01cd5b7b124b3b770293
MD5 20b8caac7db2e9d710c0d01116594447
BLAKE2b-256 e23c9871c2dcc80c636180285445b547c7b5cb74342072e65de7e494f1c3d894

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page