mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-11-16 01:21:16 +01:00
unify chat across docs
This commit is contained in:
parent
e5212f7f63
commit
2fc7eedc45
@ -39,6 +39,8 @@ interface ChatMessage {
|
|||||||
confidence?: number;
|
confidence?: number;
|
||||||
modelUsed?: string;
|
modelUsed?: string;
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
|
documentId?: string;
|
||||||
|
documentName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createMessageId() {
|
function createMessageId() {
|
||||||
@ -89,6 +91,7 @@ const ChatbotDrawer = () => {
|
|||||||
const sessionStatus = selectedSessionEntry?.status ?? 'idle';
|
const sessionStatus = selectedSessionEntry?.status ?? 'idle';
|
||||||
const sessionError = selectedSessionEntry?.error;
|
const sessionError = selectedSessionEntry?.error;
|
||||||
const sessionInfo: ChatbotSessionInfo | null = selectedSessionEntry?.session ?? null;
|
const sessionInfo: ChatbotSessionInfo | null = selectedSessionEntry?.session ?? null;
|
||||||
|
const selectedDocumentName = selectedFile?.name ?? selectedSessionEntry?.fileName;
|
||||||
const contextStats =
|
const contextStats =
|
||||||
selectedSessionEntry?.status === 'ready' && selectedSessionEntry?.characterCount !== undefined
|
selectedSessionEntry?.status === 'ready' && selectedSessionEntry?.characterCount !== undefined
|
||||||
? {
|
? {
|
||||||
@ -163,11 +166,6 @@ const ChatbotDrawer = () => {
|
|||||||
}
|
}
|
||||||
}, [sessionInfo?.sessionId]);
|
}, [sessionInfo?.sessionId]);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setMessages([]);
|
|
||||||
setWarnings([]);
|
|
||||||
}, [selectedFileId]);
|
|
||||||
|
|
||||||
const maybeShowUsageWarning = (usage?: ChatbotUsageSummary | null) => {
|
const maybeShowUsageWarning = (usage?: ChatbotUsageSummary | null) => {
|
||||||
if (!usage) {
|
if (!usage) {
|
||||||
return;
|
return;
|
||||||
@ -286,6 +284,8 @@ const ChatbotDrawer = () => {
|
|||||||
role: 'user',
|
role: 'user',
|
||||||
content: trimmedPrompt,
|
content: trimmedPrompt,
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
|
documentId: selectedFileId,
|
||||||
|
documentName: selectedDocumentName,
|
||||||
};
|
};
|
||||||
setMessages((prev) => [...prev, userMessage]);
|
setMessages((prev) => [...prev, userMessage]);
|
||||||
setPrompt('');
|
setPrompt('');
|
||||||
@ -322,6 +322,8 @@ const ChatbotDrawer = () => {
|
|||||||
confidence: reply.confidence,
|
confidence: reply.confidence,
|
||||||
modelUsed: reply.modelUsed,
|
modelUsed: reply.modelUsed,
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
|
documentId: selectedFileId,
|
||||||
|
documentName: selectedDocumentName,
|
||||||
});
|
});
|
||||||
|
|
||||||
const fileOptions = useMemo(
|
const fileOptions = useMemo(
|
||||||
@ -398,7 +400,7 @@ const ChatbotDrawer = () => {
|
|||||||
boxShadow: '0 2px 12px rgba(16,24,40,0.06)',
|
boxShadow: '0 2px 12px rgba(16,24,40,0.06)',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Group justify="space-between" mb={4} gap="xs">
|
<Group justify="space-between" mb={4} gap="xs" align="flex-start">
|
||||||
<Text size="xs" c={isUser ? 'rgba(255,255,255,0.8)' : 'dimmed'} tt="uppercase">
|
<Text size="xs" c={isUser ? 'rgba(255,255,255,0.8)' : 'dimmed'} tt="uppercase">
|
||||||
{isUser ? t('chatbot.userLabel', 'You') : t('chatbot.botLabel', 'Stirling Bot')}
|
{isUser ? t('chatbot.userLabel', 'You') : t('chatbot.botLabel', 'Stirling Bot')}
|
||||||
</Text>
|
</Text>
|
||||||
@ -422,6 +424,16 @@ const ChatbotDrawer = () => {
|
|||||||
{t('chatbot.modelTag', 'Model: {{name}}', { name: message.modelUsed })}
|
{t('chatbot.modelTag', 'Model: {{name}}', { name: message.modelUsed })}
|
||||||
</Text>
|
</Text>
|
||||||
)}
|
)}
|
||||||
|
{message.documentName && (
|
||||||
|
<Badge
|
||||||
|
size="xs"
|
||||||
|
variant="light"
|
||||||
|
color={isUser ? 'blue' : 'gray'}
|
||||||
|
mt={6}
|
||||||
|
>
|
||||||
|
{message.documentName}
|
||||||
|
</Badge>
|
||||||
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user