Introdução geral
O Memary é um projeto inovador de código aberto voltado para o fornecimento de soluções de gerenciamento de memória de longo prazo para inteligências autônomas. O projeto ajuda as inteligências a romper as limitações das janelas de contexto tradicionais para obter uma experiência de interação mais inteligente por meio de gráficos de conhecimento e módulos de memória especializados. O Memary usa um mecanismo de geração de memória automatizada para atualizar automaticamente as memórias durante as interações da inteligência e exibe essas memórias em um painel unificado. O sistema é compatível com várias configurações de modelos, incluindo modelos Llama e LLaVA executados localmente, bem como modelos GPT na nuvem. Além disso, o Memary oferece suporte a vários gráficos, permitindo que os desenvolvedores criem instâncias independentes de inteligências para diferentes usuários, possibilitando o gerenciamento personalizado da memória.
Lista de funções
- Geração e atualização automatizadas de memória
- Armazenamento e recuperação de gráficos de conhecimento
- Entidades de rastreamento de fluxo de memória e registros de data e hora
- Frequência e pontualidade do gerenciamento do EKS (Entity Knowledge Store)
- Métodos de recuperação recursiva para otimizar a pesquisa no gráfico de conhecimento
- O raciocínio multihop oferece suporte ao processamento de consultas complexas
- Suporte a extensões de ferramentas personalizadas
- Gerenciamento de mapeamento de corpos com inteligência múltipla
- Compactação de memória e otimização da janela de contexto
- Extração de tópicos e classificação de entidades
- Função de análise de linha do tempo
Usando a Ajuda
1. configuração da instalação
1.1 Requisitos básicos
- Versão necessária do Python: <= 3.11.9
- Recomenda-se usar um ambiente virtual para a instalação
1.2 Método de instalação
a) Instale usando o pip.
pip install memary
b) Instalação local.
- Criar e ativar um ambiente virtual
- Dependências de instalação.
pip install -r requirements.txt
1.3 Configuração do modelo
O Memary suporta dois modos de operação:
- Modo local (padrão): use Ollama modelo operacional
- LLM: Llama 3 8B/40B (recomendado)
- Modelo visual: LLaVA (recomendado)
- Modo de nuvem:
- LLM: gpt-3.5-turbo
- Modelo de visão: gpt-4-vision-preview
2. preparação ambiental
2.1 Configuração do arquivo .env
OPENAI_API_KEY="SUA_CHAVE_API"
PERPLEXITY_API_KEY="SUA_API_KEY"
GOOGLEMAPS_API_KEY="SUA_API_KEY"
ALPHA_VANTAGE_API_KEY="SUA_API_KEY"
Configuração do banco de dados # (um ou outro):
FALKORDB_URL="falkor://[[nome de usuário]:[senha]]@[falkor_host_url]:porta"
ou
NEO4J_PW="YOUR_NEO4J_PW"
NEO4J_URL="YOUR_NEO4J_URL"
2.2 Atualizar a configuração do usuário
- compilador
streamlit_app/data/user_persona.txt
Definição das características do usuário - Opcional: Modificar
streamlit_app/data/system_persona.txt
Ajuste das características do sistema
3. uso básico
3.1 Inicialização do aplicativo
cd streamlit_app
streamlit run app.py
3.2 Exemplos de código
from memary.agent.chat_agent import ChatAgent
# Inicialização de um ChatAgent
chat_agent = ChatAgent(
"Agente pessoal",
memory_stream_json,
entity_knowledge_store_json,
system_persona_txt,
user_persona_txt,
past_chat_json.
)
# Adição de uma ferramenta personalizada
def multiply(a: int, b: int) -> int.
"""Ferramenta de cálculo de multiplicação""""
retornar a * b
chat_agent.add_tool({"multiply": multiply})
# Remover a ferramenta
chat_agent.remove_tool("multiply")
4. configuração de inteligência múltipla
Aplica-se ao usar o banco de dados FalkorDB:
# Inteligência pessoal do usuário A
chat_agent_user_a = ChatAgent(
"Agente pessoal",
memory_stream_json_user_a,
entity_knowledge_store_json_user_a,
system_persona_txt_user_a,
user_persona_txt_user_a,
past_chat_json_user_a,
user_id='user_a_id'
)
# Inteligência pessoal para o usuário B
chat_agent_user_b = ChatAgent(
"Agente pessoal",
memory_stream_json_user_b,
entity_knowledge_store_json_user_b,
system_persona_txt_user_b,
user_persona_txt_user_b,
past_chat_json_user_b,
user_id='user_b_id'
)
5. recursos de gerenciamento de memória
5.1 Fluxo de memória
- Capturar automaticamente todas as entidades e seus registros de data e hora
- Suporte para análise de linha do tempo
- Função de extração de tema
5.2 Armazenamento de conhecimento de entidades
- Acompanhamento da frequência e pontualidade das citações de entidades
- Classificação da relevância da entidade
- função de classificação de entidades
- Análises de variação temporal
5.3 Funções de mapeamento de conhecimento
- Otimização de pesquisa recursiva
- Suporte ao raciocínio de vários saltos
- Mecanismo de atualização automática