开源模型应用落地-LangChain高阶-记忆组件-RedisChatMessageHistory正确使用
from typing import Any, Dict, List, Optional, Union
from langchain.chat_models import ChatOpenAI
from langchain.chat_models.memory import RedisChatMemory
from langchain.llms import OpenAI
from langchain.memory import Memory
from langchain.vectorstores import DensePassageVectorstore
# 初始化OpenAI LLM
openai = OpenAI(model_name="text-davinci-002")
# 初始化ChatOpenAI模型,并指定使用Redis作为记忆组件
redis_chat_memory = RedisChatMemory()
chat = ChatOpenAI(llm=openai, memory=redis_chat_memory)
# 初始化向量存储和查询
vectorstore = DensePassageVectorstore(model_name="text-embed-ada-002", content_type="text/plain")
chat.vectorstore = vectorstore
# 定义一个函数,用于将用户的输入添加到记忆中
def add_to_memory(input_message: str, message_history: List[str]) -> None:
# 这里可以添加额外的逻辑,例如处理输入消息和消息历史
# 将输入消息添加到记忆中
redis_chat_memory.add_messages_to_conversation(messages=[input_message], conversation_id="general")
# 示例:用户输入了一条消息
user_input = "Hello, who are you?"
# 调用函数,将用户输入添加到记忆中
add_to_memory(user_input, []) # 假设这是一个空的消息历史列表
# 继续你的代码逻辑...
这个代码示例展示了如何初始化一个使用Redis作为记忆组件的ChatOpenAI模型,并演示了如何将用户的输入添加到记忆中。这是一个简化的例子,实际应用中可能需要更复杂的逻辑来处理消息历史和用户输入。
评论已关闭