OntoCast ist ein Open-Source-Framework, das auf GitHub gehostet wird und sich auf die Extraktion von semantischen Tripeln aus Dokumenten zur Erstellung von Wissensgraphen konzentriert. Es kombiniert Ontologie-Management, natürliche Sprachverarbeitung und Wissensgraphen-Serialisierungstechniken, um unstrukturierten Text in strukturierte, abfragbare Daten umzuwandeln.OntoCast verwendet Ontologie-gesteuerte Extraktion, um semantische Konsistenz zu gewährleisten, und unterstützt eine Vielzahl von Dateiformaten wie Text, JSON, PDF und Markdown.Benutzer können es entweder nativ oder über REST-APIs verwenden und unterstützt entweder OpenAI oder native Modelle (z. B. über Ollama). OpenAI oder native Modelle (z. B. über Ollama). Die Hauptfunktionen sind die automatische Erstellung von Ontologien, die Disambiguierung von Entitäten und das semantische Chunking für Szenarien, in denen strukturierte Informationen aus komplexen Dokumenten extrahiert werden müssen. Das Projekt bietet eine ausführliche Dokumentation und eine Docker-Konfiguration für eine schnelle Bereitstellung und Nutzung.
Funktionsliste
- Extraktion semantischer Triaden: Extraktion von Subjekt-Prädikat-Objekt-Tripeln aus Dokumenten zur Erstellung von Wissensgraphen.
- Ontologieverwaltung: Automatische Erstellung, Validierung und Optimierung von Ontologien zur Gewährleistung der semantischen Konsistenz.
- Disambiguierung von Entitäten: Lösen Sie das Problem der blockübergreifenden Entitätsreferenzen in Dokumenten, um die Datengenauigkeit zu verbessern.
- Unterstützung mehrerer Formate: Verarbeitet mehrere Dateiformate wie Text, JSON, PDF und Markdown.
- Semantisches Chunking: Segmentierung von Text auf der Grundlage semantischer Ähnlichkeit zur Optimierung der Informationsextraktion.
- GraphRAG-Unterstützung: Unterstützt die Erstellung von wissensgraphenbasierten Sucherweiterungen zur Verbesserung der Suchfunktionen.
- MCP-kompatibel: Bietet Endpunkte für das Model Control Protocol zur einfachen Integration und zum einfachen Aufruf.
- Unterstützung von Ternärspeichern: Unterstützung von Fuseki und Neo4j für Ternärspeicher, wobei Fuseki bevorzugt wird.
- Lokale und Cloud-Bereitstellung: Unterstützt die lokale Ausführung oder den Zugriff über REST API.
Hilfe verwenden
Einbauverfahren
OntoCast ist ein Python-basiertes Framework, das am besten mit Docker bereitgestellt wird. Hier sind die detaillierten Installations- und Konfigurationsschritte:
- Klonprojekt
Führen Sie den folgenden Befehl im Terminal aus, um das OntoCast-Projekt lokal zu klonen:git clone https://github.com/growgraph/ontocast.git cd ontocast
- Installation von Abhängigkeiten
Das Projekt verwendet die Python-Umgebung, die empfohlen wirduv
Tools zur Verwaltung von Abhängigkeiten. Führen Sie den folgenden Befehl aus, um es zu installieren:uv pip install -r requirements.txt
Falls nicht
uv
Dies kann geschehen mitpip
Alternativ:pip install -r requirements.txt
- Ternäre Speicherung konfigurieren
OntoCast unterstützt Fuseki (empfohlen) und Neo4j als ternäre Speicher-Backends. Im Folgenden finden Sie ein Beispiel für Fuseki:- gehen in
docker/fuseki
kopieren und bearbeiten Sie die Umgebungskonfigurationsdatei:cp docker/fuseki/.env.example docker/fuseki/.env
- Compiler
.env
Datei, um z.B. die URI und die Authentifizierungsinformationen von Fuseki festzulegen:FUSEKI_URI=http://localhost:3032/test FUSEKI_AUTH=admin/abc123-qwe
- Starten Sie den Fuseki-Dienst:
cd docker/fuseki docker compose --env-file .env up -d
- gehen in
- Konfigurieren des Sprachmodells
OntoCast unterstützt OpenAI oder native Modelle (z.B. über Ollama). Bearbeiten Sie das Stammverzeichnis des Projekts unter.env
Datei, die die Modellparameter konfiguriert:LLM_PROVIDER=openai LLM_MODEL_NAME=gpt-4o-mini LLM_TEMPERATURE=0.0 OPENAI_API_KEY=your_openai_api_key_here
Wenn Sie ein lokales Modell (z. B. Ollama) verwenden, setzen Sie:
LLM_PROVIDER=ollama LLM_BASE_URL=http://localhost:11434
- Operative Dienste
Verwenden Sie den folgenden Befehl, um den OntoCast-Dienst zu starten:uv run serve --ontology-directory ONTOLOGY_DIR --working-directory WORKING_DIR
Darunter.
ONTOLOGY_DIR
ist der Speicherpfad der Ontologiedatei.WORKING_DIR
ist ein Arbeitsverzeichnis zum Speichern der verarbeiteten Daten. - Erstellen eines Docker-Images (optional)
Wenn Sie OntoCast mit Docker betreiben möchten, können Sie ein Image erstellen:docker buildx build -t growgraph/ontocast:0.1.4 .
Verwendung
Die Kernfunktion von OntoCast ist es, semantische Tripel zu extrahieren und einen Wissensgraphen zu erstellen, hier sind die Schritte:
- Das Dokument vorbereiten
Legen Sie das zu verarbeitende Dokument (Text-, JSON-, PDF- oder Markdown-Formate werden unterstützt) in den Ordnerdata/
Katalog. Das Projekt liefert Beispieldaten, die referenziert werden könnendata/
Dateien in diesem Verzeichnis. - Starten Sie den Extraktionsprozess
OntoCast bietet sowohl ein Kommandozeilen-Tool als auch eine REST-API zur Ausführung:- Kommandozeilenmethode
Verwenden Sie CLI-Tools zur Bearbeitung von Dokumenten:uv run ontocast process --input data/sample.md --output output.ttl
Dies wird die
sample.md
Die Datei wird in RDF-Tripel verarbeitet und in deroutput.ttl
Datei (Turtle-Format). - REST-API-Verfahren
Nachdem Sie den Dienst gestartet haben, rufen Sie die/process
Endpunkte:curl -X POST http://localhost:8999/process -H "Content-Type: application/json" -d '{"input": "data/sample.md"}'
Die Antwort gibt die extrahierten ternären und ontologischen Daten zurück.
- Kommandozeilenmethode
- Ergebnisse anzeigen
Nach der Verarbeitung werden die Ergebnisse in einem ternären Speicher (z. B. Fuseki) gespeichert. Die Ergebnisse werden in einem ternären Speicher (z. B. Fuseki) gespeichert, auf den über die Webschnittstelle von Fuseki zugegriffen werden kann (Standard).http://localhost:3032
) den Knowledge Graph abfragen oder die Abfragesprache SPARQL verwenden, um Daten zu erhalten. - Optimierung der Ontologie
OntoCast unterstützt die automatische Optimierung der Ontologie. Wenn Sie die Ontologie manuell anpassen müssen, können Sie diedata/ontologies/
Ontologiedatei im Verzeichnis und führen Sie den Extraktionsprozess erneut durch. - GraphRAG verwenden
OntoCast unterstützt Knowledge Graph-based Retrieval Augmentation Generation (GraphRAG). Nach der Verarbeitung wird eine semantische Suche unter Verwendung des generierten Wissensgraphen durchgeführt:uv run ontocast search --query "特定关键词" --graph output.ttl
Dies führt zu ternären Ergebnissen in Bezug auf das Schlüsselwort.
Featured Function Bedienung
- semantisches ChunkingOntoCast teilt lange Dokumente automatisch in semantisch ähnliche Abschnitte auf und sorgt so für eine genauere Extraktion von Triples. Die Benutzer müssen die Chunking-Parameter nicht manuell einstellen, das System verarbeitet sie automatisch entsprechend der semantischen Ähnlichkeit.
- physische DiskriminierungOntoCast identifiziert und vereinheitlicht Entitätsreferenzen, wenn es sich um mehrere oder lange Dokumente handelt. Zum Beispiel kann sich "Apple" in verschiedenen Kontexten auf ein Unternehmen oder eine Frucht beziehen, und OntoCast wird sie je nach Kontext korrekt klassifizieren.
- Unterstützung mehrerer FormateBenutzer können PDF- oder Markdown-Dateien direkt hochladen, die OntoCast automatisch und ohne zusätzliche Vorverarbeitung in das interne Verarbeitungsformat konvertiert.
- MCP-Kompatibilität: durch
/process
Endpunkt unterstützt OntoCast das Model Control Protocol zur einfachen Integration mit anderen Systemen.
caveat
- Stellen Sie sicher, dass der ternäre Speicherdienst (z. B. Fuseki) ordnungsgemäß funktioniert, da sonst die Extraktionsergebnisse nicht gespeichert werden.
- Bei der Verarbeitung umfangreicher Dokumente empfiehlt es sich, die Einstellung
RECURSION_LIMIT
im Gesang antwortenESTIMATED_CHUNKS
Parameter, um Leistungsprobleme zu vermeiden. - Die Projektdokumentation ist zu finden unter
docs/
Katalog, der detaillierte Benutzerhandbücher und API-Referenzen enthält.
Anwendungsszenario
- akademische Forschung
Forscher können OntoCast nutzen, um Schlüsselkonzepte und Beziehungen aus wissenschaftlichen Arbeiten zu extrahieren und so einen Wissensgraphen zu erstellen. Bei biologischen Arbeiten können beispielsweise Gene, Proteine und ihre Interaktionen extrahiert werden, um eine abfragbare Wissensbasis zu erstellen. - Verwaltung von Unternehmensdokumenten
Unternehmen können interne Dokumente (z. B. technische Handbücher, Verträge) in Wissensgraphen umwandeln, um sie schnell abrufen und analysieren zu können. Das Extrahieren von Bedingungen, Beträgen und Informationen über verbundene Parteien aus Verträgen verbessert zum Beispiel die Effizienz des Informationsmanagements. - Optimierung der semantischen Suche
Webentwickler können OntoCast nutzen, um semantische Suchfunktionen zu entwickeln, die strukturierte Daten aus unstrukturierten Inhalten extrahieren und die Genauigkeit der Suchergebnisse verbessern. - intelligentes Frage- und Antwortsystem (Q&A)
OntoCast kann Wissensgraphen zur Unterstützung von Q&A-Systemen bereitstellen. Zum Beispiel können Tripel aus einem FAQ-Dokument eines Unternehmens extrahiert werden, um benutzerspezifische Fragen zu einem Produkt oder einer Dienstleistung zu beantworten.
QA
- Welche Dateiformate werden von OntoCast unterstützt?
Es werden die Formate Text, JSON, PDF und Markdown unterstützt. Weitere Formate können in Zukunft hinzugefügt werden. - Wie wählt man eine ternäre Speicherung?
Fuseki wird wegen der einfacheren Konfiguration und der besseren Leistung als Neo4j empfohlen.docker/fuseki/.env.example
Konfiguration. - Ist eine vordefinierte Ontologie erforderlich?
OntoCast generiert und optimiert automatisch Ontologien und unterstützt auch benutzerdefinierte Ontologien. - Wie gehen Sie mit umfangreichen Dokumenten um?
Vorgeschlagene ErgänzungenESTIMATED_CHUNKS
(z. B. auf 50) und stellen Sie sicher, dass die Hardware-Ressourcen ausreichen. Das semantische Chunking wird automatisch für die Verarbeitung optimiert. - Welche Sprachmodelle werden unterstützt?
Modelle, die OpenAI unterstützen (z.B.gpt-4o-mini
) und lokale Modelle (z. B. die von Ollama).