diff --git a/enjoy/src/constants/index.ts b/enjoy/src/constants/index.ts index 803a1893..2818f674 100644 --- a/enjoy/src/constants/index.ts +++ b/enjoy/src/constants/index.ts @@ -60,8 +60,6 @@ export const NOT_SUPPORT_JSON_FORMAT_MODELS = [ export const CHAT_SYSTEM_PROMPT_TEMPLATE = `You are {name}. {agent_prompt} - -You are chatting in an online chat room. {agent_chat_prompt} [Rules must be followed] diff --git a/enjoy/src/main/db/models/chat-member.ts b/enjoy/src/main/db/models/chat-member.ts index b91c53fe..018af3fa 100644 --- a/enjoy/src/main/db/models/chat-member.ts +++ b/enjoy/src/main/db/models/chat-member.ts @@ -66,6 +66,16 @@ export class ChatMember extends Model { }) agent: ChatAgent; + @Column(DataType.VIRTUAL) + get name(): string { + if (this.userType === "User") { + return this.user.name; + } else if (this.userType === "Agent") { + return this.agent.name; + } + return ""; + } + @Column(DataType.VIRTUAL) get user(): { name: string; diff --git a/enjoy/src/renderer/components/chats/chat-user-message.tsx b/enjoy/src/renderer/components/chats/chat-user-message.tsx index 08ca9934..fdf13e77 100644 --- a/enjoy/src/renderer/components/chats/chat-user-message.tsx +++ b/enjoy/src/renderer/components/chats/chat-user-message.tsx @@ -385,7 +385,7 @@ const ChatUserMessageActions = (props: { -
+
{refinement} diff --git a/enjoy/src/renderer/context/chat-session-provider.tsx b/enjoy/src/renderer/context/chat-session-provider.tsx index 631bf2ae..d87df7c3 100644 --- a/enjoy/src/renderer/context/chat-session-provider.tsx +++ b/enjoy/src/renderer/context/chat-session-provider.tsx @@ -203,6 +203,7 @@ export const ChatSessionProvider = ({ const chain = prompt.pipe(llm); setSubmitting(true); + const lastChatMessage = chatMessages[chatMessages.length - 1]; const reply = await chain.invoke({ name: member.agent.name, agent_prompt: member.agent.config.prompt || "", @@ -219,6 +220,7 @@ export const ChatSessionProvider = ({ }) .join("\n"), history: chatMessages + .slice(0, chatMessages.length - 1) .map( (message) => `- ${(message.member.user || message.member.agent).name}: ${ @@ -226,7 +228,10 @@ export const ChatSessionProvider = ({ }(${dayjs(message.createdAt).fromNow()})` ) .join("\n"), - input: chatMessages.length > 0 ? "Continue" : "Start the conversation", + input: + (lastChatMessage + ? `${lastChatMessage.member.name}: ${lastChatMessage.content}\n` + : "") + `${member.agent.name}:`, }); // the reply may contain the member's name like "Agent: xxx". We need to remove it. diff --git a/enjoy/src/types/chat.d.ts b/enjoy/src/types/chat.d.ts index 0556524f..e567a822 100644 --- a/enjoy/src/types/chat.d.ts +++ b/enjoy/src/types/chat.d.ts @@ -43,6 +43,7 @@ type ChatMemberType = { introduction?: string; [key: string]: any; }; + name: string; agent?: ChatAgentType; user?: UserType; };