chatbot - 如何使用 langchain 创建多用户聊天机器人

标签 chatbot openai-api chatgpt-api langchain llm

希望你做得很好。我根据以下 langchain 文档准备了一个聊天机器人:

Langchain chatbot documentation

在上面的langchain文档中,提示模板有两个输入变量——历史记录和人工输入。

我有 UserID、SessionID 变量。我将 UserID、SessionID、UserMessage、LLM-Response 存储在 csv 文件中。我使用 python pandas 模块读取 csv 并过滤给定 UserID 和 SessionID 的数据帧,并为该特定用户 session 准备聊天历史记录。我将此聊天历史记录作为“历史记录”输入传递给 langchain 提示模板(在上面的链接中进行了讨论)。当我设置 verbose=true 时,langchain 会在控制台上为每个 API 调用打印提示模板。我已经开始与第一个用户和第一个 session 进行对话,并逐个发送 3 个 human_input。后来我开始了第二个用户 session (现在 session ID和用户ID已更改)。在控制台上观察该提示模板后,我发现 langchain 不仅获取了第二个用户 session 的聊天历史记录,而且还获取了上一个用户 session 的一些聊天历史记录,即使我已经编写了正确的内容为给定用户 session 准备聊天历史记录的代码。获取聊天记录的代码如下:

# get chat_history
def get_chat_history(user_id,session_id,user_query):
    chat_history = "You're a chatbot based on a large language model trained by OpenAI. The text followed by Human: will be user input and your response should be followed by AI: as shown below.\n"
    chat_data = pd.read_csv("DB.csv")
    for index in chat_data.index:
        if ((chat_data['user_id'][index] == user_id) and (chat_data['session_id'][index] == session_id)):
            chat_history += "Human: " + chat_data['user_query'][index] + "\n" + "AI: " + chat_data['gpt_response'][index] + "\n"
    chat_history += "Human: " + user_query + "\n" + "AI: "
    return chat_history

如何教 langchain 在提示中仅考虑给定的用户 session 聊天历史记录。请帮忙

最佳答案

在构造对 openai 的调用时,没有确切地看到您使用的代码(即您使用的是 ConversationChain 还是 LLMChain?最重要的是,您是否像您链接的示例中那样使用 ConversationBufferMemory?)

我询问 ConversationChain (如果您不向其传递内存参数,默认情况下会为您初始化 ConversationMemory)和 ConversationBufferMemory 的原因是因为它听起来很像您所看到的缓冲区,但它不是没有清除...基本上,它们共享相同的缓冲区或 MessageHistory。

抱歉,在没有看到您的 eac 之前我无法为您提供更多帮助

关于chatbot - 如何使用 langchain 创建多用户聊天机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76407415/

相关文章:

rest - 将定制的聊天机器人与 Skype 集成

machine-learning - 清洗 NLP 任务的文本数据

delphi - 如何通过 Delphi 使用 ChatGPT 进行流式传输?

plugins - 如何使用 OpenAI 聊天完成 API 有效比较存储在数据库中的多个文档并选择最佳候选者?

Python 语音识别速度变慢

python - 聊天机器人 : how to get default response when no response found in training data

python-3.x - 连接GPT-3 open AI时如何解决API连接错误和SSL认证错误?

typescript - OpenAI GPT-3 API 错误 : "TypeError: openai.completions is not a function"

python - 如何让Open AI API返回部分文本结果?

javascript - 接收带有键入文本效果的即时 chatgpt 响应