OntoSight: A flexible, AI-ready visualization engine for interactive knowledge graphs and hypergraphs.
Project description
OntoSight 🔍
English | 简体中文
Interactive Visualization Engine for AI-Enhanced Knowledge Graphs & Hypergraphs
OntoSight is a lightweight yet powerful Python library designed to bridge the gap between static graph visualizations and dynamic AI-driven exploration. It allows developers to create highly interactive, searchable, and "chat-ready" visualizations for complex knowledge structures with just a few lines of code.
🌟 Key Features
- Standard & Hypergraph Support: Seamlessly switch between traditional node-edge graphs and advanced hypergraphs.
- AI-Ready Callbacks: Flexible
on_searchandon_chathooks to integrate with any LLM (GPT-4, Claude, Llama 3) or Vector Database (Milvus, Pinecone, Chroma). - Interactive Exploration: Built-in detail panels, filtering, and real-time highlighting.
- Framework Agnostic: Works with any data source. Define your schema using Pydantic and let OntoSight handle the rest.
- Developer First: Python-native API with automatic web-server management and browser launching.
📸 Visualization Previews
1. Core Architectures
OntoSight supports both traditional graphs and hypergraphs with a unified interface.
| Graph | Hypergraph |
|---|---|
2. Intelligent Search (Vector DB Ready)
Define custom search callbacks to highlight matching subgraphs via embedding-based retrieval.
| Search in Graph | Search in Hypergraph |
|---|---|
3. GraphRAG & AI Chat
Seamlessly connect your Graph to LLMs. Auto-highlight relevant entities while generating textual answers.
| AI Chat (Graph) | AI Chat (Hypergraph) |
|---|---|
🚀 Quick Start
Installation
pip install ontosight
Basic Usage
Define your data structure using Pydantic models:
from pydantic import BaseModel
from ontosight import view_graph
class Entity(BaseModel):
name: str
type: str
class Relation(BaseModel):
source: str
target: str
relation: str
# Your data
nodes = [Entity(name="Alice", type="Person"), Entity(name="Wonderland", type="Place")]
edges = [Relation(source="Alice", target="Wonderland", relation="visits")]
# Launch visualization
view_graph(
node_list=nodes,
edge_list=edges,
node_schema=Entity,
edge_schema=Relation,
node_id_extractor=lambda n: n.name,
node_ids_in_edge_extractor=lambda e: (e.source, e.target),
edge_label_extractor=lambda e: e.relation
)
🧠 AI Integration (The "Sight" in OntoSight)
OntoSight is built for the Age of AI. While it doesn't ship with a specific LLM, it provides the "plumbing" to make your graph interactive and intelligent.
Flexible Search (Vector DB Ready)
You can define a custom search callback to perform semantic search using embedding models.
def my_vector_search(query: str):
# Logic to call your Vector DB (e.g., Milvus)
# returns matching_nodes, matching_edges
pass
view_graph(..., on_search=my_vector_search)
GraphRAG & Chat
Connect a Chat interface directly to your Graph. When a user asks a question, the LLM can provide a textual answer, and OntoSight will auto-highlight the relevant subgraph.
def my_chat_handler(question: str):
# 1. Send question to LLM (e.g., GPT-4)
# 2. Get relevant nodes/edges from your Retrieval logic
return "Alice is in Wonderland.", (relevant_nodes, relevant_edges)
view_graph(..., on_chat=my_chat_handler)
🛠 Advanced Features
- Schema-Driven Detail Panels: Automatically generates UI panels based on your Pydantic models.
- Hypergraph Modeling: Visualize relationships between multiple nodes simultaneously.
📄 License
OntoSight is released under the Apache License 2.0.
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.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ontosight-0.1.0.tar.gz.
File metadata
- Download URL: ontosight-0.1.0.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a440eb041e1ffdfdc1ceabc9e13917f65bc5c88a775431a538443af85613ca3
|
|
| MD5 |
5e5501a22250c7dac3e76cfa2bd1675b
|
|
| BLAKE2b-256 |
a3c8a8da307f70b2b57dbb90a45585f14044b03afcea35115ae039ae2047ee29
|
File details
Details for the file ontosight-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ontosight-0.1.0-py3-none-any.whl
- Upload date:
- Size: 2.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
919d3813be22d3606a0f9e93d9497f90c9342c01b3fdc43bc89370f5a1c508e6
|
|
| MD5 |
29d21012e75f4f9b8d637814b3dc9a47
|
|
| BLAKE2b-256 |
7aba233ab1d1c7ff7652a1320bf07f02191d68efbe5d83f984bbcb78904b2ec6
|