Don't call tools on stopped streams. Emit events

This commit is contained in:
Cohee
2024-10-05 19:08:57 +03:00
parent 6185974e17
commit 47e3cf82e0
2 changed files with 13 additions and 6 deletions

View File

@ -1,4 +1,4 @@
import { addOneMessage, chat, main_api, system_avatar, systemUserName } from '../script.js';
import { addOneMessage, chat, event_types, eventSource, main_api, saveChatConditional, system_avatar, systemUserName } from '../script.js';
import { chat_completion_sources, oai_settings } from './openai.js';
import { Popup } from './popup.js';
@ -542,7 +542,7 @@ export class ToolManager {
* Saves function tool invocations to the last user chat message extra metadata.
* @param {ToolInvocation[]} invocations Successful tool invocations
*/
static saveFunctionToolInvocations(invocations) {
static async saveFunctionToolInvocations(invocations) {
if (!Array.isArray(invocations) || invocations.length === 0) {
return;
}
@ -558,7 +558,10 @@ export class ToolManager {
},
};
chat.push(message);
await eventSource.emit(event_types.TOOL_CALLS_PERFORMED, invocations);
addOneMessage(message);
await eventSource.emit(event_types.TOOL_CALLS_RENDERED, invocations);
await saveChatConditional();
}
/**