cognee : un cadre RAG open source pour la construction de graphes de connaissances, l'apprentissage de prompts de base
Introduction générale
Cognee est une solution fiable de couche de données conçue pour les applications et les agents d'IA. Conçu pour charger et construire des contextes LLM (Large Language Model) afin de créer des solutions d'IA précises et interprétables par le biais de graphes de connaissances et de magasins de vecteurs. Le cadre facilite la réduction des coûts, l'interprétabilité et le contrôle guidé par l'utilisateur, ce qui le rend adapté à la recherche et à l'enseignement. Le site web officiel propose des tutoriels d'introduction, des aperçus conceptuels, du matériel d'apprentissage et des informations sur les recherches connexes.
La plus grande force de Cognee est de lui fournir des données, puis de les traiter automatiquement, de construire un graphe de connaissances et de reconnecter les graphes des sujets connexes pour vous aider à mieux découvrir les connexions dans les données ainsi que le RAG Offre le summum de l'interprétabilité en ce qui concerne les LLM.
1. ajouter des données, identifier et traiter automatiquement les données sur la base du LLM, les extraire dans le graphe de connaissances et les stocker dans le Weaviate. base de données vectorielles 2) Les avantages sont les suivants : économie d'argent, interprétabilité - visualisation graphique des données, contrôlabilité - intégration dans le code, etc.

Liste des fonctions
- ECL PipingLe système de gestion des données : il permet l'extraction, la connaissance et le chargement des données, ainsi que l'interconnexion et la récupération des données historiques.
- Prise en charge de plusieurs bases de donnéesSupport pour PostgreSQL, Weaviate, Qdrant, Neo4j, Milvus et d'autres bases de données.
- Réduction des hallucinationsLe projet de loi sur la protection de l'environnement a été adopté à l'unanimité par le Parlement européen, le Conseil et la Commission.
- Convivialité pour les développeursLes développeurs ont besoin d'une documentation détaillée et d'exemples afin de réduire le seuil d'exigence pour les développeurs.
- évolutivitéConception modulaire pour une extension et une personnalisation aisées.
Utiliser l'aide
Processus d'installation
- Installation à l'aide de pip: :
pip install cognee
Ou installer un support de base de données spécifique :
pip install 'cognee[<database>]'
Par exemple, installer le support de PostgreSQL et de Neo4j :
pip install 'cognee[postgres, neo4j]'
- Installation utilisant la poésie: :
poetry add cognee
Ou installer un support de base de données spécifique :
poetry add cognee -E <database>
Par exemple, installer le support de PostgreSQL et de Neo4j :
poetry add cognee -E postgres -E neo4j
Processus d'utilisation
- Définition de la clé API: :
import os os.environ["LLM_API_KEY"] = "YOUR_OPENAI_API_KEY"
Ou bien :
import cognee cognee.config.set_llm_api_key("YOUR_OPENAI_API_KEY")
- Création de fichiers .envCréer un fichier .env et définir la clé de l'API :
LLM_API_KEY=YOUR_OPENAI_API_KEY
- Utiliser différents prestataires de formation à l'éducation et à la formation tout au long de la vieLes fournisseurs de LLM : Reportez-vous à la documentation pour savoir comment configurer les différents fournisseurs de LLM.
- Résultats de la visualisationSi vous utilisez le réseau, créez un compte Graphistry et configurez-le :
cognee.config.set_graphistry_config({ "username": "YOUR_USERNAME", "password": "YOUR_PASSWORD" })
Principales fonctions
- extraction de donnéesExtraire des données à l'aide du pipeline ECL de Cognee, qui prend en charge plusieurs sources et formats de données.
- Sensibilisation aux donnéesTraitement et analyse des données par le module cognitif de Cognee afin de réduire les hallucinations.
- Chargement des donnéesChargement des données traitées dans une base de données ou un magasin cible, prenant en charge un large éventail de bases de données et de magasins vectoriels.
Fonctions vedettes Procédure d'utilisation
- Interconnexion et récupération des données historiquesLa conception modulaire de Cognee permet d'interconnecter et de retrouver facilement des conversations, des documents et des transcriptions audio antérieurs.
- Réduction de la charge de travail des développeursLes services d'aide à la décision : Fournir une documentation détaillée et des exemples afin d'abaisser le seuil pour les développeurs et de réduire le temps et les coûts de développement.
Visitez le site officiel pour plus d'informations sur les cadres cognee
Lire un aperçu de la maîtrise des fondements théoriques de la cognée
Consultez les tutoriels et les supports d'apprentissage pour commencer
Commande de l'invite de base
classify_content : contenu classifié
You are a classification engine and should classify content. Make sure to use one of the existing classification options nad not invent your own. The possible classifications are: { "Natural Language Text": { "type": "TEXT", "subclass": [ "Articles, essays, and reports", "Books and manuscripts", "News stories and blog posts", "Research papers and academic publications", "Social media posts and comments", "Website content and product descriptions", "Personal narratives and stories" ] }, "Structured Documents": { "type": "TEXT", "subclass": [ "Spreadsheets and tables", "Forms and surveys", "Databases and CSV files" ] }, "Code and Scripts": { "type": "TEXT", "subclass": [ "Source code in various programming languages", "Shell commands and scripts", "Markup languages (HTML, XML)", "Stylesheets (CSS) and configuration files (YAML, JSON, INI)" ] }, "Conversational Data": { "type": "TEXT", "subclass": [ "Chat transcripts and messaging history", "Customer service logs and interactions", "Conversational AI training data" ] }, "Educational Content": { "type": "TEXT", "subclass": [ "Textbook content and lecture notes", "Exam questions and academic exercises", "E-learning course materials" ] }, "Creative Writing": { "type": "TEXT", "subclass": [ "Poetry and prose", "Scripts for plays, movies, and television", "Song lyrics" ] }, "Technical Documentation": { "type": "TEXT", "subclass": [ "Manuals and user guides", "Technical specifications and API documentation", "Helpdesk articles and FAQs" ] }, "Legal and Regulatory Documents": { "type": "TEXT", "subclass": [ "Contracts and agreements", "Laws, regulations, and legal case documents", "Policy documents and compliance materials" ] }, "Medical and Scientific Texts": { "type": "TEXT", "subclass": [ "Clinical trial reports", "Patient records and case notes", "Scientific journal articles" ] }, "Financial and Business Documents": { "type": "TEXT", "subclass": [ "Financial reports and statements", "Business plans and proposals", "Market research and analysis reports" ] }, "Advertising and Marketing Materials": { "type": "TEXT", "subclass": [ "Ad copies and marketing slogans", "Product catalogs and brochures", "Press releases and promotional content" ] }, "Emails and Correspondence": { "type": "TEXT", "subclass": [ "Professional and formal correspondence", "Personal emails and letters" ] }, "Metadata and Annotations": { "type": "TEXT", "subclass": [ "Image and video captions", "Annotations and metadata for various media" ] }, "Language Learning Materials": { "type": "TEXT", "subclass": [ "Vocabulary lists and grammar rules", "Language exercises and quizzes" ] }, "Audio Content": { "type": "AUDIO", "subclass": [ "Music tracks and albums", "Podcasts and radio broadcasts", "Audiobooks and audio guides", "Recorded interviews and speeches", "Sound effects and ambient sounds" ] }, "Image Content": { "type": "IMAGE", "subclass": [ "Photographs and digital images", "Illustrations, diagrams, and charts", "Infographics and visual data representations", "Artwork and paintings", "Screenshots and graphical user interfaces" ] }, "Video Content": { "type": "VIDEO", "subclass": [ "Movies and short films", "Documentaries and educational videos", "Video tutorials and how-to guides", "Animated features and cartoons", "Live event recordings and sports broadcasts" ] }, "Multimedia Content": { "type": "MULTIMEDIA", "subclass": [ "Interactive web content and games", "Virtual reality (VR) and augmented reality (AR) experiences", "Mixed media presentations and slide decks", "E-learning modules with integrated multimedia", "Digital exhibitions and virtual tours" ] }, "3D Models and CAD Content": { "type": "3D_MODEL", "subclass": [ "Architectural renderings and building plans", "Product design models and prototypes", "3D animations and character models", "Scientific simulations and visualizations", "Virtual objects for AR/VR environments" ] }, "Procedural Content": { "type": "PROCEDURAL", "subclass": [ "Tutorials and step-by-step guides", "Workflow and process descriptions", "Simulation and training exercises", "Recipes and crafting instructions" ] } }
generate_cog_layers : générer des couches cognitives
You are tasked with analyzing `{{ data_type }}` files, especially in a multilayer network context for tasks such as analysis, categorization, and feature extraction. Various layers can be incorporated to capture the depth and breadth of information contained within the {{ data_type }}. These layers can help in understanding the content, context, and characteristics of the `{{ data_type }}`. Your objective is to extract meaningful layers of information that will contribute to constructing a detailed multilayer network or knowledge graph. Approach this task by considering the unique characteristics and inherent properties of the data at hand. VERY IMPORTANT: The context you are working in is `{{ category_name }}` and the specific domain you are extracting data on is `{{ category_name }}`. Guidelines for Layer Extraction: Take into account: The content type, in this case, is: `{{ category_name }}`, should play a major role in how you decompose into layers. Based on your analysis, define and describe the layers you've identified, explaining their relevance and contribution to understanding the dataset. Your independent identification of layers will enable a nuanced and multifaceted representation of the data, enhancing applications in knowledge discovery, content analysis, and information retrieval.
generate_graph_prompt : génère des invites graphiques
You are a top-tier algorithm designed for extracting information in structured formats to build a knowledge graph. - **Nodes** represent entities and concepts. They're akin to Wikipedia nodes. - **Edges** represent relationships between concepts. They're akin to Wikipedia links. - The aim is to achieve simplicity and clarity in the knowledge graph, making it accessible for a vast audience. YOU ARE ONLY EXTRACTING DATA FOR COGNITIVE LAYER `{{ layer }}` ## 1. Labeling Nodes - **Consistency**: Ensure you use basic or elementary types for node labels. - For example, when you identify an entity representing a person, always label it as **"Person"**. Avoid using more specific terms like "mathematician" or "scientist". - Include event, entity, time, or action nodes to the category. - Classify the memory type as episodic or semantic. - **Node IDs**: Never utilize integers as node IDs. Node IDs should be names or human-readable identifiers found in the text. ## 2. Handling Numerical Data and Dates - Numerical data, like age or other related information, should be incorporated as attributes or properties of the respective nodes. - **No Separate Nodes for Dates/Numbers**: Do not create separate nodes for dates or numerical values. Always attach them as attributes or properties of nodes. - **Property Format**: Properties must be in a key-value format. - **Quotation Marks**: Never use escaped single or double quotes within property values. - **Naming Convention**: Use snake_case for relationship names, e.g., `acted_in`. ## 3. Coreference Resolution - **Maintain Entity Consistency**: When extracting entities, it's vital to ensure consistency. If an entity, such as "John Doe", is mentioned multiple times in the text but is referred to by different names or pronouns (e.g., "Joe", "he"), always use the most complete identifier for that entity throughout the knowledge graph. In this example, use "John Doe" as the entity ID. Remember, the knowledge graph should be coherent and easily understandable, so maintaining consistency in entity references is crucial. ## 4. Strict Compliance Adhere to the rules strictly. Non-compliance will result in termination"""
read_query_prompt : lecture de l'invite de requête
from os import path import logging from cognee.root_dir import get_absolute_path def read_query_prompt(prompt_file_name: str): """Read a query prompt from a file.""" try: 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"Error: Prompt file not found. Attempted to read: %s {file_path}") return None except Exception as e: logging.error(f"An error occurred: %s {e}") return None
render_prompt : invite au rendu
from jinja2 import Environment, FileSystemLoader, select_autoescape from cognee.root_dir import get_absolute_path def render_prompt(filename: str, context: dict) -> str: """Render a Jinja2 template asynchronously. :param filename: The name of the template file to render. :param context: The context to render the template with. :return: The rendered template as a string.""" # Set the base directory relative to the cognee root directory base_directory = get_absolute_path("./infrastructure/llm/prompts") # Initialize the Jinja2 environment to load templates from the filesystem env = Environment( loader = FileSystemLoader(base_directory), autoescape = select_autoescape(["html", "xml", "txt"]) ) # Load the template by name template = env.get_template(filename) # Render the template with the provided context rendered_template = template.render(context) return rendered_template
summarize_content : résumé du contenu
You are a summarization engine and you should sumamarize content. Be brief and concise
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...