kg-chat
Project description
kg-chat
LLM-based chatbot that queries and visualizes KGX
nodes and edges TSV files loaded into either DuckDB
(default) or neo4j
database backend.
Certainly! Here's a more concise version:
LLMs Supported
-
OpenAI
NOTE: Ensure
OPENAI_API_KEY
is set as an environment variable. -
Anthropic
NOTE: Ensure
ANTHROPIC_API_KEY
is set as an environment variable. -
Ollama
NOTE: Currently throws error:
Invalid Format: Missing 'Action:' after 'Thought'
as of now. Work in progress...- No API key required.
- Download the application from here.
- Get the model by running:
ollama pull llama3.1
-
Models hosted by Lawrence Berkeley National Laboratory vi CBORG
NOTE: Ensure
CBORG_API_KEY
is set as an environment variable.- The list of modes can be found (here)[https://cborg.lbl.gov/models/] listed under "LBNL_Hosted Models".
- The only LLMs that work for now:
lbl/llama-3
(actually llama3.1(405B))openai/gpt-4o-mini
anthropic/claude-haiku
anthropic/claude-sonnet
anthropic/claude-opus
How to set the API key as an environment variable?
One quick way is
export OPENAI_API_KEY=XXXXXX
export ANTHROPIC_API_KEY=XXXXX
But if you want these to persist permanently
vi ~/.bash_profile
OR
vi ~/.bashrc
Add the 2 lines exporting the variables above and then
source ~/.bash_profile
OR
source ~/.bashrc
Setup
For Neo4j Backend (Optional)
- Install Neo4j desktop from here.
- Create a new project and database, then start it.
- Install the APOC plugin in Neo4j Desktop.
- Update settings to match
neo4j_db_settings.conf
.
General Setup
For Developers
- Clone this repository.
- Create a virtual environment and install dependencies:
cd kg-chat pip install poetry poetry install
- Replace
data/nodes.tsv
anddata/edges.tsv
with desired KGX files if needed.
For using kg-chat as a dependency
pip install kg-chat
OR
poetry add kg-chat@latest
Supported Backends
- DuckDB [default]
- Neo4j
Commands
-
Import KG: Load nodes and edges into a database (default: duckdb).
poetry run kg import --data-dir data
-
Test Query: Run a test query.
NOTE:
--data-dir
is a required parameter for all commands. This is the path for the directory which contains the nodes.tsv and edges.tsv file. The filenames are expected to be exactly that.poetry run kg test-query --data-dir data
-
QnA: Ask questions about the data.
poetry run kg qna "how many nodes do we have here?" --data-dir data
-
Chat: Start an interactive chat session.
poetry run kg chat --data-dir data
-
App: Deploy a local web application.
poetry run kg app --data-dir data
Visualization
Use show me
in prompts for KG visualization.
Acknowledgements
This cookiecutter project was developed from the monarch-project-template template and will be kept up-to-date using cruft.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.