|
|
|
@ -35,6 +35,7 @@ export default function ChatPage() {
|
|
|
|
|
const systemPrompt = useStore((state) => state.systemPrompt);
|
|
|
|
|
const parameters = useStore((state) => state.parameters);
|
|
|
|
|
const facts = useStore((state) => state.facts);
|
|
|
|
|
const factTriggers = useStore((state) => state.factTriggers);
|
|
|
|
|
const loading = useStore((state) => state.loading);
|
|
|
|
|
const setConversationId = useStore((state) => state.setConversationId);
|
|
|
|
|
const setConversationTitle = useStore((state) => state.setConversationTitle);
|
|
|
|
@ -43,13 +44,16 @@ export default function ChatPage() {
|
|
|
|
|
const setSystemPrompt = useStore((state) => state.setSystemPrompt);
|
|
|
|
|
const setParameters = useStore((state) => state.setParameters);
|
|
|
|
|
const setFacts = useStore((state) => state.setFacts);
|
|
|
|
|
const setFactTriggers = useStore((state) => state.setFactTriggers);
|
|
|
|
|
const removeFact = useStore((state) => state.removeFact);
|
|
|
|
|
const removeFactTrigger = useStore((state) => state.removeFactTrigger);
|
|
|
|
|
const setLoading = useStore((state) => state.setLoading);
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
|
conversation,
|
|
|
|
|
messages: initialMessages,
|
|
|
|
|
facts: initialFacts,
|
|
|
|
|
factTriggers: initialFactTriggers,
|
|
|
|
|
} = useData<Data>();
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
@ -76,11 +80,20 @@ export default function ChatPage() {
|
|
|
|
|
setFacts(initialFacts);
|
|
|
|
|
}, [initialFacts, setFacts]);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setFactTriggers(initialFactTriggers);
|
|
|
|
|
}, [initialFactTriggers, setFactTriggers]);
|
|
|
|
|
|
|
|
|
|
async function handleDeleteFact(factId: string) {
|
|
|
|
|
removeFact(factId);
|
|
|
|
|
await trpc.chat.facts.deleteOne.mutate({ factId });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function handleDeleteFactTrigger(factTriggerId: string) {
|
|
|
|
|
removeFactTrigger(factTriggerId);
|
|
|
|
|
await trpc.chat.factTriggers.deleteOne.mutate({ factTriggerId });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<div>
|
|
|
|
@ -105,6 +118,7 @@ export default function ChatPage() {
|
|
|
|
|
<Tabs.Tab value="system-prompt">System Prompt</Tabs.Tab>
|
|
|
|
|
<Tabs.Tab value="parameters">Parameters</Tabs.Tab>
|
|
|
|
|
<Tabs.Tab value="facts">Facts</Tabs.Tab>
|
|
|
|
|
<Tabs.Tab value="fact-triggers">Fact Triggers</Tabs.Tab>
|
|
|
|
|
</Tabs.List>
|
|
|
|
|
<Tabs.Panel value="message">
|
|
|
|
|
<Messages messages={messages} />
|
|
|
|
@ -193,6 +207,24 @@ export default function ChatPage() {
|
|
|
|
|
))}
|
|
|
|
|
</List>
|
|
|
|
|
</Tabs.Panel>
|
|
|
|
|
<Tabs.Panel value="fact-triggers">
|
|
|
|
|
<List>
|
|
|
|
|
{factTriggers.map((factTrigger) => (
|
|
|
|
|
<List.Item key={factTrigger.id}>
|
|
|
|
|
{factTrigger.content}{" "}
|
|
|
|
|
<IconTrash
|
|
|
|
|
size={16}
|
|
|
|
|
stroke={1.5}
|
|
|
|
|
onClick={(e) => {
|
|
|
|
|
e.stopPropagation();
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
handleDeleteFactTrigger(factTrigger.id);
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</List.Item>
|
|
|
|
|
))}
|
|
|
|
|
</List>
|
|
|
|
|
</Tabs.Panel>
|
|
|
|
|
</Tabs>
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|