获取消息
提示
请务必先阅读如何正确使用酒馆助手
酒馆虽然提供了 /messages 命令, 但是它获取的是一整个字符串, 并且不能获取楼层当前没在使用的消息 (点击箭头切换的那个 swipe 消息, 在酒馆助手中我们称之为 "消息页"), 酒馆助手为此提供了一套函数获取更便于处理的消息.
点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)
getChatMessages
获取聊天消息
ts
function getChatMessages(
range: string | number,
option: GetChatMessagesOption = {}
): ChatMessage[] | ChatMessageSwiped[];ts
type GetChatMessagesOption = {
role?: "all" | "system" | "assistant" | "user";
hide_state?: "all" | "hidden" | "unhidden";
include_swipes?: boolean;
}ts
type ChatMessage = {
message_id: number;
name: string;
role: "system" | "assistant" | "user";
is_hidden: boolean;
message: string;
data: Record<string, any>;
extra: Record<string, any>;
}ts
type ChatMessageSwiped = {
message_id: number;
name: string;
role: "system" | "assistant" | "user";
is_hidden: boolean;
swipe_id: number;
swipes: string[];
swipes_data: Record<string, any>[];
swipes_info: Record<string, any>[];
}参数
range
- 类型:
number | string - 描述: 要获取的消息楼层号 (
14) 或楼层范围 ('0-100'), 范围中可以用宏 ('0-')
role?
- 类型:
'system' | 'assistant' | 'user' - 描述: 按 role 筛选消息; 默认为
'all'
hide_state?
- 类型:
'all' | 'hidden' | 'unhidden' - 描述: 按是否被隐藏筛选消息; 默认为
'all'
include_swipes?
- 类型:
boolean - 描述: 是否包含未被 AI 使用的消息页信息, 如没选择的开局、通过点击箭头额外生成的消息页. 如果为
false则函数返回ChatMessage类型, 如果为true则函数返回ChatMessageSwiped类型; 默认为false
返回值
如果 include_swipes 为 false (默认情况):
- 返回
ChatMessage[], 每条消息只包含被 AI 使用的消息页 - 按 message_id 从低到高排序
如果 include_swipes 为 true:
- 返回
ChatMessageSwiped[], 每条消息包含所有消息页 - 按 message_id 从低到高排序
示例
ts
const messages = await getChatMessages(10);
const messages = await getChatMessages("10");
const messages = await getChatMessages("10", { include_swipes: false });ts
const message = getChatMessages(-1)[0]; // 或 getChatMessages('{{lastMessageId}}')[0]ts
const messages = await getChatMessages("0-{{lastMessageId}}");ts
const messages = await getChatMessages("0-{{lastMessageId}}", { include_swipes: true });