Slack
本筆記本示範如何使用 Slack 聊天載入器。此類別有助於將匯出的 Slack 對話對應到 LangChain 聊天訊息。
此流程包含三個步驟
- 依照此處的指示匯出所需的對話串。
- 使用指向 json 檔案或 JSON 檔案目錄的檔案路徑建立
SlackChatLoader
- 呼叫
loader.load()
(或loader.lazy_load()
) 以執行轉換。選擇性地使用merge_chat_runs
來合併來自同一發送者依序發送的訊息,以及/或map_ai_messages
將來自指定發送者的訊息轉換為 "AIMessage" 類別。
1. 建立訊息傾印
目前 (2023/08/23) 此載入器最適合用於 zip 檔案目錄,其格式是從 Slack 匯出直接訊息對話所產生。請依照 Slack 最新的指示操作。
我們在 LangChain repo 中有一個範例。
import requests
permalink = "https://raw.githubusercontent.com/langchain-ai/langchain/342087bdfa3ac31d622385d0f2d09cf5e06c8db3/libs/langchain/tests/integration_tests/examples/slack_export.zip"
response = requests.get(permalink)
with open("slack_dump.zip", "wb") as f:
f.write(response.content)
2. 建立聊天載入器
向載入器提供 zip 檔案目錄的檔案路徑。您可以選擇性地指定對應到 AI 訊息的使用者 ID,以及設定是否合併訊息執行。
from langchain_community.chat_loaders.slack import SlackChatLoader
API 參考:SlackChatLoader
loader = SlackChatLoader(
path="slack_dump.zip",
)
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()
# Merge consecutive messages from the same sender into a single message
merged_messages = merge_chat_runs(raw_messages)
# Convert messages from "U0500003428" to AI messages
messages: List[ChatSession] = list(
map_ai_messages(merged_messages, sender="U0500003428")
)
後續步驟
然後您可以隨意使用這些訊息,例如微調模型、少量範例選擇,或直接對下一則訊息進行預測。
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
for chunk in llm.stream(messages[1]["messages"]):
print(chunk.content, end="", flush=True)
API 參考:ChatOpenAI
Hi,
I hope you're doing well. I wanted to reach out and ask if you'd be available to meet up for coffee sometime next week. I'd love to catch up and hear about what's been going on in your life. Let me know if you're interested and we can find a time that works for both of us.
Looking forward to hearing from you!
Best, [Your Name]