1.来源
点击memory即可观察到。
from langchain.memory.chat_memory import BaseChatMemory
2.代码解析
在LangChain中,这些名称主要涉及到两大类功能:聊天消息历史记录(Chat Message History)和记忆(Memory)。它们分别用于记录和管理聊天消息历史以及存储和处理对话中的记忆。以下是每个组件的详细介绍:
聊天消息历史记录(Chat Message History)
1. AstraDBChatMessageHistory:
• 功能:存储聊天消息到AstraDB中。
• 用途:用于在AstraDB数据库中持久化聊天记录。
2. CassandraChatMessageHistory:
• 功能:存储聊天消息到Cassandra数据库中。
• 用途:用于在Cassandra数据库中持久化聊天记录。
3. ChatMessageHistory:
• 功能:通用的聊天消息历史记录接口。
• 用途:用于管理和存储聊天消息的历史记录。
4. CosmosDBChatMessageHistory:
• 功能:存储聊天消息到Azure Cosmos DB中。
• 用途:用于在Cosmos DB中持久化聊天记录。
5. DynamoDBChatMessageHistory:
• 功能:存储聊天消息到Amazon DynamoDB中。
• 用途:用于在DynamoDB中持久化聊天记录。
6. ElasticsearchChatMessageHistory:
• 功能:存储聊天消息到Elasticsearch中。
• 用途:用于在Elasticsearch中持久化聊天记录,便于搜索和分析。
7. FileChatMessageHistory:
• 功能:将聊天消息记录到文件中。
• 用途:用于将聊天记录持久化到本地文件系统。
8. MomentoChatMessageHistory:
• 功能:集成Momento缓存服务进行聊天消息存储。
• 用途:用于在Momento缓存中存储聊天记录,提升访问速度。
9. MongoDBChatMessageHistory:
• 功能:存储聊天消息到MongoDB中。
• 用途:用于在MongoDB数据库中持久化聊天记录。
10. PostgresChatMessageHistory:
• 功能:存储聊天消息到PostgreSQL数据库中。
• 用途:用于在PostgreSQL数据库中持久化聊天记录。
11. RedisChatMessageHistory:
• 功能:存储聊天消息到Redis数据库中。
• 用途:用于在Redis缓存中存储聊天记录,提升访问速度。
12. SingleStoreDBChatMessageHistory:
• 功能:存储聊天消息到SingleStore数据库中。
• 用途:用于在SingleStore数据库中持久化聊天记录。
13. SQLChatMessageHistory:
• 功能:通用的SQL数据库聊天消息历史记录接口。
• 用途:用于将聊天记录存储在任意SQL数据库中。
14. StreamlitChatMessageHistory:
• 功能:在Streamlit应用中显示聊天消息历史记录。
• 用途:用于在Streamlit应用中展示和管理聊天记录。
15. XataChatMessageHistory:
• 功能:存储聊天消息到Xata中。
• 用途:用于在Xata数据库中持久化聊天记录。
16. ZepChatMessageHistory:
• 功能:存储聊天消息到Zep中。
• 用途:用于在Zep中持久化聊天记录。
记忆(Memory)
1. CombinedMemory:
• 功能:组合多个记忆模块以实现复杂的记忆管理。
• 用途:用于同时管理和访问多个记忆源。
2. ConversationBufferMemory:
• 功能:在缓冲区中存储对话历史。
• 用途:用于短期对话记忆,便于上下文管理。
3. ConversationBufferWindowMemory:
• 功能:在滑动窗口中存储对话历史。
• 用途:用于在滑动窗口内管理对话上下文,适用于长期对话。
4. ConversationEntityMemory:
• 功能:存储和管理对话中的实体信息。
• 用途:用于跟踪和管理对话中的实体(如人名、地点等)。
5. ConversationKGMemory:
• 功能:使用知识图谱存储对话记忆。
• 用途:用于将对话内容存储在知识图谱中,便于复杂关系的管理。
6. ConversationStringBufferMemory:
• 功能:使用字符串缓冲区存储对话历史。
• 用途:简单地将对话内容存储为字符串。
7. ConversationSummaryBufferMemory:
• 功能:在缓冲区中存储对话摘要。
• 用途:用于对长对话进行摘要,保持上下文的一致性。
8. ConversationSummaryMemory:
• 功能:存储对话的摘要。
• 用途:用于总结长对话内容,便于后续参考。
9. ConversationTokenBufferMemory:
• 功能:使用令牌缓冲区存储对话历史。
• 用途:用于基于令牌数量管理对话记忆,适用于语言模型的上下文管理。
10. InMemoryEntityStore:
• 功能:在内存中存储实体信息。
• 用途:用于快速访问和管理对话中的实体数据。
11. MotorheadMemory:
• 功能:高效的内存管理模块。
• 用途:用于优化内存使用,提升系统性能。
12. ReadOnlySharedMemory:
• 功能:只读的共享记忆模块。
• 用途:用于共享和访问全局只读记忆数据。
13. RedisEntityStore:
• 功能:在Redis中存储实体信息。
• 用途:用于高效存储和访问对话中的实体数据。
14. SQLiteEntityStore:
• 功能:在SQLite数据库中存储实体信息。
• 用途:用于持久化存储和管理对话中的实体数据。
15. SimpleMemory:
• 功能:简单的内存存储模块。
• 用途:用于基本的记忆管理需求。
16. VectorStoreRetrieverMemory:
• 功能:使用向量存储进行记忆检索。
• 用途:用于基于向量的相似度搜索,以实现记忆的高效检索。
17. ZepMemory:
• 功能:存储对话记忆到Zep中。
• 用途:用于在Zep中持久化对话记忆。
18. UpstashRedisEntityStore:
• 功能:在Upstash Redis中存储实体信息。
• 用途:用于高效存储和访问对话中的实体数据。
19. UpstashRedisChatMessageHistory:
• 功能:在Upstash Redis中存储聊天消息。
• 用途:用于在Upstash Redis中持久化聊天记录。