Skip to content

Commit

Permalink
Merge pull request #24 from linkml/inference
Browse files Browse the repository at this point in the history
Add inference engine framework
  • Loading branch information
linkmluser authored Aug 13, 2024
2 parents ad4f669 + d7b8f49 commit df82a5c
Show file tree
Hide file tree
Showing 41 changed files with 5,435 additions and 1,081 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/qc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ jobs:
mongodb-version: ${{ matrix.mongodb-version }}

- name: Test with pytest and generate coverage file
run: poetry run pytest
run: poetry run pytest -m "not integration and not neo4j" --ignore=src/linkml_store/inference/implementations/rag_inference_engine.py
13 changes: 11 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,24 @@ CODE = src/linkml_data_browser


test: pytest doctest
test-full: test integration-tests
test-core: pytest-core doctest
test-full: pytest-full doctest

install:
#poetry install --extras "mongodb llm validation app"
poetry install --no-interaction --all-extras

pytest:
$(RUN) pytest -m "not integration"

pytest-neo4j:
$(RUN) pytest -k only_neo4j

pytest-core:
$(RUN) pytest

pytest-full:
$(RUN) pytest -m ""

integration-tests:
$(RUN) pytest -m integration

Expand Down
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An AI-ready data management and integration platform. LinkML-Store
provides an abstraction layer over multiple different backends
(including DuckDB, MongoDB, and local filesystems), allowing for
(including DuckDB, MongoDB, Neo4j, and local filesystems), allowing for
common query, index, and storage operations.

For full documentation, see [https://linkml.io/linkml-store/](https://linkml.io/linkml-store/)
Expand Down Expand Up @@ -40,6 +40,23 @@ linkml-store -d duckdb:///db/my.db -c persons validate
* API
* Streamlit applications

## The CRUDSI pattern

Most database APIs implement the **CRUD** pattern: Create, Read, Update, Delete.
LinkML-Store adds **Search** and **Inference** to this pattern, making it **CRUDSI**.

The notion of "Search" and "Inference" is intended to be flexible and extensible,
including:

* Search
* Traditional keyword search
* Search using LLM Vector embeddings (*without* a dedicated vector database)
* Pluggable specialized search, e.g. genomic sequence (not yet implemented)
* Inference (encompassing *validation*, *repair*, and inference of missing data)
* Classic rule-based inference
* Inference using LLM Retrieval Augmented Generation (RAG)
* Statistical/ML inference

## Features

### Multiple Adapters
Expand All @@ -49,6 +66,8 @@ LinkML-Store is designed to work with multiple backends, giving a common abstrac
* [MongoDB](https://linkml.io/linkml-store/how-to/Use-MongoDB.html)
* [DuckDB](https://linkml.io/linkml-store/tutorials/Python-Tutorial.html)
* [Solr](https://linkml.io/linkml-store/how-to/Query-Solr-using-CLI.html)
* [Neo4j](https://linkml.io/linkml-store/how-to/Use-Neo4j.html)

* Filesystem

Coming soon: any RDBMS, any triplestore, Neo4J, HDF5-based stores, ChromaDB/Vector dbs ...
Expand Down
519 changes: 420 additions & 99 deletions docs/how-to/Index-Phenopackets.ipynb

Large diffs are not rendered by default.

Loading

0 comments on commit df82a5c

Please sign in to comment.