diff --git a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx index 96e22bd4..979ae67b 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx @@ -1020,7 +1020,7 @@ export const SidebarChat = () => { {/* error message */} {latestError === undefined ? null : -
+
`Invalid ${displayInfoOfProviderName(providerName).title} API key.` + // ---------------- OPENAI ---------------- const openAIModelOptions = { // https://platform.openai.com/docs/pricing @@ -644,7 +646,7 @@ const _sendOpenAICompatibleFIM = ({ messages: messages_, onFinalMessage, onError onFinalMessage({ fullText, }); }) .catch(error => { - if (error instanceof OpenAI.APIError && error.status === 401) { onError({ message: 'Invalid API key.', fullError: error }); } + if (error instanceof OpenAI.APIError && error.status === 401) { onError({ message: invalidApiKeyMessage(providerName), fullError: error }); } else { onError({ message: error + '', fullError: error }); } }) } @@ -710,7 +712,7 @@ const _sendOpenAICompatibleChat = ({ messages: messages_, onText, onFinalMessage }) // when error/fail - this catches errors of both .create() and .then(for await) .catch(error => { - if (error instanceof OpenAI.APIError && error.status === 401) { onError({ message: 'Invalid API key.', fullError: error }); } + if (error instanceof OpenAI.APIError && error.status === 401) { onError({ message: invalidApiKeyMessage(providerName), fullError: error }); } else { onError({ message: error + '', fullError: error }); } }) } @@ -803,7 +805,7 @@ const sendAnthropicChat = ({ messages: messages_, onText, providerName, onFinalM }) // on error stream.on('error', (error) => { - if (error instanceof Anthropic.APIError && error.status === 401) { onError({ message: 'Invalid API key.', fullError: error }) } + if (error instanceof Anthropic.APIError && error.status === 401) { onError({ message: invalidApiKeyMessage(providerName), fullError: error }) } else { onError({ message: error + '', fullError: error }) } }) _setAborter(() => stream.controller.abort()) diff --git a/src/vs/workbench/contrib/void/electron-main/llmMessage/preprocessLLMMessages.ts b/src/vs/workbench/contrib/void/electron-main/llmMessage/preprocessLLMMessages.ts index 1aec2649..40eb880c 100644 --- a/src/vs/workbench/contrib/void/electron-main/llmMessage/preprocessLLMMessages.ts +++ b/src/vs/workbench/contrib/void/electron-main/llmMessage/preprocessLLMMessages.ts @@ -335,9 +335,9 @@ export const prepareFIMMessage = ({ }) => { let prefix = `\ -## You are a helpful coding assistant that performs autocomplete (fill-in-the middle or "FIM") for the user. +## You are a helpful coding assistant that performs autocomplete. ${!aiInstructions ? '' : `\ -## Special user instructions: +## Instructions: ${aiInstructions.split('\n').map(line => `##${line}`).join('\n')}`} ${messages.prefix}`