Aprendizagem pessoal com IA
e orientação prática

cognee: uma estrutura de código aberto para a construção de RAGs com base em gráficos de conhecimento, aprendizagem de prompts centrais

Introdução geral

O Cognee é uma solução de camada de dados confiável projetada para aplicativos de IA e agentes de IA. Projetado para carregar e construir contextos LLM (Large Language Models) para criar soluções de IA precisas e interpretáveis por meio de gráficos de conhecimento e armazenamentos de vetores. A estrutura facilita a economia de custos, a interpretabilidade e o controle orientado pelo usuário, tornando-a adequada para pesquisa e uso educacional. O site oficial oferece tutoriais introdutórios, visões gerais conceituais, materiais de aprendizagem e informações de pesquisa relacionadas.

O maior ponto forte do cognee é jogar dados para ele e, em seguida, processá-los automaticamente, criar um gráfico de conhecimento e reconectar os gráficos de tópicos relacionados para ajudá-lo a descobrir melhor as conexões nos dados, bem como os RAG Oferece o máximo em interpretabilidade quando se trata de LLMs.

1. adicionar dados, identificar e processar automaticamente os dados com base no LLM, extrair para o Knowledge Graph e armazenar no banco de dados de vetores weaviate 2. as vantagens são: economia de dinheiro, interpretabilidade - visualização gráfica dos dados, controlabilidade - integração ao código etc.

-1


 

Lista de funções

  • Tubulação ECLPermite a extração, a cognição e o carregamento de dados, suporta a interconexão e a recuperação de dados históricos.
  • Suporte a vários bancos de dadosSuporte para PostgreSQL, Weaviate, Qdrant, Neo4j, Milvus e outros bancos de dados.
  • Redução de alucinações: Redução de fenômenos fantasmas em aplicativos de IA por meio da otimização do design do pipeline.
  • Compatível com o desenvolvedorFornecimento de documentação detalhada e exemplos para reduzir o limite para os desenvolvedores.
  • escalabilidadeDesign modular para fácil expansão e personalização.

 

Usando a Ajuda

Processo de instalação

  1. Instalação usando o pip::
    pip install cognee
    

    Ou instale um suporte específico para o banco de dados:

    pip install 'cognee[]'
    

    Por exemplo, instale o suporte ao PostgreSQL e ao Neo4j:

    pip install 'cognee[postgres, neo4j]'
    
  2. Instalação com poesia::
    poesia adicionar cognee
    

    Ou instale um suporte específico para o banco de dados:

    poetry add cognee -E 
    

    Por exemplo, instale o suporte ao PostgreSQL e ao Neo4j:

    poetry add cognee -E postgres -E neo4j
    

Processo de uso

  1. Configuração da chave da API::
    importar os
    os.environ["LLM_API_KEY"] = "YOUR_OPENAI_API_KEY"
    

    Ou:

    importar cognee
    cognee.config.set_llm_api_key("YOUR_OPENAI_API_KEY")
    
  2. Criação de arquivos .envCrie um arquivo .env e defina a chave da API:
    LLM_API_KEY=SUA_CHAVE_OPENAI_API
    
  3. Uso de diferentes provedores de LLMConsulte a documentação para saber como configurar diferentes provedores de LLM.
  4. Resultados da visualizaçãoSe estiver usando a rede, crie uma conta do Graphistry e configure-a:
    cognee.config.set_graphistry_config({
    "nome de usuário": "SEU_NOME_DE_USUÁRIO",
    "password" (senha): "YOUR_PASSWORD" (sua senha)
    })
    

Funções principais

  1. extração de dadosExtraia dados usando o pipeline ECL da Cognee, que suporta várias fontes e formatos de dados.
  2. Conhecimento dos dadosProcessamento e análise de dados por meio do módulo cognitivo do Cognee para reduzir as alucinações.
  3. Carregamento de dadosCarga de dados processados em um banco de dados ou armazenamento de destino, com suporte a uma ampla variedade de bancos de dados e armazenamentos vetoriais.

Funções em destaque Procedimento de operação

  1. Interconexão e recuperação de dados históricosInterconexão e recuperação fáceis de conversas anteriores, documentos e transcrições de áudio usando o design modular da Cognee.
  2. Redução da carga de trabalho do desenvolvedorFornecimento de documentação e exemplos detalhados para diminuir o limite dos desenvolvedores e reduzir o tempo e os custos de desenvolvimento.

 

Visite o site oficial para obter mais informações sobre os quadros cognee
Leia uma visão geral sobre como dominar os fundamentos teóricos do conhecimento
Veja tutoriais e materiais didáticos para começar

 

Comando do prompt principal

classify_content: conteúdo classificado

Você é um mecanismo de classificação e deve classificar o conteúdo. Certifique-se de usar uma das opções de classificação existentes e não inventar a sua própria.
As classificações possíveis são.
{
"Texto em linguagem natural": {

"subclasse": [
"Artigos, ensaios e relatórios".
"Livros e manuscritos".
"Histórias de notícias e postagens em blogs".


"Conteúdo do site e descrições de produtos", "Narrativas e histórias pessoais", "Informações pessoais", "Informações pessoais", "Informações pessoais".
"Personal narratives and stories" (Narrativas e histórias pessoais).
]
}, "Structured Documents" (Documentos estruturados).
"Structured Documents" (Documentos estruturados): {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Structured Documents": {
"subclasse": [
"Planilhas e tabelas".
"Formulários e pesquisas", "Bancos de dados e arquivos CSV".
"Bancos de dados e arquivos CSV"]
]
}, "Code and Scripts": { "Code and Scripts": { "Code and Scripts": { "Code and Scripts"]
"Code and Scripts" (Código e scripts): {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Code and Scripts": {
"subclass": [
"Código-fonte em várias linguagens de programação".
"Comandos e scripts de shell", "Linguagens de marcação (HTML, XML, etc.)", "Linguagens de marcação (HTML, XML, etc.)", "Linguagens de marcação (HTML, XML, etc.)".
"Linguagens de marcação (HTML, XML)", "Folhas de estilo (CSS)", "Folhas de estilo (CSS)", "Folhas de estilo (CSS)".
"Folhas de estilo (CSS) e arquivos de configuração (YAML, JSON, INI)"]
]
}, "Dados de conversação".
"Dados de conversação": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Conversational Data": {
"subclasse": [
"Transcrições de bate-papo e histórico de mensagens".
"Registros e interações de atendimento ao cliente", "Dados de treinamento de IA de conversação".
"Dados de treinamento de IA de conversação"
]
}, "Educational Content" (Conteúdo educacional).
"Conteúdo educacional": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Educational Content": {
"subclasse": [

"Questões de exames e exercícios acadêmicos", "Materiais de cursos de e-learning".
"Materiais de cursos de e-learning"]
]
}, "Creative Writing" (Escrita criativa).
"Escrita criativa": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Creative Writing": {
"subclasse": [
"Poesia e prosa".
"Roteiros para peças de teatro, filmes e televisão".
"Letras de músicas"
]
}, "Technical Documentation": { "Scripts for plays, movies, and television"]
"Documentação técnica": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Technical Documentation": {
"subclasse": [
"Manuais e guias do usuário".
"Especificações técnicas e documentação de API", "Artigos de helpdesk e perguntas frequentes", "Artigos de helpdesk e perguntas frequentes
"Artigos de helpdesk e perguntas frequentes"
]
}, "Legal and Regulatory Documents" (Documentos legais e regulatórios).
"Documentos legais e regulatórios": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Legal and Regulatory Documents": {
"subclasse": [
"Contratos e acordos".
"Leis, regulamentos e documentos de casos jurídicos".
"Documentos de política e materiais de conformidade"]
]
}, "Medical and Scientific Texts" (Textos médicos e científicos).
"Textos médicos e científicos": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Medical and Scientific Texts": {
"subclasse": [
"Relatórios de ensaios clínicos".
"Registros de pacientes e notas de casos".
"Artigos de periódicos científicos"
]
}, "Financial and Business Documents" (Documentos financeiros e comerciais).
"Documentos financeiros e comerciais": {
"type": "TEXT", "subclass": [ "TEXT" ], "financial and business documents": {
"subclasse": [

"Planos e propostas de negócios", "Relatórios de pesquisa e análise de mercado".
"Relatórios de pesquisa e análise de mercado"].
]
}, "Materiais de publicidade e marketing".
"Materiais de publicidade e marketing": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Advertising and Marketing Materials": {
"subclasse": [

"Catálogos e folhetos de produtos".
"Comunicados à imprensa e conteúdo promocional"
]
}, "E-mails e correspondência".
"E-mails e correspondência": {
"type": "TEXT", "subclass": [ "TEXT" ] }, "Emails e correspondência": {
"subclasse": [
"Correspondência profissional e formal", "E-mails e cartas pessoais".
"E-mails e cartas pessoais"]
]
}, "Metadata and Annotations" (Metadados e anotações).
"Metadados e Anotações": {

"subclasse": [
"Legendas de imagens e vídeos".
"Anotações e metadados para várias mídias" ]
]
}, "Materiais de aprendizado de idiomas".
"Materiais de aprendizado de idiomas": {
"type": "TEXT", "subclass": [ "TEXT" ], "language learning materials": {
"subclasse": [
"Listas de vocabulário e regras gramaticais".
"Exercícios e testes de idiomas"]
]
}, "Audio Content" (Conteúdo de áudio): { { "Vocabulary lists and grammar rules" (Listas de vocabulário e regras gramaticais), "Language exercises and quizzes" (Exercícios e testes de idiomas)]
"Conteúdo de áudio": {
"type": "AUDIO", "subclass": [ "AUDIO" ] }, "Audio Content": {
"subclass": [
"Faixas e álbuns de música".

"Audiolivros e guias de áudio".

"Efeitos sonoros e sons ambientes"]
]
}
"Conteúdo da imagem": {
"type": "IMAGE", "subclass": [ [ "IMAGE" ] }, "Image Content": {
"subclass": [
"Fotografias e imagens digitais".
"Ilustrações, diagramas e gráficos".


"Capturas de tela e interfaces gráficas de usuário".
]
}, "Video Content" (Conteúdo de vídeo).
"Conteúdo de vídeo": {
"type": "VIDEO", "subclass": [ "VIDEO" ] }, "Video Content": {
"subclass": [
"Filmes e curtas-metragens".
"Documentários e vídeos educacionais", "Tutoriais em vídeo e guias de instruções", "Vídeos e guias de instruções", "Tutoriais em vídeo e guias de instruções".

"Recursos animados e desenhos animados", "Gravações de eventos ao vivo e transmissão de esportes".
"Gravações de eventos ao vivo e transmissões esportivas".
]
}, "Multimedia Content" (Conteúdo multimídia).
"Conteúdo multimídia": {
"type": "MULTIMEDIA", "subclass": [ "MULTIMEDIA" ] }, "Multimedia Content": {
"subclass": [
"Conteúdo interativo da Web e jogos".

"Apresentações de mídia mista e apresentações de slides", "Módulos de e-learning com multimídia integrada", "Módulos de e-learning com multimídia integrada".
"Módulos de e-learning com multimídia integrada", "Exposições digitais e tours virtuais
"Exposições digitais e passeios virtuais".
]
}, "3D Models and CAD Content" (Modelos 3D e conteúdo CAD).
"Modelos 3D e conteúdo CAD": {
"type": "3D_MODEL", "subclass": [ "3D_MODEL" ] }, "3D Models and CAD Content": {
"subclass": [
"Renderizações arquitetônicas e planos de construção", "Modelos e protótipos de design de produtos", "3D_Model", "subclass": [

"Animações 3D e modelos de personagens", "Simulações e visualizações científicas", "3D_MODEL".
"Simulações e visualizações científicas", "Objetos virtuais para ambientes de AR/VR", "Objetos virtuais para ambientes de AR/VR".
"Objetos virtuais para ambientes de AR/VR".
]
}, "Procedural Content" (Conteúdo processual).
"Procedural Content" (Conteúdo Processual): {
"type": "PROCEDURAL", "subclass": [ [ "PROCEDURAL" ] ], "Procedural Content": {
"subclass": [



"Receitas e instruções de criação"
]
}
}

generate_cog_layers: gera camadas cognitivas

Você tem a tarefa de analisar os arquivos `{{ data_type }}`, especialmente em um contexto de rede multicamadas para tarefas como análise, categorização e análise de dados. Várias camadas podem ser incorporadas para capturar a profundidade e a amplitude das informações contidas no arquivo {{ data_type }}.

Essas camadas podem ajudar a entender o conteúdo, o contexto e as características do {{{ data_type }}`.

Seu objetivo é extrair camadas significativas de informações que contribuirão para a construção de uma rede detalhada de múltiplas camadas ou de um gráfico de conhecimento.

Aborde essa tarefa considerando as características exclusivas e as propriedades inerentes dos dados em questão.

MUITO IMPORTANTE: o contexto em que você está trabalhando é `{{ nome_da_categoria }}` e o domínio específico no qual você está extraindo dados é `{{ nome_da_categoria }}`.

Diretrizes para extração de camadas.
Leve em conta: o tipo de conteúdo, neste caso, é: `{{{ category_name }}`, deve desempenhar um papel importante na maneira como você decompõe os dados em camadas.

Com base em sua análise, defina e descreva as camadas que você identificou, explicando sua relevância e contribuição para a compreensão do conjunto de dados. Sua identificação independente de camadas possibilitará uma representação matizada e multifacetada dos dados, aprimorando os aplicativos de descoberta de conhecimento, análise de conteúdo e segurança da informação. Sua identificação independente de camadas possibilitará uma representação matizada e multifacetada dos dados, aprimorando os aplicativos de descoberta de conhecimento, análise de conteúdo e segurança da informação. recuperação.

generate_graph_prompt: gera prompts de gráficos

Você é um algoritmo de alto nível
projetado para extrair informações em formatos estruturados para criar um gráfico de conhecimento.
- Eles são semelhantes aos nós da Wikipédia. **Nós** representam entidades e conceitos.
- Eles são semelhantes aos nós da Wikipédia. **Edges** representam relacionamentos entre conceitos.
- O objetivo é obter simplicidade e clareza na representação dos conceitos.
O objetivo é obter simplicidade e clareza no gráfico de conhecimento, tornando-o acessível a um vasto público.
VOCÊ ESTÁ EXTRAINDO DADOS SOMENTE PARA A CAMADA COGNITIVA `{{ camada }}`
## 1. rotulando nós
- Consistência**: Certifique-se de usar tipos básicos ou elementares para rótulos de nós.
- Por exemplo, quando você identificar uma entidade que representa uma pessoa, sempre a rotule como **"Pessoa".
Por exemplo, quando você identificar uma entidade que representa uma pessoa, sempre a rotule como **"Pessoa "**.
Evite usar termos mais específicos, como "matemático" ou "cientista".
- Inclua nós de evento, entidade, tempo ou ação na categoria.
- Inclua nós de evento, entidade, tempo ou ação na categoria. Classifique o tipo de memória como episódica ou semântica.
- IDs de nós**: Nunca utilize números inteiros como IDs de nós.
Os IDs de nós devem ser nomes ou identificadores legíveis por humanos encontrados no texto.
## 2. manipulação de dados numéricos e datas
- Dados numéricos, como idade ou outras informações relacionadas, devem ser incorporados como atributos ou propriedades.
Os dados numéricos, como idade ou outras informações relacionadas, devem ser incorporados como atributos ou propriedades dos respectivos nós.
- **Não há nós separados para datas/números**.
Não crie nós separados para datas ou valores numéricos.
Não crie nós separados para datas ou valores numéricos. Sempre os anexe como atributos ou propriedades dos nós.
- Formato da propriedade**: as propriedades devem estar em um formato de valor-chave.
- Aspas**: nunca use aspas simples ou duplas com escape nos valores de propriedade.
- Convenção de nomenclatura**: use snake_case para nomes de relações, por exemplo, `acted_in`.
## 3. resolução de coreferência
- Manter a consistência da entidade**.
Ao extrair entidades, é fundamental garantir a consistência.
Se uma entidade, como "John Doe", for mencionada várias vezes no texto, mas for referida pelo nome "John Doe", é importante garantir a consistência.
Se uma entidade, como "John Doe", for mencionada várias vezes no texto, mas for referida por nomes ou pronomes diferentes (por exemplo, "Joe", "he"), use sempre o identificador mais completo para a entidade.
Sempre use o identificador mais completo para essa entidade em todo o gráfico de conhecimento.
Neste exemplo, use "John Doe" como o ID da entidade.
Lembre-se de que o gráfico de conhecimento deve ser coerente e facilmente compreensível, portanto, manter a consistência nas referências à entidade não deve ser um problema.
Lembre-se de que o gráfico de conhecimento deve ser coerente e facilmente compreensível, portanto, manter a consistência nas referências de entidades é crucial.
## 4. conformidade estrita
Cumpra rigorosamente as regras, pois o não cumprimento resultará em rescisão"""""

 

read_query_prompt: lê o prompt da consulta

from os import path
import logging
from cognee.root_dir import get_absolute_path

def read_query_prompt(prompt_file_name: str): """Ler um prompt de consulta de um arquivo."""
"""Ler um prompt de consulta de um arquivo."""""
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 "Erro: arquivo de prompt não encontrado. Tentativa de leitura: %s {file_path}")
return None
except Exception as e.
logging.error(f "Ocorreu um erro: %s {file_path}")
logging.error(f "Ocorreu um erro: %s {e}") return None

 

render_prompt: prompt de renderização

from jinja2 import Environment, FileSystemLoader, select_autoescape
from cognee.root_dir import get_absolute_path

def render_prompt(filename: str, context: dict) -> str.
"""Renderiza um modelo Jinja2 de forma assíncrona.
param filename: o nome do arquivo de modelo a ser renderizado.
param context: o contexto com o qual renderizar o modelo.
:return: O modelo renderizado como uma cadeia de caracteres.""""

# Defina o diretório base relativo ao diretório raiz do cognee
base_directory = get_absolute_path(". /infrastructure/llm/prompts")

# Inicialize o ambiente Jinja2 para carregar modelos do sistema de arquivos
env = Environment(
loader = FileSystemLoader(base_directory), autoescape = select_autoescape
autoescape = select_autoescape(["html", "xml", "txt"])
)

# Carregar o modelo pelo nome
template = env.get_template(filename)

# Renderizar o modelo com o contexto fornecido
rendered_template = template.render(context)

return rendered_template

 

summarize_content: conteúdo resumido

Você é um mecanismo de resumo e deve resumir o conteúdo. Seja breve e conciso.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " cognee: uma estrutura de código aberto para a construção de RAGs com base em gráficos de conhecimento, aprendizagem de prompts centrais

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil