|
|
|
@ -496,8 +496,8 @@ export default function ChatPage() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<Box>
|
|
|
|
|
<Group justify="flex-start" gap={"sm"}>
|
|
|
|
|
<Box h="100%" w="100%" style={{ display: "flex", flexDirection: "column" }}>
|
|
|
|
|
<Group justify="flex-start" gap={"sm"} w="100%">
|
|
|
|
|
<TextInput
|
|
|
|
|
inputSize="50"
|
|
|
|
|
description={`Conversation #${conversationId}`}
|
|
|
|
@ -532,7 +532,15 @@ export default function ChatPage() {
|
|
|
|
|
<StatusMessage sendMessageStatus={sendMessageStatus} />
|
|
|
|
|
)}
|
|
|
|
|
</Group>
|
|
|
|
|
<Tabs defaultValue="message">
|
|
|
|
|
<Tabs
|
|
|
|
|
defaultValue="message"
|
|
|
|
|
style={{
|
|
|
|
|
display: "flex",
|
|
|
|
|
flexDirection: "column",
|
|
|
|
|
flex: 1,
|
|
|
|
|
overflow: "hidden",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<Tabs.List>
|
|
|
|
|
<Tabs.Tab value="message">Message</Tabs.Tab>
|
|
|
|
|
<Tabs.Tab value="system-prompt">System Prompt</Tabs.Tab>
|
|
|
|
@ -540,35 +548,39 @@ export default function ChatPage() {
|
|
|
|
|
<Tabs.Tab value="facts">Facts</Tabs.Tab>
|
|
|
|
|
<Tabs.Tab value="fact-triggers">Fact Triggers</Tabs.Tab>
|
|
|
|
|
</Tabs.List>
|
|
|
|
|
<Tabs.Panel value="message">
|
|
|
|
|
<Messages />
|
|
|
|
|
<Textarea
|
|
|
|
|
resize="vertical"
|
|
|
|
|
placeholder="Type your message here..."
|
|
|
|
|
value={message}
|
|
|
|
|
disabled={loading}
|
|
|
|
|
onChange={(e) => setMessage(e.target.value)}
|
|
|
|
|
onKeyDown={async (e) => {
|
|
|
|
|
if (e.key === "Enter") {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
setLoading(true);
|
|
|
|
|
await sendSubscriptionMessage({
|
|
|
|
|
conversationId,
|
|
|
|
|
messages: [
|
|
|
|
|
...(messages || []),
|
|
|
|
|
{
|
|
|
|
|
role: "user" as const,
|
|
|
|
|
parts: [{ type: "text", text: message }],
|
|
|
|
|
} as DraftMessage,
|
|
|
|
|
],
|
|
|
|
|
systemPrompt,
|
|
|
|
|
parameters,
|
|
|
|
|
});
|
|
|
|
|
setMessage("");
|
|
|
|
|
setLoading(false);
|
|
|
|
|
}
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
<Tabs.Panel value="message" style={{ flex: 1, overflow: "hidden" }}>
|
|
|
|
|
<Stack gap="md" justify="space-between" h="100%">
|
|
|
|
|
<ScrollArea scrollbars="y" style={{ flex: 1 }}>
|
|
|
|
|
<Messages />
|
|
|
|
|
</ScrollArea>
|
|
|
|
|
<Textarea
|
|
|
|
|
resize="vertical"
|
|
|
|
|
placeholder="Type your message here..."
|
|
|
|
|
value={message}
|
|
|
|
|
disabled={loading}
|
|
|
|
|
onChange={(e) => setMessage(e.target.value)}
|
|
|
|
|
onKeyDown={async (e) => {
|
|
|
|
|
if (e.key === "Enter") {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
setLoading(true);
|
|
|
|
|
await sendSubscriptionMessage({
|
|
|
|
|
conversationId,
|
|
|
|
|
messages: [
|
|
|
|
|
...(messages || []),
|
|
|
|
|
{
|
|
|
|
|
role: "user" as const,
|
|
|
|
|
parts: [{ type: "text", text: message }],
|
|
|
|
|
} as DraftMessage,
|
|
|
|
|
],
|
|
|
|
|
systemPrompt,
|
|
|
|
|
parameters,
|
|
|
|
|
});
|
|
|
|
|
setMessage("");
|
|
|
|
|
setLoading(false);
|
|
|
|
|
}
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</Stack>
|
|
|
|
|
</Tabs.Panel>
|
|
|
|
|
<Tabs.Panel value="system-prompt">
|
|
|
|
|
<Textarea
|
|
|
|
|