Allgemeine Einführung
cognee ist ein Open-Source-Framework zum Laden und Erstellen von LLM-Kontexten (Large Language Models), um mithilfe von Wissensgraphen und Vektorspeichern genaue und interpretierbare KI-Lösungen zu erstellen. Das Framework ermöglicht Kosteneinsparungen, Interpretierbarkeit und benutzergeführte Kontrolle und eignet sich daher für Forschung und Lehre. Die offizielle Website bietet einführende Tutorials, konzeptionelle Übersichten, Lernmaterialien und verwandte Forschungsinformationen.
Die größte Stärke von cognee ist es, Daten zu sammeln, sie automatisch zu verarbeiten, einen Wissensgraphen zu erstellen und die Graphen verwandter Themen wieder miteinander zu verbinden, um die Zusammenhänge in den Daten besser zu erkennen und die RAG Bietet die ultimative Interpretierbarkeit, wenn es um LLMs geht.
1. Hinzufügen von Daten, automatische Identifizierung und Verarbeitung von Daten auf der Grundlage des LLM, Extraktion in den Knowledge Graph und Speicherung in der Weaviate-Vektordatenbank 2. Vorteile: Kosteneinsparungen, Interpretierbarkeit - Graphvisualisierung von Daten, Kontrollierbarkeit - Integration in den Code usw.
Funktionsliste
Bietet einführende Informationen über die Verwendung des Cognee-Frameworks
Erläuterung des konzeptionellen Rahmens und der Anwendung von Cognee
Erläuterung der Kostenwirksamkeit von KI-Lösungen
Hervorhebung der Bedeutung von interpretierender KI und nutzergeführter Kontrolle
Hilfe verwenden
Besuchen Sie die offizielle Website für weitere Informationen über Cognee-Rahmen
Lesen Sie einen Überblick über die Beherrschung der theoretischen Grundlagen von Cognee
Tutorials und Lernmaterialien für den Einstieg ansehen
Hauptbefehl der Eingabeaufforderung
classify_content: klassifizierte Inhalte
Sie sind eine Klassifizierungsmaschine und sollten Inhalte klassifizieren. Achten Sie darauf, dass Sie eine der vorhandenen Klassifizierungsoptionen verwenden und nicht Ihre eigene erfinden.
Die möglichen Klassifizierungen sind.
{
"Text in natürlicher Sprache": {
"Typ": "TEXT".
"Unterklasse": [
"Artikel, Aufsätze und Berichte".
"Bücher und Manuskripte".
"Nachrichten und Blogbeiträge".
"Forschungsarbeiten und akademische Veröffentlichungen".
"Beiträge und Kommentare in den sozialen Medien".
"Inhalt der Website und Produktbeschreibungen".
"Persönliche Erzählungen und Geschichten"
]
},
"Strukturierte Dokumente": {
"Typ": "TEXT".
"Unterklasse": [
"Tabellenkalkulationen und Tabellen".
"Formulare und Umfragen".
"Datenbanken und CSV-Dateien"
]
},
"Code und Skripte": {
"Typ": "TEXT".
"Unterklasse": [
"Quellcode in verschiedenen Programmiersprachen".
"Shell-Befehle und Skripte".
"Auszeichnungssprachen (HTML, XML)".
"Stylesheets (CSS) und Konfigurationsdateien (YAML, JSON, INI)"
]
},
"Gesprächsdaten": {
"Typ": "TEXT".
"Unterklasse": [
"Chat-Protokolle und Nachrichtenverlauf".
"Kundendienstprotokolle und Interaktionen".
"KI-Trainingsdaten für Konversation"
]
},
"Bildungsinhalte": {
"Typ": "TEXT".
"Unterklasse": [
"Lehrbuchinhalte und Vorlesungsskripte".
"Prüfungsfragen und akademische Übungen".
"E-Learning-Kursmaterial"
]
},
"Kreatives Schreiben": {
"Typ": "TEXT".
"Unterklasse": [
"Poesie und Prosa".
"Drehbücher für Theater, Film und Fernsehen".
"Liedtexte"
]
},
"Technische Dokumentation": {
"Typ": "TEXT".
"Unterklasse": [
"Handbücher und Bedienungsanleitungen".
"Technische Spezifikationen und API-Dokumentation".
"Helpdesk-Artikel und FAQs"
]
},
"Rechtliche und regulatorische Dokumente": {
"Typ": "TEXT".
"Unterklasse": [
"Verträge und Vereinbarungen".
"Gesetze, Verordnungen und Rechtsprechung".
"Grundsatzdokumente und Materialien zur Einhaltung von Vorschriften"
]
},
"Medizinische und wissenschaftliche Texte": {
"Typ": "TEXT".
"Unterklasse": [
"Berichte über klinische Studien".
"Patientenakten und Fallnotizen".
"Wissenschaftliche Zeitschriftenartikel"
]
},
"Finanz- und Geschäftsdokumente": {
"Typ": "TEXT".
"Unterklasse": [
"Finanzberichte und Erklärungen".
"Geschäftspläne und Vorschläge".
"Marktforschung und Analyseberichte"
]
},
"Werbe- und Marketingmaterial": {
"Typ": "TEXT".
"Unterklasse": [
"Werbetexte und Marketing-Slogans".
"Produktkataloge und Broschüren".
"Pressemitteilungen und Werbeinhalte"
]
},
"E-Mails und Korrespondenz": {
"Typ": "TEXT".
"Unterklasse": [
"Professionelle und formelle Korrespondenz".
"Persönliche E-Mails und Briefe"
]
},
"Metadaten und Anmerkungen": {
"Typ": "TEXT".
"Unterklasse": [
"Bild- und Videobeschriftungen".
"Anmerkungen und Metadaten für verschiedene Medien"
]
},
"Sprachlernmaterialien": {
"Typ": "TEXT".
"Unterklasse": [
"Vokabellisten und Grammatikregeln".
"Sprachübungen und Quizspiele"
]
},
"Audio-Inhalt": {
"Typ": "AUDIO".
"Unterklasse": [
"Musiktitel und Alben".
"Podcasts und Radiosendungen".
"Hörbücher und Audioguides".
"Aufgezeichnete Interviews und Reden".
"Soundeffekte und Umgebungsgeräusche"
]
},
"Bildinhalt": {
"type": "IMAGE",
"Unterklasse": [
"Fotografien und digitale Bilder".
"Illustrationen, Diagramme und Tabellen".
"Infografiken und visuelle Datendarstellungen".
"Kunstwerke und Gemälde".
"Screenshots und grafische Benutzeroberflächen"
]
},
"Videoinhalt": {
"Typ": "VIDEO".
"Unterklasse": [
"Filme und Kurzfilme".
"Dokumentarfilme und Lehrvideos".
"Video-Tutorials und Anleitungen".
"Animierte Spielfilme und Zeichentrickfilme".
"Live-Aufnahmen von Veranstaltungen und Sportübertragungen"
]
},
"Multimedia-Inhalt": {
"Typ": "MULTIMEDIA".
"Unterklasse": [
"Interaktive Webinhalte und Spiele".
"Erfahrungen mit virtueller Realität (VR) und erweiterter Realität (AR)".
"Gemischte Medienpräsentationen und Foliendateien".
"E-Learning-Module mit integriertem Multimedia".
"Digitale Ausstellungen und virtuelle Rundgänge"
]
},
"3D-Modelle und CAD-Inhalte": {
"Typ": "3D_MODEL".
"Unterklasse": [
"Architektonische Renderings und Baupläne".
"Modelle und Prototypen für die Produktgestaltung".
"3D-Animationen und Charaktermodelle".
"Wissenschaftliche Simulationen und Visualisierungen".
"Virtuelle Objekte für AR/VR-Umgebungen".
]
},
"Prozeduraler Inhalt": {
"type": "PROCEDURAL".
"Unterklasse": [
"Tutorials und Schritt-für-Schritt-Anleitungen".
"Arbeitsablauf- und Prozessbeschreibungen".
"Simulationen und Trainingsübungen".
"Rezepte und Bastelanleitungen"
]
}
}
generate_cog_layers: kognitive Schichten erzeugen
Sie sind mit der Analyse von Dateien des Typs {{ data_type }}} betraut, insbesondere in einem mehrschichtigen Netzwerkkontext für Aufgaben wie Analyse, Kategorisierung und Auswertung. Um die Tiefe und Breite der in den {{ data_type }}} enthaltenen Informationen zu erfassen, können verschiedene Ebenen einbezogen werden.
Diese Schichten können helfen, den Inhalt, den Kontext und die Merkmale des Datentyps zu verstehen.
Ihr Ziel ist es, aussagekräftige Informationsschichten zu extrahieren, die dazu beitragen, ein detailliertes mehrschichtiges Netz oder einen Wissensgraphen zu erstellen.
Gehen Sie an diese Aufgabe heran, indem Sie die einzigartigen Merkmale und inhärenten Eigenschaften der vorliegenden Daten berücksichtigen.
SEHR WICHTIG: Der Kontext, in dem Sie arbeiten, ist `{{ category_name }}` und die spezifische Domäne, für die Sie Daten extrahieren, ist `{{ category_name }}`.
Leitlinien für die Extraktion von Schichten.
Beachten Sie: Der Inhaltstyp, in diesem Fall: `{{ category_name }}`, sollte eine wichtige Rolle dabei spielen, wie Sie in Ebenen zerlegt werden.Definieren und beschreiben Sie auf der Grundlage Ihrer Analyse die von Ihnen identifizierten Ebenen und erläutern Sie deren Bedeutung und Beitrag zum Verständnis des Datensatzes. Ihre unabhängige Identifizierung von Ebenen ermöglicht eine nuancierte und facettenreiche Darstellung der Daten und verbessert so die Anwendungen im Bereich des Wissensmanagements. Ihre unabhängige Identifizierung von Ebenen ermöglicht eine nuancierte und facettenreiche Darstellung der Daten und verbessert so Anwendungen in der Wissensentdeckung, der Inhaltsanalyse und dem Informationsabruf.
generate_graph_prompt: Graphische Eingabeaufforderungen erzeugen
Sie sind ein erstklassiger Algorithmus
konzipiert für die Extraktion von Informationen in strukturierten Formaten zum Aufbau eines Wissensgraphen.
- **Knoten** stellen Entitäten und Konzepte dar und sind mit Wikipedia-Knoten vergleichbar.
- **Edges** stellen Beziehungen zwischen Konzepten dar und sind mit Wikipedia-Links vergleichbar.
- Das Ziel ist es, Einfachheit und Klarheit in der
Der Wissensgraph, der einem breiten Publikum zugänglich ist.
SIE EXTRAHIEREN NUR DATEN FÜR DIE COGNITIVE SCHICHT `{{ Schicht }}`
## 1. die Kennzeichnung von Knotenpunkten
- **Konsistenz**: Stellen Sie sicher, dass Sie einfache oder elementare Typen für Knotenbeschriftungen verwenden.
- Zum Beispiel, wenn Sie eine Entität identifizieren, die eine Person darstellt.
immer als **"Person "** bezeichnen.
Vermeiden Sie spezifischere Begriffe wie "Mathematiker" oder "Wissenschaftler".
- Fügen Sie Ereignis-, Entitäts-, Zeit- oder Aktionsknoten in die Kategorie ein.
- Klassifizieren Sie den Gedächtnistyp als episodisch oder semantisch.
- **Knoten-IDs**: Verwenden Sie niemals ganze Zahlen als Knoten-IDs.
Knoten-IDs sollten Namen oder von Menschen lesbare Bezeichnungen sein, die im Text vorkommen.
## 2. der Umgang mit numerischen Daten und Datumsangaben
- Numerische Daten, wie Alter oder andere Informationen.
sollten als Attribute oder Eigenschaften der jeweiligen Knoten aufgenommen werden.
- **Keine separaten Knoten für Daten/Zahlen**.
Erstellen Sie keine separaten Knoten für Datumsangaben oder numerische Werte.
Fügen Sie sie immer als Attribute oder Eigenschaften von Knoten hinzu.
- **Eigenschaftsformat**: Eigenschaften müssen in einem Schlüssel-Wert-Format vorliegen.
- **Anführungszeichen**: Verwenden Sie niemals geschützte einfache oder doppelte Anführungszeichen innerhalb von Eigenschaftswerten.
- **Benennungskonvention**: Verwenden Sie snake_case für Beziehungsnamen, z. B. `acted_in`.
## 3. die Auflösung der AStA
- **Erhaltung der Entitätskonsistenz**.
Bei der Extraktion von Entitäten ist es wichtig, dass die Konsistenz gewährleistet ist.
Wenn eine Person, wie z. B. "John Doe", mehrfach erwähnt wird
im Text vorkommt, aber mit anderen Namen oder Pronomen bezeichnet wird (z. B. "Joe", "er"),
immer den vollständigsten Bezeichner für diese Entität im gesamten Wissensgraphen verwenden.
In diesem Beispiel verwenden Sie "John Doe" als Entitäts-ID.
Denken Sie daran, dass die Wissensgraphen kohärent und leicht verständlich sein sollten, und dass die Wissensgraphen der Öffentlichkeit zugänglich gemacht werden sollten.
Daher ist die Wahrung der Konsistenz der Entitätsreferenzen von entscheidender Bedeutung.
## 4. strikte Einhaltung
Halten Sie sich strikt an die Regeln, denn die Nichteinhaltung hat die Kündigung zur Folge""""
read_query_prompt: Abfrageprompt lesen
from os import path
Einfuhrprotokollierung
from cognee.root_dir import get_absolute_pathdef read_query_prompt(prompt_file_name: str).
"""Lesen einer Abfrageaufforderung aus einer Datei.""""
versuchen.
file_path = path.join(get_absolute_path(". /infrastructure/llm/prompts"), prompt_file_name)with open(file_path, "r", encoding = "utf-8") as file.
return file.read()
except FileNotFoundError:
logging.error(f "Fehler: Prompt-Datei nicht gefunden. Versucht zu lesen: %s {Datei_pfad}")
return Keine
außer Ausnahme wie e.
logging.error(f "Ein Fehler ist aufgetreten: %s {e}")
return Keine
render_prompt: Aufforderung zum Rendern
from jinja2 import Umwelt, FileSystemLoader, select_autoescape
from cognee.root_dir import get_absolute_pathdef render_prompt(filename: str, context: dict) -> str.
"""Rendert eine Jinja2-Vorlage asynchron.
:param filename: Der Name der zu rendernden Vorlagendatei.
:param context: Der Kontext, mit dem die Vorlage gerendert werden soll.
:return: Die gerenderte Vorlage als String.""""# Legen Sie das Basisverzeichnis relativ zum Stammverzeichnis von cognee fest
base_directory = get_absolute_path(". /infrastruktur/llm/prompts")# Initialisieren der Jinja2-Umgebung zum Laden von Vorlagen aus dem Dateisystem
env = Umgebung(
loader = FileSystemLoader(base_directory),
autoescape = select_autoescape(["html", "xml", "txt"])
)# Laden der Vorlage nach Name
Vorlage = env.get_template(Dateiname)# Rendering der Vorlage mit dem angegebenen Kontext
rendered_template = template.render(context)return gerenderte_Vorlage
summarize_content: Inhalt zusammenfassen
Sie sind eine Zusammenfassungsmaschine und sollten Inhalte zusammenfassen. Seien Sie kurz und prägnant.