mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-11-22 21:18:15 +00:00
Compare commits
1 Commits
86ce0ce888
...
5bf3221349
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bf3221349 |
@@ -651,16 +651,12 @@ const Page = () => {
|
|||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Model name"
|
placeholder="Model name"
|
||||||
value={config.customOpenaiModelName}
|
defaultValue={config.customOpenaiModelName}
|
||||||
isSaving={savingStates['customOpenaiModelName']}
|
onChange={(e) =>
|
||||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
setConfig({
|
||||||
setConfig((prev) => ({
|
...config,
|
||||||
...prev!,
|
|
||||||
customOpenaiModelName: e.target.value,
|
customOpenaiModelName: e.target.value,
|
||||||
}));
|
})
|
||||||
}}
|
|
||||||
onSave={(value) =>
|
|
||||||
saveConfig('customOpenaiModelName', value)
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -671,16 +667,12 @@ const Page = () => {
|
|||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Custom OpenAI API Key"
|
placeholder="Custom OpenAI API Key"
|
||||||
value={config.customOpenaiApiKey}
|
defaultValue={config.customOpenaiApiKey}
|
||||||
isSaving={savingStates['customOpenaiApiKey']}
|
onChange={(e) =>
|
||||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
setConfig({
|
||||||
setConfig((prev) => ({
|
...config,
|
||||||
...prev!,
|
|
||||||
customOpenaiApiKey: e.target.value,
|
customOpenaiApiKey: e.target.value,
|
||||||
}));
|
})
|
||||||
}}
|
|
||||||
onSave={(value) =>
|
|
||||||
saveConfig('customOpenaiApiKey', value)
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -691,16 +683,12 @@ const Page = () => {
|
|||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Custom OpenAI Base URL"
|
placeholder="Custom OpenAI Base URL"
|
||||||
value={config.customOpenaiApiUrl}
|
defaultValue={config.customOpenaiApiUrl}
|
||||||
isSaving={savingStates['customOpenaiApiUrl']}
|
onChange={(e) =>
|
||||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
setConfig({
|
||||||
setConfig((prev) => ({
|
...config,
|
||||||
...prev!,
|
|
||||||
customOpenaiApiUrl: e.target.value,
|
customOpenaiApiUrl: e.target.value,
|
||||||
}));
|
})
|
||||||
}}
|
|
||||||
onSave={(value) =>
|
|
||||||
saveConfig('customOpenaiApiUrl', value)
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -472,10 +472,10 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
|||||||
}
|
}
|
||||||
}, [isMessagesLoaded, isWSReady]);
|
}, [isMessagesLoaded, isWSReady]);
|
||||||
|
|
||||||
const sendMessage = async (
|
const sendMessage = async (
|
||||||
message: string,
|
message: string,
|
||||||
messageId?: string,
|
messageId?: string,
|
||||||
options?: { isCompact?: boolean; rewriteIndex?: number },
|
options?: { isCompact?: boolean },
|
||||||
) => {
|
) => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
||||||
@@ -489,17 +489,6 @@ const sendMessage = async (
|
|||||||
let sources: Document[] | undefined = undefined;
|
let sources: Document[] | undefined = undefined;
|
||||||
let recievedMessage = '';
|
let recievedMessage = '';
|
||||||
let added = false;
|
let added = false;
|
||||||
let messageChatHistory = chatHistory;
|
|
||||||
|
|
||||||
if (options?.rewriteIndex !== undefined) {
|
|
||||||
const rewriteIndex = options.rewriteIndex;
|
|
||||||
setMessages((prev) => {
|
|
||||||
return [...prev.slice(0, messages.length > 2 ? rewriteIndex - 1 : 0)]
|
|
||||||
});
|
|
||||||
|
|
||||||
messageChatHistory = chatHistory.slice(0, messages.length > 2 ? rewriteIndex - 1 : 0)
|
|
||||||
setChatHistory(messageChatHistory);
|
|
||||||
}
|
|
||||||
|
|
||||||
messageId = messageId ?? crypto.randomBytes(7).toString('hex');
|
messageId = messageId ?? crypto.randomBytes(7).toString('hex');
|
||||||
let messageData = {
|
let messageData = {
|
||||||
@@ -512,9 +501,10 @@ const sendMessage = async (
|
|||||||
files: fileIds,
|
files: fileIds,
|
||||||
focusMode: focusMode,
|
focusMode: focusMode,
|
||||||
optimizationMode: optimizationMode,
|
optimizationMode: optimizationMode,
|
||||||
history: [...messageChatHistory, ['human', message]],
|
history: [...chatHistory, ['human', message]],
|
||||||
isCompact: options?.isCompact ?? isCompact,
|
isCompact: options?.isCompact ?? isCompact,
|
||||||
};
|
};
|
||||||
|
//console.log('sending:', messageData, JSON.stringify(messageData));
|
||||||
ws.send(JSON.stringify(messageData));
|
ws.send(JSON.stringify(messageData));
|
||||||
|
|
||||||
setMessages((prevMessages) => [
|
setMessages((prevMessages) => [
|
||||||
@@ -632,9 +622,20 @@ const sendMessage = async (
|
|||||||
};
|
};
|
||||||
|
|
||||||
const rewrite = (messageId: string) => {
|
const rewrite = (messageId: string) => {
|
||||||
const messageIndex = messages.findIndex((msg) => msg.messageId === messageId);
|
const index = messages.findIndex((msg) => msg.messageId === messageId);
|
||||||
if(messageIndex == -1) return;
|
|
||||||
sendMessage(messages[messageIndex - 1].content, messageId, { isCompact, rewriteIndex: messageIndex });
|
if (index === -1) return;
|
||||||
|
|
||||||
|
const message = messages[index - 1];
|
||||||
|
|
||||||
|
setMessages((prev) => {
|
||||||
|
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||||
|
});
|
||||||
|
setChatHistory((prev) => {
|
||||||
|
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||||
|
});
|
||||||
|
|
||||||
|
sendMessage(message.content, message.messageId, { isCompact });
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user