feat(问翻小宝): 增强帮助搜索与会话历史
关键改动: - 增加问翻小宝会话历史记录规则与测试 - 优化帮助搜索、兜底建议和页面交互结构 - 更新帮助截图资产和截图采集脚本 Co-Authored-By: Codex GPT-5 <codex@openai.com>
This commit is contained in:
53
apps/web/lib/wenfan-conversation-history.ts
Normal file
53
apps/web/lib/wenfan-conversation-history.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
export type WenfanHistoryMessage = {
|
||||
role: string;
|
||||
content?: string;
|
||||
};
|
||||
|
||||
export type WenfanConversationRecord<TMessage extends WenfanHistoryMessage> = {
|
||||
id: string;
|
||||
title: string;
|
||||
messages: TMessage[];
|
||||
};
|
||||
|
||||
const DEFAULT_CONVERSATION_TITLE = '新对话';
|
||||
|
||||
function getConversationTitle<TMessage extends WenfanHistoryMessage>(messages: TMessage[]): string {
|
||||
const firstQuestion = messages.find((message) => message.role === 'user' && message.content?.trim());
|
||||
return firstQuestion?.content?.trim() || DEFAULT_CONVERSATION_TITLE;
|
||||
}
|
||||
|
||||
export function createWenfanConversationRecord<TMessage extends WenfanHistoryMessage>(
|
||||
id: string,
|
||||
messages: TMessage[],
|
||||
): WenfanConversationRecord<TMessage> {
|
||||
return {
|
||||
id,
|
||||
title: getConversationTitle(messages),
|
||||
messages,
|
||||
};
|
||||
}
|
||||
|
||||
export function updateWenfanConversationRecord<TMessage extends WenfanHistoryMessage>(
|
||||
records: WenfanConversationRecord<TMessage>[],
|
||||
activeId: string | null | undefined,
|
||||
messages: TMessage[],
|
||||
): WenfanConversationRecord<TMessage>[] {
|
||||
if (!activeId) return records;
|
||||
|
||||
return records.map((record) =>
|
||||
record.id === activeId
|
||||
? {
|
||||
...record,
|
||||
title: getConversationTitle(messages),
|
||||
messages,
|
||||
}
|
||||
: record,
|
||||
);
|
||||
}
|
||||
|
||||
export function deleteWenfanConversationRecord<TMessage extends WenfanHistoryMessage>(
|
||||
records: WenfanConversationRecord<TMessage>[],
|
||||
id: string,
|
||||
): WenfanConversationRecord<TMessage>[] {
|
||||
return records.filter((record) => record.id !== id);
|
||||
}
|
||||
Reference in New Issue
Block a user