diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 4c3ea2f71..05d92ebe7 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -290,6 +290,7 @@ export class ChatGPTApi implements LLMApi { isDalle3 ? REQUEST_TIMEOUT_MS * 2 : REQUEST_TIMEOUT_MS, // dalle3 using b64_json is slow. ); if (shouldStream) { + let index = -1; const [tools, funcs] = usePluginStore .getState() .getAsTools( @@ -315,10 +316,10 @@ export class ChatGPTApi implements LLMApi { }>; const tool_calls = choices[0]?.delta?.tool_calls; if (tool_calls?.length > 0) { - const index = tool_calls[0]?.index; const id = tool_calls[0]?.id; const args = tool_calls[0]?.function?.arguments; if (id) { + index += 1; runTools.push({ id, type: tool_calls[0]?.type, @@ -340,6 +341,8 @@ export class ChatGPTApi implements LLMApi { toolCallMessage: any, toolCallResult: any[], ) => { + // reset index value + index = -1; // @ts-ignore requestPayload?.messages?.splice( // @ts-ignore diff --git a/app/components/markdown.tsx b/app/components/markdown.tsx index e871f8b42..fb00b700e 100644 --- a/app/components/markdown.tsx +++ b/app/components/markdown.tsx @@ -129,8 +129,9 @@ export function PreCode(props: { children: any }) { className="copy-code-button" onClick={() => { if (ref.current) { - const code = ref.current.innerText; - copyToClipboard(code); + copyToClipboard( + ref.current.querySelector("code")?.innerText ?? "", + ); } }} >