Skip to main content

OntoGPT

OntoGPT Logo

DOI PyPI

Introduction

OntoGPT is a Python package for extracting structured information from text with large language models (LLMs), instruction prompts, and ontology-based grounding.

For more details, please see the full documentation.

Quick Start

OntoGPT runs on the command line, though there's also a minimal web app interface (see Web Application section below).

  1. Ensure you have Python 3.10 or greater installed.

  2. Install with pip:

    pip install ontogpt
    
  3. Set your OpenAI API key:

    runoak set-apikey -e openai <your openai api key>
    
  4. See the list of all OntoGPT commands:

    ontogpt --help
    
  5. Try a simple example of information extraction:

    echo "One treatment for high blood pressure is carvedilol." > example.txt
    ontogpt extract -i example.txt -t drug
    

    OntoGPT will retrieve the necessary ontologies and output results to the command line. Your output will provide all extracted objects under the heading extracted_object, and a validation section reporting whether each grounded identifier exists in its ontology and matches its label (invalid ones are replaced when a valid term can be found; see the documentation).

Web Application

There is a bare bones web application for running OntoGPT and viewing results.

First, install the required dependencies with pip by running the following command:

pip install ontogpt[web]

Then run this command to start the web application:

web-ontogpt

NOTE: We do not recommend hosting this webapp publicly without authentication.

Model APIs

OntoGPT uses LiteLLM to interface with LLMs.

This means OntoGPT can work with a much broader range of providers than just OpenAI. If a provider and model are supported by the installed LiteLLM version, they will generally work in OntoGPT as well. This includes OpenAI, Azure OpenAI, Anthropic, Mistral, Groq, Cohere, Vertex AI, Replicate, and many others.

The model name to use may be found from the command ontogpt list-models - use the name in the first column with the --model option. In most cases, the most reliable form is a provider-qualified LiteLLM model name such as openai/gpt-5.5, anthropic/claude-sonnet-5, groq/llama-3.1-8b-instant, or mistral/mistral-large-latest. Without --model, OntoGPT uses gpt-5.5.

Reasoning models, including the GPT-5 family and Claude Sonnet 5 and Opus 5, accept only their default temperature. If --temperature is set for one of these, OntoGPT logs a warning and retries the request without it.

Credential handling now follows LiteLLM first. Standard LiteLLM environment variables such as OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, MISTRAL_API_KEY, AZURE_API_KEY, AZURE_API_BASE, and AZURE_API_VERSION are supported directly. For backward compatibility, OntoGPT also checks Oaklib credentials created with runoak set-apikey and passes them through to LiteLLM when the corresponding provider settings are missing.

Anthropic OAuth tokens (those beginning with sk-ant-oat) may be supplied in ANTHROPIC_API_KEY as well; LiteLLM sends them with the bearer authorization the API expects.

Examples:

runoak set-apikey -e openai <your openai api key>
runoak set-apikey -e anthropic-key <your anthropic api key>
runoak set-apikey -e mistral-key <your mistral api key>
runoak set-apikey -e groq-key <your groq api key>

Some endpoints, such as Azure OpenAI, require additional details. These may be set similarly:

runoak set-apikey -e azure-key <your azure api key>
runoak set-apikey -e azure-base <your azure endpoint url>
runoak set-apikey -e azure-version <your azure api version, e.g. "2023-05-15">

These details may also be set as environment variables as follows:

export AZURE_API_KEY="my-azure-api-key"
export AZURE_API_BASE="https://example-endpoint.openai.azure.com"
export AZURE_API_VERSION="2023-05-15"

If the provider is not encoded in the model name, use --model-provider to specify it explicitly. This is most common for OpenAI-compatible proxy endpoints.

Model routers work the same way. For OpenRouter, store the key as runoak set-apikey -e openrouter-key <key> (or set OPENROUTER_API_KEY) and prefix the model, e.g. --model openrouter/anthropic/claude-sonnet-4.5. The runoak set-apikey name must match the provider in the model name; see the setup docs for the naming rule.

For the current list of supported providers, model naming rules, and credential environment variables, see the LiteLLM docs:

Open Models

Open LLMs may be retrieved and run through the ollama package (https://ollama.com/).

You will need to install ollama (see the GitHub repo), and you may need to start it as a service with a command like ollama serve or sudo systemctl start ollama.

Then retrieve a model with ollama pull <modelname>, e.g., ollama pull llama3.

The model may then be used in OntoGPT by prefixing its name with ollama/, e.g., ollama/llama3, along with the --model option.

Some ollama models may not be listed in ontogpt list-models but the full list of downloaded LLMs can be seen with ollama list command.

Agent Skills

The skills/ directory holds four Agent Skills that teach an AI coding agent to operate OntoGPT: run extractions, select a template, write a new template and choose its ontologies, and troubleshoot outputs. In a Claude Code session opened in this repository they load automatically; see skills/README.md to install them elsewhere. Details in the documentation.

Evaluations

OntoGPT's functions have been evaluated on test data. Please see the full documentation for details on these evaluations and how to reproduce them.

Related Projects

  • TALISMAN, a tool for generating summaries of functions enriched within a gene set. TALISMAN uses OntoGPT to work with LLMs.

Tutorials and Presentations

  • Presentation: "Staying grounded: assembling structured biological knowledge with help from large language models" - presented by Harry Caufield as part of the AgBioData Consortium webinar series (September 2023)
  • Presentation: "Transforming unstructured biomedical texts with large language models" - presented by Harry Caufield as part of the BOSC track at ISMB/ECCB 2023 (July 2023)
  • Presentation: "OntoGPT: A framework for working with ontologies and large language models" - talk by Chris Mungall at Joint Food Ontology Workgroup (May 2023)

Citation

The information extraction approach used in OntoGPT, SPIRES, is described further in: Caufield JH, Hegde H, Emonet V, Harris NL, Joachimiak MP, Matentzoglu N, et al. Structured prompt interrogation and recursive extraction of semantics (SPIRES): A method for populating knowledge bases using zero-shot learning. Bioinformatics, Volume 40, Issue 3, March 2024, btae104, https://doi.org/10.1093/bioinformatics/btae104.

Acknowledgements

This project is part of the Monarch Initiative. We also gratefully acknowledge Bosch Research for their support of this research project.

Metadata

Release files for ontogpt 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ontogpt 1.2.0
File Size Uploaded
ontogpt-1.2.0.tar.gz 328.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ontogpt 1.2.0
File Interpreter ABI Platform
ontogpt-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 816.1 kB

Release files / ontogpt-1.2.0.tar.gz

Download URL ontogpt-1.2.0.tar.gz
Size 328.1 kB
Tags Source
SHA-256 checksum
How to use checksums
de1274b6bc46618ec1bb79bc80681fdfee2536695097fc5327a81d9f23f9c2ce
BLAKE2b-256 checksum
How to use checksums
c5cac24b6912080fdb530cf525fe6f2062413cf196a03a6ce635e33baeacd661
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / ontogpt-1.2.0-py3-none-any.whl

Download URL ontogpt-1.2.0-py3-none-any.whl
Size 488.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9467ce3404db059962e74b24d6fadad65c039969898b4033e173b983b4bbd12a
BLAKE2b-256 checksum
How to use checksums
005b36ad63c0e3102607272dcd5859bfbd95af6131a79b161e0a4fe7faa759dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.3.15

2 release files

0.3.14

1 release file

0.3.13

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page