Você está sobrecarregado com as informações que coleta diariamente? Você costuma se perder em um mar de arquivos, vídeos, páginas da web e PDFs de descontos? E se houver uma maneira de indexar, pesquisar e até interagir perfeitamente com todo esse conteúdo como nunca antes? Bem-vindo ao futuro do gerenciamento de conhecimento pessoal: o projeto do agente do segundo cérebro AI.
A ideia inovadora do Segundo Cérebro de Tiago Forte revolucionou a forma como pensamos sobre a tomada de notas. Não se trata apenas de anotar ideias; trata-se de criar uma ferramenta poderosa que aprimora o aprendizado e a criatividade. Saiba mais sobre Construindo um Segundo Cérebro de Tiago Forte aqui.
Indexação automatizada: Chega de classificar arquivos manualmente! Indexe automaticamente o conteúdo dos seus arquivos markdown junto com os links contidos, como documentos PDF, vídeos do YouTube e páginas da web.
Mecanismo de pesquisa inteligente: faça perguntas sobre o seu conteúdo e nossa IA fornecerá respostas precisas, usando o robusto modelo de linguagem grande OpenAI. É como ter um assistente pessoal que conhece o seu conteúdo de dentro para fora!
Integração sem esforço: Quer você siga o método Second Brain ou tenha sua própria maneira única de fazer anotações, nosso sistema se integra perfeitamente ao seu estilo, ajudando você a aproveitar o verdadeiro poder de suas informações.
Produtividade aprimorada: gaste menos tempo organizando e mais tempo inovando. Ao acessar suas informações de forma mais rápida e eficiente, você pode se concentrar no que realmente importa.
Não deixe que suas anotações e conteúdo o sobrecarreguem. Faça deles seus aliados em crescimento, inovação e produtividade. Junte-se a nós na transformação da maneira como você gerencia seu conhecimento pessoal e dê o salto para o futuro.
Se você fizer anotações usando arquivos markdown como no método Second Brain ou usando seu próprio método, este projeto indexa automaticamente o conteúdo dos arquivos markdown e os links contidos (documentos PDF, vídeo do YouTube, páginas da web) e permite que você faça perguntas sobre seu conteúdo usando o OpenAI Large Language Model.
O sistema é construído sobre a estrutura LangChain e o armazenamento de vetores ChromaDB.
O sistema toma como entrada um diretório onde você armazena suas notas de remarcação. Por exemplo, faço minhas anotações com Obsidian. O sistema então processa qualquer alteração nesses arquivos automaticamente com o seguinte pipeline:
gráfico TD
A[Arquivos Markdown do seu editor]-->B[Arquivos de texto de markdown e ponteiros]-->C[Pedaços de texto]-->D[Banco de dados de vetores]-->E[Second Brain AI Agent]
De um arquivo markdown, transform_md.py extrai o texto do arquivo markdown e, dos links dentro do arquivo markdown, extrai pdf, url, vídeo do youtube e os transforma em texto. Há algum suporte para extrair dados históricos dos arquivos markdown: se houver uma seção ## History
ou o nome do arquivo contiver History
, o arquivo será dividido em várias partes de acordo com seções <day> <month> <year>
como ### 10 Sep 2023
.
A partir desses arquivos de texto, transform_txt.py divide esses arquivos de texto em pedaços, cria embeddings vetoriais e, em seguida, armazena esses embeddings vetoriais em um banco de dados vetorial.
O segundo agente cerebral usa o banco de dados vetorial para obter contexto para fazer a pergunta ao grande modelo de linguagem. Este processo é denominado geração aumentada de recuperação (RAG).
Na realidade, o processo é mais complexo do que um RAG padrão. É analisar a questão e depois usar uma cadeia diferente de acordo com a intenção:
fluxograma TD
A[Pergunta] --> C[/Obter Intenção/]
C --> E[Solicitação de Resumo] --> EA[/Extrair todos os pedaços/] --> EB[/Resumir pedaços/]
C --> F[pdf ou pesquisa de URL] --> FA[/Extrair URL/]
C --> D[Relatório de atividades]
C -> G [pergunta normal]
D --> DA[/Obter metadados do período/] --> DB[/Obter metadados do assunto/] --> DC[/Extrair pergunta sem tempo/] --> H[/Extrair documentos mais próximosndo banco de dados vetorial nfiltrado pelos metadados/]
G --> GA[/Pergunta recuada/] --> GB[/Extrair documentos mais próximosndo banco de dados de vetores/]
H --> Eu[/Use os documentos como contextopara fazer a pergunta ao LLM/]
GB --> eu
Você precisa de um intérprete Python 3, poetry
e inotify-tools
instaladas. Tudo isso foi testado no Fedora Linux 38 no meu laptop e no Ubuntu mais recente nos fluxos de trabalho de CI. Deixe-me saber se funciona no seu sistema.
Obtenha o código-fonte:
$ git clone https://github.com/flepied/second-brain-agent.git
Copie o arquivo .env de exemplo e edite-o de acordo com suas configurações:
$ cp example.env .env
Instale as dependências usando poesia:
$ poetry install
Há um bug entre poesia, tocha e pypi, para solucionar basta fazer:
$ poetry run pip install torch
Então para usar o virtualenv criado, faça:
$ poetry shell
Para instalar serviços systemd para gerenciar automaticamente os diferentes scripts quando o sistema operacional é iniciado, use o seguinte comando (precisa de acesso sudo):
$ ./install-systemd-services.sh
Para ver a saída dos serviços md e txt:
$ journalctl --unit=sba-md.service --user
$ journalctl --unit=sba-txt.service --user
$ ./similarity.py " What is LangChain? " type=notes
Use o armazenamento de vetores para encontrar novas conexões entre as notas:
$ ./smart_connections.py
Inicie este comando para acessar a IU da web:
$ streamlit run second_brain_agent.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8502
Network URL: http://192.168.121.112:8502
Aqui está um exemplo:
Instale as dependências extras usando poesia:
$ poetry install --with test
E então execute os testes, assim:
$ poetry run pytest
Antes de enviar um PR, certifique-se de ativar o pré-comprometimento:
poetry run pre-commit install