mirror of
https://github.com/voideditor/void
synced 2026-05-23 09:28:23 +00:00
style+FIM prompt
This commit is contained in:
parent
5cbd0a19a4
commit
5c047b78f3
3 changed files with 9 additions and 7 deletions
|
|
@ -1020,7 +1020,7 @@ export const SidebarChat = () => {
|
|||
|
||||
{/* error message */}
|
||||
{latestError === undefined ? null :
|
||||
<div className='px-2'>
|
||||
<div className='px-2 my-1'>
|
||||
<ErrorDisplay
|
||||
message={latestError.message}
|
||||
fullError={latestError.fullError}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import { Ollama } from 'ollama';
|
|||
import { Model as OpenAIModel } from 'openai/resources/models.js';
|
||||
import { OllamaModelResponse, OnText, OnFinalMessage, OnError, LLMChatMessage, LLMFIMMessage, ModelListParams } from '../../common/llmMessageTypes.js';
|
||||
import { InternalToolInfo, isAToolName } from '../../common/toolsService.js';
|
||||
import { defaultProviderSettings, ProviderName, SettingsOfProvider } from '../../common/voidSettingsTypes.js';
|
||||
import { defaultProviderSettings, displayInfoOfProviderName, ProviderName, SettingsOfProvider } from '../../common/voidSettingsTypes.js';
|
||||
import { prepareFIMMessage, prepareMessages } from './preprocessLLMMessages.js';
|
||||
import { extractReasoningFromText } from '../../browser/helpers/extractCodeFromResult.js';
|
||||
|
||||
|
|
@ -79,6 +79,8 @@ const modelOptionDefaults: ModelOptions = {
|
|||
supportsReasoningOutput: false,
|
||||
}
|
||||
|
||||
const invalidApiKeyMessage = (providerName: ProviderName) => `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())
|
||||
|
|
|
|||
|
|
@ -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}`
|
||||
|
|
|
|||
Loading…
Reference in a new issue