利用LangChain对WhatsApp聊天记录进行AI处理的完整指南

136 阅读2分钟
# 利用LangChain对WhatsApp聊天记录进行AI处理的完整指南

## 引言

在现代沟通中,WhatsApp是一个无处不在的工具,许多人依赖它来交流重要信息。将这些聊天记录转换成可供AI使用的数据格式对于许多应用场景(如聊天分析和模型微调)来说都很有用。本文将介绍如何使用LangChain加载和处理WhatsApp聊天记录。

## 主要内容

### 1. 导出WhatsApp聊天记录

首先,我们需要将WhatsApp聊天记录导出到计算机。以下是导出步骤:

1. 打开目标聊天。
2. 点击右上角的三个点,选择“更多”。
3. 选择“导出聊天”,然后选择“无媒体”。

聊天记录会保存为格式如下的文本文件:

```plaintext
[8/15/23, 9:12:33 AM] Dr. Feather: ‎Messages and calls are end-to-end encrypted. No one outside of this chat, not even WhatsApp, can read or listen to them.

2. 创建聊天加载器

我们利用WhatsAppChatLoader加载这些导出的聊天记录。您可以提供文本文件的路径,然后指定要在微调时担当“AI”角色的用户名。

from langchain_community.chat_loaders.whatsapp import WhatsAppChatLoader

loader = WhatsAppChatLoader(
    path="./whatsapp_chat.txt",
)

3. 加载并处理消息

使用load()lazy_load()方法将聊天记录转换为“ChatSessions”。

from typing import List
from langchain_community.chat_loaders.utils import (
    map_ai_messages,
    merge_chat_runs,
)
from langchain_core.chat_sessions import ChatSession

raw_messages = loader.lazy_load()
merged_messages = merge_chat_runs(raw_messages)
messages: List[ChatSession] = list(
    map_ai_messages(merged_messages, sender="Dr. Feather")
)

代码示例

以下是完整代码示例:

from langchain_community.chat_loaders.whatsapp import WhatsAppChatLoader
from langchain_community.chat_loaders.utils import (
    map_ai_messages,
    merge_chat_runs,
)
from langchain_core.chat_sessions import ChatSession
from langchain_openai import ChatOpenAI

# 加载WhatsApp聊天记录
loader = WhatsAppChatLoader(path="./whatsapp_chat.txt")
raw_messages = loader.lazy_load()  # 使用API代理服务提高访问稳定性

# 合并连续消息并转换为AI消息
merged_messages = merge_chat_runs(raw_messages)
messages: List[ChatSession] = list(
    map_ai_messages(merged_messages, sender="Dr. Feather")
)

# 使用OpenAI的Chat模型进行预测
llm = ChatOpenAI()
for chunk in llm.stream(messages[0]["messages"]):
    print(chunk.content, end="", flush=True)

常见问题和解决方案

  • 问题:无法访问WhatsApp API
    由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性。

  • 问题:聊天记录格式不匹配
    确保导出聊天选择了“无媒体”选项,并仔细检查文件格式。

总结和进一步学习资源

通过本文提供的步骤和代码示例,你应该能够成功地将WhatsApp聊天记录转换为AI可用的格式。建议进一步探索以下资源以扩展知识:

参考资料

  • LangChain Community Documentation
  • OpenAI API 使用指南

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---