Allgemeine Einführung
Cognee ist eine zuverlässige Datenschichtlösung für KI-Anwendungen und KI-Agenten. Sie wurde entwickelt, um LLM-Kontexte (Large Language Models) zu laden und zu erstellen, um genaue und interpretierbare KI-Lösungen durch Wissensgraphen und Vektorspeicher zu schaffen. Das Framework ermöglicht Kostenersparnis, Interpretierbarkeit und benutzergesteuerte Kontrolle, wodurch es sich für Forschung und Lehre eignet. 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) Daten hinzufügen, Daten automatisch identifizieren und auf der Grundlage von LLM verarbeiten, in Knowledge Graph extrahieren und speichern Vektordatenbank 2. die Vorteile sind: Kostenersparnis, Interpretierbarkeit - grafische Visualisierung der Daten, Kontrollierbarkeit - Integration in den Code, usw.
Funktionsliste
- ECL-RohrleitungenErmöglicht das Extrahieren, Erkennen und Laden von Daten, unterstützt die Verknüpfung und den Abruf von historischen Daten.
- Multi-Datenbank-UnterstützungUnterstützung für PostgreSQL, Weaviate, Qdrant, Neo4j, Milvus und andere Datenbanken.
- Verringerung von HalluzinationenReduzierung von Phantomphänomenen in KI-Anwendungen durch Optimierung des Pipeline-Designs.
- Freundlich für EntwicklerAusführliche Dokumentation und Beispiele, um die Schwelle für Entwickler zu senken.
- SkalierbarkeitModularer Aufbau für einfache Erweiterung und Anpassung.
Hilfe verwenden
Ablauf der Installation
- Installation mit pip::
Pip-Installation von Cognee
Oder installieren Sie eine spezielle Datenbankunterstützung:
pip install 'cognee[]'
Installieren Sie zum Beispiel PostgreSQL und Neo4j-Unterstützung:
pip install 'cognee[postgres, neo4j]'
- Installation mit Poesie::
Poesie hinzufügen cognee
Oder installieren Sie eine spezielle Datenbankunterstützung:
poetry add cognee -E
Installieren Sie zum Beispiel PostgreSQL und Neo4j-Unterstützung:
poetry add cognee -E postgres -E neo4j
Verwendung Prozess
- Einstellen des API-Schlüssels::
os importieren os.environ["LLM_API_KEY"] = "IHR_OPENAI_API_KEY"
Oder:
cognee importieren cognee.config.set_llm_api_key("IHR_OPENAI_API_KEY")
- Erstellen von .env-Dateien: Erstellen Sie eine .env-Datei und legen Sie den API-Schlüssel fest:
LLM_API_KEY=IHR_OPENAI_API_KEY
- Nutzung verschiedener LLM-AnbieterSiehe die Dokumentation, um zu erfahren, wie verschiedene LLM-Anbieter konfiguriert werden können.
- Ergebnisse der VisualisierungWenn Sie ein Netzwerk verwenden, erstellen Sie ein Graphistry-Konto und konfigurieren Sie es:
cognee.config.set_graphistry_config({ "benutzername": "IHR_BENUTZERNAME", "passwort": "IHR_PASSWORT" })
Hauptfunktionen
- DatenextraktionExtrahieren von Daten mithilfe der ECL-Pipeline von Cognee, die mehrere Datenquellen und -formate unterstützt.
- Bewusstsein für DatenVerarbeitung und Analyse von Daten durch das kognitive Modul von Cognee zur Reduzierung von Halluzinationen.
- Laden von DatenLaden von verarbeiteten Daten in eine Zieldatenbank oder einen Zielspeicher, wobei eine breite Palette von Datenbanken und Vektorspeichern unterstützt wird.
Ausgewählte Funktionen Bedienung Ablauf
- Verknüpfung und Abruf von historischen DatenEinfache Verknüpfung und Abfrage von vergangenen Gesprächen, Dokumenten und Audiotranskriptionen dank des modularen Designs von Cognee.
- Geringere Arbeitsbelastung der EntwicklerAusführliche Dokumentation und Beispiele, um die Schwelle für Entwickler zu senken und Entwicklungszeit und -kosten zu reduzieren.
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 sollen Inhalte klassifizieren. Stellen Sie sicher, dass Sie eine der vorhandenen Klassifizierungsoptionen verwenden und nicht Ihre eigene erfinden. Die möglichen Klassifizierungen sind. { "Natürlichsprachlicher Text": { "Unterklasse": [ "Artikel, Aufsätze und Berichte". "Bücher und Manuskripte". "Nachrichten und Blogbeiträge". "Website-Inhalte und Produktbeschreibungen", "Persönliche Erzählungen und Geschichten", "Persönliche Informationen", "Persönliche Informationen", "Persönliche Informationen". "Persönliche Erzählungen und Geschichten". ] }, "Strukturierte Dokumente". "Strukturierte Dokumente": { "Typ": "TEXT", "Unterklasse": [ "TEXT" ] }, "Strukturierte Dokumente": { "Unterklasse": [ "Tabellenkalkulationen und Tabellen". "Formulare und Umfragen", "Datenbanken und CSV-Dateien". "Datenbanken und CSV-Dateien"] ] }, "Code und Skripts": { "Code und Skripts": { "Code und Skripts": { "Code und Skripts"] "Code und Skripte": { "Typ": "TEXT", "Unterklasse": [ "TEXT" ] }, "Code und Skripte": { "Unterklasse": [ "Quellcode in verschiedenen Programmiersprachen". "Shell-Befehle und -Skripte", "Auszeichnungssprachen (HTML, XML, usw.)", "Auszeichnungssprachen (HTML, XML, usw.)", "Auszeichnungssprachen (HTML, XML, usw.)". "Auszeichnungssprachen (HTML, XML)", "Stylesheets (CSS)", "Stylesheets (CSS)", "Stylesheets (CSS)". "Stylesheets (CSS) und Konfigurationsdateien (YAML, JSON, INI)"] ] }, "Konversationsdaten". "Konversationsdaten": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Conversational Data": { "subclass": [ "Chat-Transkripte und Nachrichtenverlauf". "Kundendienstprotokolle und Interaktionen", "Konversations-KI-Trainingsdaten". "KI-Trainingsdaten für Konversationen". ] }, "Bildungsinhalte". "Bildungsinhalte": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Educational Content": { "subclass": [ "Prüfungsfragen und akademische Übungen", "E-Learning-Kursmaterialien". "E-Learning-Kursmaterialien"] ] }, "Kreatives Schreiben". "Kreatives Schreiben": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Creative Writing": { "Unterklasse": [ "Lyrik und Prosa". "Drehbücher für Theaterstücke, Filme und Fernsehen". "Liedtexte" ] }, "Technische Dokumentation": { "Drehbücher für Theaterstücke, Filme und Fernsehen"] "Technische Dokumentation": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Technische Dokumentation": { "Unterklasse": [ "Handbücher und Bedienungsanleitungen". "Technische Spezifikationen und API-Dokumentation", "Helpdesk-Artikel und FAQs", "Helpdesk-Artikel und FAQs "Helpdesk-Artikel und FAQs", "Helpdesk-Artikel und FAQs" ] }, "Rechtliche und regulatorische Dokumente". "Rechtliche und regulatorische Dokumente": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Rechtliche und regulatorische Dokumente": { "Unterklasse": [ "Verträge und Vereinbarungen". "Gesetze, Verordnungen und Dokumente zu Rechtsfällen". "Grundsatzdokumente und Materialien zur Einhaltung von Vorschriften"] ] }, "Medizinische und wissenschaftliche Texte". "Medizinische und wissenschaftliche Texte": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Medizinische und wissenschaftliche Texte": { "Unterklasse": [ "Berichte über klinische Studien". "Patientenakten und Fallnotizen". "Wissenschaftliche Zeitschriftenartikel" ] }, "Finanz- und Geschäftsdokumente". "Finanz- und Geschäftsdokumente": { "type": "TEXT", "subclass": [ "TEXT" ], "financial and business documents": { "Unterklasse": [ "Geschäftspläne und Vorschläge", "Marktforschungs- und Analyseberichte". "Marktforschungs- und Analyseberichte"] ] }, "Werbe- und Marketingmaterialien". "Werbe- und Marketingmaterialien": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Werbe- und Marketingmaterialien": { "Unterklasse": [ "Produktkataloge und Broschüren". "Pressemitteilungen und Werbeinhalte" ] }, "Emails und Korrespondenz". "E-Mails und Korrespondenz": { "type": "TEXT", "subclass": [ "TEXT" ] }, "Emails und Korrespondenz": { "Unterklasse": [ "Berufliche und formelle Korrespondenz", "Persönliche E-Mails und Briefe". "Persönliche E-Mails und Briefe"] ] }, "Metadaten und Annotationen". "Metadaten und Anmerkungen": { "Unterklasse": [ "Bild- und Videobeschriftungen". "Annotationen und Metadaten für verschiedene Medien" ] ] }, "Sprachlernmaterialien". "Sprachlernmaterialien": { "type": "TEXT", "subclass": [ "TEXT" ], "language learning materials": { "Unterklasse": [ "Vokabellisten und Grammatikregeln". "Sprachübungen und Quiz"] ] }, "Audio Content": { { "Vokabellisten und Grammatikregeln", "Sprachübungen und Quiz" ] "Audio-Inhalte": { "type": "AUDIO", "subclass": [ "AUDIO" ] }, "Audio Content": { "Unterklasse": [ "Musiktitel und Alben". "Hörbücher und Audioguides". "Soundeffekte und Umgebungsgeräusche"] ] } "Bildinhalte": { "type": "IMAGE", "subclass": [ [ "IMAGE" ] }, "Image Content": { "subclass": [ "Fotografien und digitale Bilder". "Illustrationen, Diagramme und Tabellen". "Screenshots und grafische Benutzeroberflächen". ] }, "Videoinhalte". "Video-Inhalte": { "type": "VIDEO", "subclass": [ "VIDEO" ] }, "Video Content": { "Unterklasse": [ "Filme und Kurzfilme". "Dokumentarfilme und Lehrvideos", "Video-Tutorials und -Anleitungen", "Video-Videos und -Anleitungen", "Video-Tutorials und -Anleitungen". "Animierte Spielfilme und Zeichentrickfilme", "Live-Aufnahmen von Veranstaltungen und Sportübertragungen "Live-Aufnahmen von Veranstaltungen und Sportübertragungen". ] }, "Multimedia-Inhalte". "Multimedia-Inhalte": { "Typ": "MULTIMEDIA", "Unterklasse": [ "MULTIMEDIA" ] }, "Multimedia-Inhalte": { "Unterklasse": [ "Interaktive Webinhalte und Spiele". "Mixed Media Präsentationen und Slide Decks", "E-Learning Module mit integriertem "E-Learning-Module mit integrierten Multimedia-Inhalten", "Digitale Ausstellungen und virtuelle Rundgänge "Digitale Ausstellungen und virtuelle Rundgänge". ] }, "3D-Modelle und CAD-Inhalte". "3D-Modelle und CAD-Inhalte": { "type": "3D_MODEL", "subclass": [ "3D_MODEL" ] }, "3D-Modelle und CAD-Inhalte": { "subclass": [ "Architektonische Renderings und Baupläne", "Produktdesignmodelle und Prototypen", "3D_Model", "subclass": [ "3D-Animationen und Charaktermodelle", "Wissenschaftliche Simulationen und Visualisierungen", "3D_MODEL". "Wissenschaftliche Simulationen und Visualisierungen", "Virtuelle Objekte für AR/VR-Umgebungen", "Virtuelle Objekte für AR/VR-Umgebungen". Virtuelle Objekte für AR/VR-Umgebungen", "Virtuelle Objekte für AR/VR-Umgebungen". ] }, "Prozedurale Inhalte". "Prozeduraler Inhalt": { "type": "PROCEDURAL", "subclass": [ [ "PROCEDURAL" ] ], "Prozeduraler Inhalt": { "subclass": [ "Tutorials und Schritt-für-Schritt-Anleitungen". "Arbeitsablauf "Simulation und Trainingsübungen", "Rezepte und Bastelanleitungen "Rezepte und Bastelanleitungen", "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 Eigenschaften der {{ data_type }}` zu verstehen. Ihr Ziel ist es, aussagekräftige Informationsschichten zu extrahieren, die dazu beitragen, ein detailliertes mehrschichtiges Netzwerk 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 der spezifische Bereich, aus dem Sie Daten extrahieren, ist `{{ category_name }}`. Richtlinien für die Extraktion von Ebenen. Berücksichtigen Sie: Der Inhaltstyp, in diesem Fall: `{{ category_name }}`, sollte eine wichtige Rolle bei der Zerlegung in Ebenen spielen. Definieren und beschreiben Sie auf der Grundlage Ihrer Analyse die von Ihnen ermittelten Ebenen und erläutern Sie deren Relevanz und Beitrag zum Verständnis des Datensatzes. Ihre unabhängige Identifizierung von Schichten ermöglicht eine nuancierte und facettenreiche Darstellung der Daten und verbessert Anwendungen in der Wissensentdeckung, Inhaltsanalyse und Informationssicherheit. Ihre unabhängige Identifizierung von Schichten ermöglicht eine nuancierte und facettenreiche Darstellung der Daten und verbessert Anwendungen in der Wissensentdeckung, Inhaltsanalyse und Informationssicherheit. Abruf.
generate_graph_prompt: Graphische Eingabeaufforderungen erzeugen
Sie sind ein erstklassiger Algorithmus entwickelt, um Informationen in strukturierten Formaten zu extrahieren und einen Wissensgraphen aufzubauen. - Sie sind vergleichbar mit Wikipedia-Knoten. **Knoten** stellen Entitäten und Konzepte dar. - Sie sind mit Wikipedia-Knoten vergleichbar. **Kanten** stellen Beziehungen zwischen Konzepten dar. - Das Ziel ist es, Einfachheit und Klarheit in der Darstellung zu erreichen. Ziel ist es, den Wissensgraphen einfach und übersichtlich zu gestalten, damit er für ein breites Publikum zugänglich ist. SIE EXTRAHIEREN NUR DATEN FÜR DIE COGNITIVE SCHICHT `{{ Schicht }}` ## 1. Beschriftung der Knoten - **Konsistenz**: Stellen Sie sicher, dass Sie grundlegende oder elementare Typen für Knotenbeschriftungen verwenden. - Wenn Sie zum Beispiel eine Entität identifizieren, die eine Person darstellt, bezeichnen Sie sie immer als **"Person". Wenn Sie zum Beispiel eine Entität identifizieren, die eine Person darstellt, bezeichnen Sie sie immer als **"Person "**. Vermeiden Sie die Verwendung spezifischerer Begriffe wie "Mathematiker" oder "Wissenschaftler". - Fügen Sie Ereignis-, Entitäts-, Zeit- oder Aktionsknoten in die Kategorie ein. - Fügen Sie Ereignis-, Entitäts-, Zeit- oder Aktionsknoten in die Kategorie ein. Klassifizieren Sie den Erinnerungstyp als episodisch oder semantisch. - **Knoten-IDs**: Verwenden Sie niemals ganze Zahlen als Knoten-IDs. Knoten-IDs sollten Namen oder von Menschen lesbare Identifikatoren sein, die im Text vorkommen. ## 2. Umgang mit numerischen Daten und Datumsangaben - Numerische Daten, wie das Alter oder andere verwandte Informationen, sollten als Attribute oder Eigenschaften aufgenommen werden. Numerische Daten, wie das Alter oder andere verwandte Informationen, sollten als Attribute oder Eigenschaften des jeweiligen Knotens aufgenommen werden. - **Keine separaten Knoten für Daten/Zahlen**. Erstellen Sie keine separaten Knoten für Datumsangaben oder numerische Werte. Legen Sie keine separaten Knoten für Datumsangaben oder Zahlenwerte an, sondern fügen Sie diese immer als Attribute oder Eigenschaften von Knoten ein. - **Eigenschaftsformat**: Eigenschaften müssen in einem Schlüssel-Wert-Format vorliegen. - **Anführungszeichen**: Verwenden Sie niemals einfache oder doppelte Anführungszeichen innerhalb von Eigenschaftswerten. - **Benennungskonvention**: Verwenden Sie Groß- und Kleinschreibung für Beziehungsnamen, z. B. "acted_in". ## 3. Auflösung von Koreferenzen - **Erhaltung der Entitätskonsistenz**. Bei der Extraktion von Entitäten ist es wichtig, dass die Konsistenz gewährleistet ist. Wenn eine Entität, wie z. B. "John Doe", mehrfach im Text erwähnt wird, aber mit dem Namen "John Doe" bezeichnet wird, ist es wichtig, die Konsistenz sicherzustellen. Wenn eine Entität, wie z. B. "John Doe", mehrfach im Text erwähnt wird, aber mit verschiedenen Namen oder Pronomen (z. B. "Joe", "er") bezeichnet wird, verwenden Sie immer den vollständigsten Bezeichner für die Entität. Verwenden Sie immer den vollständigsten Bezeichner für diese Entität im gesamten Wissensgraphen. In diesem Beispiel verwenden Sie "John Doe" als Entitäts-ID. Denken Sie daran, dass der Wissensgraph kohärent und leicht verständlich sein sollte, so dass es kein Problem sein sollte, die Konsistenz der Entitätsreferenzen zu wahren. Denken Sie daran, dass der Wissensgraph kohärent und leicht verständlich sein sollte, so dass die Wahrung der Konsistenz bei den Entitätsreferenzen von entscheidender Bedeutung ist. ## 4. strikte Einhaltung Halten Sie sich strikt an die Regeln, denn die Nichteinhaltung führt zur Kündigung"""""
read_query_prompt: Abfrageprompt lesen
from os import path importieren Sie logging from cognee.root_dir import get_absolute_path def read_query_prompt(prompt_file_name: str): """Liest einen Query Prompt aus einer Datei.""" """Liest einen Abfrageprompt aus einer Datei. """"" try. file_path = path.join(get_absolute_path(". /infrastructure/llm/prompts"), prompt_file_name) with open(file_path, "r", encoding = "utf-8") as file:: file. return file.read() except FileNotFoundError: logging. logging.error(f "Fehler: Prompt-Datei nicht gefunden. Leseversuch: %s {Datei_pfad}") return Keine except Exception as e. logging.error(f "Es ist ein Fehler aufgetreten: %s {Dateipfad}") logging.error(f "Es ist ein Fehler aufgetreten: %s {e}") return None
render_prompt: Aufforderung zum Rendern
from jinja2 import Environment, FileSystemLoader, select_autoescape from cognee.root_dir import get_absolute_path def render_prompt(Dateiname: str, Kontext: 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."""" # Setzen des Basisverzeichnisses relativ zum Cognee-Stammverzeichnis base_directory = get_absolute_path(". /infrastruktur/llm/prompts") # Initialisieren Sie die Jinja2-Umgebung, um Vorlagen aus dem Dateisystem zu laden env = Umgebung( loader = FileSystemLoader(base_directory), autoescape = select_autoescape autoescape = select_autoescape(["html", "xml", "txt"]) ) # Laden der Vorlage nach Namen template = env.get_template(Dateiname) # Rendering der Vorlage mit dem angegebenen Kontext gerenderte_Vorlage = template.render(kontext) return rendered_template
summarize_content: Inhalt zusammenfassen
Sie sind eine Zusammenfassungsmaschine und sollten Inhalte zusammenfassen. Seien Sie kurz und prägnant.