diff --git a/packages/web/src/hooks/useChat.ts b/packages/web/src/hooks/useChat.ts
index 1af03fe9..e4aabd6e 100644
--- a/packages/web/src/hooks/useChat.ts
+++ b/packages/web/src/hooks/useChat.ts
@@ -10,6 +10,7 @@ import {
Role,
UploadedFileType,
ExtraData,
+ Model,
} from 'generative-ai-use-cases-jp';
import { useEffect, useMemo } from 'react';
import { v4 as uuid } from 'uuid';
@@ -256,6 +257,33 @@ const useChatState = create<{
});
};
+ const addChunkToAssistantMessage = (
+ id: string,
+ chunk: string,
+ model?: Model
+ ) => {
+ set((state) => {
+ const newChats = produce(state.chats, (draft) => {
+ const oldAssistantMessage = draft[id].messages.pop()!;
+ const newAssistantMessage: UnrecordedMessage = {
+ role: 'assistant',
+ // 新規モデル追加時は、デフォルトで Claude の prompter が利用されるため
+ // 出力が で囲まれる可能性がある
+ // 以下の処理ではそれに対応するため、 xml タグを削除している
+ content: (oldAssistantMessage.content + chunk).replace(
+ /(