Introdução geral
O cognee é uma estrutura de código aberto projetada 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 favorece 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.
Lista de funções
Fornece informações introdutórias sobre o uso da estrutura do cognee
Explicar a estrutura conceitual e o aplicativo da Cognee
Explicação da relação custo-benefício das soluções de IA
Enfatizar a importância da IA interpretativa e do controle guiado pelo usuário
Usando a Ajuda
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.
{
"Natural Language Text": {
"type": "TEXT".
"subclasse": [
"Artigos, ensaios e relatórios".
"Livros e manuscritos".
"Histórias de notícias e postagens de blog".
"Trabalhos de pesquisa e publicações acadêmicas".
"Publicações e comentários em mídias sociais".
"Conteúdo do site e descrições de produtos".
"Narrativas e histórias pessoais"
]
},
"Structured Documents" (Documentos estruturados): {
"type": "TEXT".
"subclasse": [
"Planilhas e tabelas".
"Formulários e pesquisas".
"Bancos de dados e arquivos CSV"
]
},
"Code and Scripts": {
"type": "TEXT".
"subclasse": [
"Código-fonte em várias linguagens de programação".
"Comandos e scripts do shell".
"Linguagens de marcação (HTML, XML)".
"Folhas de estilo (CSS) e arquivos de configuração (YAML, JSON, INI)"
]
},
"Dados de conversação": {
"type": "TEXT".
"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"
]
},
"Conteúdo educacional": {
"type": "TEXT".
"subclasse": [
"Conteúdo do livro-texto e notas de aula".
"Perguntas de exames e exercícios acadêmicos".
"Materiais de cursos de e-learning"
]
},
"Escrita criativa": {
"type": "TEXT".
"subclasse": [
"Poesia e prosa".
"Roteiros para peças de teatro, filmes e televisão".
"Letras de músicas"
]
},
"Documentação técnica": {
"type": "TEXT".
"subclasse": [
"Manuais e guias do usuário".
"Especificações técnicas e documentação de API".
"Artigos de helpdesk e perguntas frequentes"
]
},
"Documentos legais e regulatórios": {
"type": "TEXT".
"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): {
"type": "TEXT".
"subclasse": [
"Relatórios de ensaios clínicos".
"Registros de pacientes e notas de casos".
"Artigos de periódicos científicos"
]
},
"Documentos financeiros e comerciais": {
"type": "TEXT".
"subclasse": [
"Relatórios e declarações financeiras".
"Planos e propostas de negócios".
"Relatórios de pesquisa e análise de mercado"
]
},
"Materiais de propaganda e marketing": {
"type": "TEXT".
"subclasse": [
"Cópias de anúncios e slogans de marketing".
"Catálogos e folhetos de produtos".
"Comunicados à imprensa e conteúdo promocional"
]
},
"Emails e correspondência": {
"type": "TEXT".
"subclasse": [
"Correspondência profissional e formal".
"E-mails e cartas pessoais"
]
},
"Metadados e Anotações": {
"type": "TEXT".
"subclasse": [
"Legendas de imagens e vídeos".
"Anotações e metadados para várias mídias"
]
},
"Materiais de aprendizado de idiomas": {
"type": "TEXT".
"subclasse": [
"Listas de vocabulário e regras gramaticais".
"Exercícios e testes de idiomas"
]
},
"Conteúdo de áudio": {
"type": "AUDIO".
"subclasse": [
"Faixas e álbuns de música".
"Podcasts e transmissões de rádio".
"Audiolivros e guias de áudio".
"Entrevistas e discursos gravados".
"Efeitos sonoros e sons ambientes"
]
},
"Image Content" (Conteúdo da imagem): {
"type": "IMAGE",
"subclasse": [
"Fotografias e imagens digitais".
"Ilustrações, diagramas e gráficos".
"Infográficos e representações visuais de dados".
"Obras de arte e pinturas".
"Capturas de tela e interfaces gráficas de usuário"
]
},
"Conteúdo do vídeo": {
"tipo": "VIDEO".
"subclasse": [
"Filmes e curtas-metragens".
"Documentários e vídeos educacionais".
"Tutoriais em vídeo e guias de instruções".
"Recursos de animação e desenhos animados".
"Gravações de eventos ao vivo e transmissões esportivas"
]
},
"Conteúdo multimídia": {
"type": "MULTIMEDIA".
"subclasse": [
"Jogos e conteúdo interativo da Web".
"Experiências de realidade virtual (VR) e realidade aumentada (AR)".
"Apresentações de mídia mista e apresentações de slides".
"Módulos de e-learning com multimídia integrada".
"Exposições digitais e tours virtuais"
]
},
"Modelos 3D e conteúdo CAD": {
"type": "3D_MODEL".
"subclasse": [
"Renderizações arquitetônicas e planos de construção".
"Modelos e protótipos de design de produtos".
"Animações 3D e modelos de personagens".
"Simulações e visualizações científicas".
"Objetos virtuais para ambientes de AR/VR".
]
},
"Conteúdo processual": {
"type": "PROCEDURAL".
"subclasse": [
"Tutoriais e guias passo a passo".
"Descrições de fluxo de trabalho e processos".
"Exercícios de simulação e treinamento".
"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 é `{{ category_name }}` e o domínio específico no qual você está extraindo dados é `{{ category_name }}`.
Diretrizes para extração de camadas.
Leve em consideração: o tipo de conteúdo, nesse caso, é: `{{ category_name }}`, deve desempenhar um papel importante na forma como você decompõe 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 as aplicações no conhecimento. Sua identificação independente de camadas permitirá uma representação matizada e multifacetada dos dados, aprimorando os aplicativos de descoberta de conhecimento, análise de conteúdo e recuperação de informações.
generate_graph_prompt: gera prompts de gráficos
Você é um algoritmo de primeira linha
projetado para extrair informações em formatos estruturados para criar um gráfico de conhecimento.
- Os nós** representam entidades e conceitos e são semelhantes aos nós da Wikipédia.
- As bordas** representam relações entre conceitos e são semelhantes aos links da Wikipédia.
- O objetivo é obter simplicidade e clareza na
O gráfico de conhecimento, tornando-o acessível a um vasto público.
VOCÊ ESTÁ EXTRAINDO DADOS SOMENTE PARA A CAMADA COGNITIVA `{{ layer }}`
## 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ê identifica uma entidade que representa uma pessoa.
sempre o 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.
- 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.
As IDs de nó 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 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.
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
- **Mantenha 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 é chamado por nomes ou pronomes diferentes (por exemplo, "Joe", "he"),
sempre usar o identificador mais completo para essa entidade em todo o gráfico de conhecimento.
Neste exemplo, use "John Doe" como a ID da entidade.
Lembre-se de que o gráfico de conhecimento deve ser coerente e facilmente compreensível, e os gráficos de conhecimento devem ser disponibilizados ao público.
portanto, é fundamental manter a consistência nas referências às entidades.
## 4. conformidade rigorosa
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
registro de importação
from cognee.root_dir import get_absolute_pathdef read_query_prompt(prompt_file_name: str).
"""Leia um prompt de consulta de um arquivo.""""
tentar.
file_path = path.join(get_absolute_path(". /infrastructure/llm/prompts"), prompt_file_name)with open(file_path, "r", encoding = "utf-8") as file.
retornar file.read()
exceto FileNotFoundError:
logging.error(f "Erro: O arquivo de prompt não foi encontrado. Tentativa de leitura: %s {file_path}")
retornar Nenhum
exceto Exception como e.
logging.error(f "Ocorreu um erro: %s {e}")
retornar Nenhum
render_prompt: prompt de renderização
from jinja2 import Environment, FileSystemLoader, select_autoescape
from cognee.root_dir import get_absolute_pathdef render_prompt(filename: str, context: dict) -> str.
"""Renderize 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 o modelo será renderizado.
:return: O modelo renderizado como uma string.""""# Defina o diretório base em relação 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(["html", "xml", "txt"])
)# Carregar o modelo por 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.