Merge pull request #3441 from SillyTavern/gpt-o1-o3-streaming Enable streaming for gpt-o1 and gpt-o3

4492828b9fdb8f7b6c9987630b5702c8b2090021

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
2 files changed, +4 -6Ignore whitespace
public/script.js+2 -2
@@ -3089,8 +3089,8 @@ export function isStreamingEnabled() {
3089 (main_api == 'openai' &&3089 (main_api == 'openai' &&
3090 oai_settings.stream_openai &&3090 oai_settings.stream_openai &&
3091 !noStreamSources.includes(oai_settings.chat_completion_source) &&3091 !noStreamSources.includes(oai_settings.chat_completion_source) &&
3092 !(oai_settings.chat_completion_source == chat_completion_sources.OPENAI && (oai_settings.openai_model.startsWith('o1') || oai_settings.openai_model.startsWith('o3'))) &&3092 !(oai_settings.chat_completion_source == chat_completion_sources.OPENAI && ['o1-2024-12-17', 'o1'].includes(oai_settings.openai_model))
3093 !(oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE && oai_settings.google_model.includes('bison')))3093 )
3094 || (main_api == 'kobold' && kai_settings.streaming_kobold && kai_flags.can_use_streaming)3094 || (main_api == 'kobold' && kai_settings.streaming_kobold && kai_flags.can_use_streaming)
3095 || (main_api == 'novel' && nai_settings.streaming_novel)3095 || (main_api == 'novel' && nai_settings.streaming_novel)
3096 || (main_api == 'textgenerationwebui' && textgen_settings.streaming));3096 || (main_api == 'textgenerationwebui' && textgen_settings.streaming));
public/scripts/openai.js+2 -4
@@ -1869,7 +1869,7 @@ async function sendOpenAIRequest(type, messages, signal) {
1869 const isQuiet = type === 'quiet';1869 const isQuiet = type === 'quiet';
1870 const isImpersonate = type === 'impersonate';1870 const isImpersonate = type === 'impersonate';
1871 const isContinue = type === 'continue';1871 const isContinue = type === 'continue';
1872 const stream = oai_settings.stream_openai && !isQuiet && !isScale && !(isGoogle && oai_settings.google_model.includes('bison')) && !(isOAI && (oai_settings.openai_model.startsWith('o1') || oai_settings.openai_model.startsWith('o3')));1872 const stream = oai_settings.stream_openai && !isQuiet && !isScale && !(isOAI && ['o1-2024-12-17', 'o1'].includes(oai_settings.openai_model));
1873 const useLogprobs = !!power_user.request_token_probabilities;1873 const useLogprobs = !!power_user.request_token_probabilities;
1874 const canMultiSwipe = oai_settings.n > 1 && !isContinue && !isImpersonate && !isQuiet && (isOAI || isCustom);1874 const canMultiSwipe = oai_settings.n > 1 && !isContinue && !isImpersonate && !isQuiet && (isOAI || isCustom);
18751875
@@ -2059,7 +2059,6 @@ async function sendOpenAIRequest(type, messages, signal) {
2059 });2059 });
2060 generate_data.max_completion_tokens = generate_data.max_tokens;2060 generate_data.max_completion_tokens = generate_data.max_tokens;
2061 delete generate_data.max_tokens;2061 delete generate_data.max_tokens;
2062 delete generate_data.stream;
2063 delete generate_data.logprobs;2062 delete generate_data.logprobs;
2064 delete generate_data.top_logprobs;2063 delete generate_data.top_logprobs;
2065 delete generate_data.n;2064 delete generate_data.n;
@@ -2070,8 +2069,7 @@ async function sendOpenAIRequest(type, messages, signal) {
2070 delete generate_data.tools;2069 delete generate_data.tools;
2071 delete generate_data.tool_choice;2070 delete generate_data.tool_choice;
2072 delete generate_data.stop;2071 delete generate_data.stop;
2073 // It does support logit_bias, but the tokenizer used and its effect is yet unknown.2072 delete generate_data.logit_bias;
2074 // delete generate_data.logit_bias;
2075 }2073 }
20762074
2077 await eventSource.emit(event_types.CHAT_COMPLETION_SETTINGS_READY, generate_data);2075 await eventSource.emit(event_types.CHAT_COMPLETION_SETTINGS_READY, generate_data);