Linthaal, a generative AI Graph-of-Thought for Biopharma

Updated 2023-12-10

Bernard DeffargesBernard Deffarges
ai-engineer

Linthaal

6 months ago, we started developing Linthaal, a Generative AI Open Source Project for Healthcare and Bioinformatics.

Linthaal is a Multi-Agent, Graph-of-Thought Generative AI engine to automate complex Life Science questions using Transformers, LLMs, RAG and various data sources, knowledge graphs and symbolic reasoning engines.

The platform enables autonomous Graph-of-Thoughts AI with end-to-end streamed data.

We will eventually integrate it with T2R2 to provide full traceability, reproducibility and explainability of all results produced.

A simple use case

Imagine, you would like to get summaries of all Pubmed abstracts returned when searching for “pancreatic cancer”, including synonyms and MESH terms.

You also want to use expert knowledge (e.g. pathways databases) that you consider as guardrails to avoid hallucinations.

On top of that, you want to distinguish the type of readers to return each one the most precise information. Indeed, biologists, physicians or patients have totally different perspectives on a disease.

Linthaal enables such scenarios out of the box, fully automated, fully streamed end-to-end.

In Linthaal, each node in the graph is a reasoning agent that does one unique task. All nodes together compose a Graph-of-Thought that become an AI assistant to the user.

Finally, the results can get cached for further exploration.

Try it out for yourself

Example, with an openAI key and a ncbi key, you can directly try it with docker and curl:

docker run -it --mount type=bind,source={pathToYourConfigFilesLikeApiKeys},target=/home/linthaal -p 8080:8080 \
llaamasas/linthaal:1.0.0 apk1_api_key=/home/linthaal/{keyFileName1} \
apk2_api_key=/home/linthaal/{keyFileName2}

KeyFile should be a line like that

openai.api_key=xxxxxxxxxxxxxxxx

To start a new Pubmed Summarization GoT

 curl -XPOST -H "Content-Type: application/json" -d '{"search" : "obesity biomarkers", \
 "titleLength" : 5 , "abstractLength" : 20, "update" : 120,\
 "maxAbstracts" : 5 }' http://localhost:8080/tot_pubmed

To get all Pubmed Summarization GoT

curl http://localhost:8080/tot_pubmed

To get a Pubmed Summarization GoT

curl http://localhost:8080/tot_pubmed/{ID}