{"name":"Memoripy: An AI Memory Layer for Context-Aware Applications","description":"Memoripy is a Python library designed to provide an AI memory layer for context-aware applications. It offers both short-term and long-term storage, semantic clustering, and optional memory decay. This robust tool helps AI systems manage and retrieve relevant information efficiently, supporting various LLM APIs like OpenAI and Ollama.","github":"https://github.com/caspianmoon/memoripy","url":"https://osrepos.com/repo/caspianmoon-memoripy","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/caspianmoon-memoripy","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/caspianmoon-memoripy.md","json":"https://osrepos.com/repo/caspianmoon-memoripy.json","topics":["ai","llm","memory","memory-management","Python","artificial-intelligence","python-library"],"keywords":["ai","llm","memory","memory-management","Python","artificial-intelligence","python-library"],"stars":null,"summary":"Memoripy is a Python library designed to provide an AI memory layer for context-aware applications. It offers both short-term and long-term storage, semantic clustering, and optional memory decay. This robust tool helps AI systems manage and retrieve relevant information efficiently, supporting various LLM APIs like OpenAI and Ollama.","content":"## Introdução\nMemoripy é uma poderosa biblioteca Python que fornece uma camada avançada de memória de IA para aplicações que exigem gerenciamento de contexto sofisticado. Ela aborda o desafio de manter o estado conversacional e informações relevantes ao longo do tempo, oferecendo armazenamento de memória de curto e longo prazo. Projetada para aplicações orientadas por IA, Memoripy suporta integração perfeita com APIs populares de LLM, como OpenAI, Azure OpenAI, OpenRouter e Ollama, permitindo um gerenciamento inteligente de memória através de recursos como recuperação contextual, decaimento de memória e agrupamento hierárquico.\n\n## Instalação\nPara começar com Memoripy, você pode instalá-lo facilmente usando pip:\n\nbash\npip install memoripy\n\n\n## Exemplos\nO exemplo a seguir demonstra como inicializar `MemoryManager`, armazenar interações, recuperar memórias relevantes e gerar respostas usando Memoripy. Este script mostra a funcionalidade principal para construir aplicações de IA sensíveis ao contexto.\n\npython\nfrom memoripy import MemoryManager, JSONStorage\nfrom memoripy.implemented_models import OpenAIChatModel, OllamaEmbeddingModel\n\ndef main():\n    # Replace 'your-api-key' with your actual OpenAI API key\n    api_key = \"your-key\"\n    if not api_key:\n        raise ValueError(\"Please set your OpenAI API key.\")\n\n    # Define chat and embedding models\n    chat_model_name = \"gpt-4o-mini\"  # Specific chat model name\n    embedding_model_name = \"mxbai-embed-large\"  # Specific embedding model name\n\n    # Choose your storage option\n    storage_option = JSONStorage(\"interaction_history.json\")\n    # Or use in-memory storage:\n    # from memoripy import InMemoryStorage\n    # storage_option = InMemoryStorage()\n\n    # Initialize the MemoryManager with the selected models and storage\n    memory_manager = MemoryManager(\n        OpenAIChatModel(api_key, chat_model_name),\n        OllamaEmbeddingModel(embedding_model_name),\n        storage=storage_option\n    )\n\n    # New user prompt\n    new_prompt = \"My name is Khazar\"\n\n    # Load the last 5 interactions from history (for context)\n    short_term, _ = memory_manager.load_history()\n    last_interactions = short_term[-5:] if len(short_term) >= 5 else short_term\n\n    # Retrieve relevant past interactions, excluding the last 5\n    relevant_interactions = memory_manager.retrieve_relevant_interactions(new_prompt, exclude_last_n=5)\n\n    # Generate a response using the last interactions and retrieved interactions\n    response = memory_manager.generate_response(new_prompt, last_interactions, relevant_interactions)\n\n    # Display the response\n    print(f\"Generated response:\\n{response}\")\n\n    # Extract concepts for the new interaction\n    combined_text = f\"{new_prompt} {response}\"\n    concepts = memory_manager.extract_concepts(combined_text)\n\n    # Store this new interaction along with its embedding and concepts\n    new_embedding = memory_manager.get_embedding(combined_text)\n    memory_manager.add_interaction(new_prompt, response, new_embedding, concepts)\n\nif __name__ == \"__main__\":\n    main()\n\nEste exemplo demonstra o ciclo de vida completo de uma interação, desde a inicialização e processamento do prompt até a geração da resposta e o armazenamento da memória.\n\n## Porquê usar Memoripy?\nMemoripy oferece várias razões convincentes para desenvolvedores que constroem aplicações de IA:\n\n- **Gerenciamento de Memória Sofisticado**: Ele distingue inteligentemente entre memória de curto e longo prazo, garantindo que o contexto seja sempre relevante e atualizado.\n- **Recuperação Contextual**: Aproveitando embeddings, conceitos e associações baseadas em grafos, Memoripy recupera interações passadas altamente relevantes, melhorando significativamente a qualidade das respostas da IA.\n- **Memória Dinâmica**: Recursos como decaimento e reforço da memória garantem que memórias mais antigas e menos relevantes desapareçam, enquanto memórias frequentemente acessadas e importantes são fortalecidas, imitando processos de memória naturais.\n- **Organização Semântica**: O agrupamento hierárquico agrupa memórias semelhantes em grupos semânticos, tornando a recuperação mais eficiente e semanticamente coerente.\n- **Integração Flexível**: Com suporte para múltiplas APIs de LLM e embeddings, Memoripy é adaptável a vários ecossistemas de IA e escolhas de modelos.\n\n## Links\nExplore o repositório Memoripy no GitHub para mais detalhes, contribuições e atualizações:\n\n- [Repositório Memoripy no GitHub](https://github.com/caspianmoon/memoripy){:target=\"_blank\"}","metrics":{"detailViews":0,"githubClicks":1},"dates":{"published":null,"modified":"2026-07-05T07:27:47.000Z"}}