Perplexity: Add reasoning model, remove deprecated models

15a3cfcb8ae2d81643dbcf25d81111f29883de1b

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

3 files changed, +19 -38Ignore whitespace
public/index.html+7 -20
@@ -3227,32 +3227,19 @@
32273227 <h4 data-i18n="Perplexity Model">Perplexity Model</h4>
32283228 <select id="model_perplexity_select">
32293229 <optgroup label="Perplexity Sonar Models">
3230+ <option value="sonar">sonar</option>
3231+ <option value="sonar-pro">sonar-pro</option>
3232+ <option value="sonar-reasoning">sonar-reasoning</option>
3233+ </optgroup>
3234+ <optgroup label="Deprecated Models">
3235+ <!-- These are scheduled for deprecation after 2/22/2025 -->
32303236 <option value="llama-3.1-sonar-small-128k-online">llama-3.1-sonar-small-128k-online</option>
32313237 <option value="llama-3.1-sonar-large-128k-online">llama-3.1-sonar-large-128k-online</option>
32323238 <option value="llama-3.1-sonar-huge-128k-online">llama-3.1-sonar-huge-128k-online</option>
3233- </optgroup>
3239+ <!-- These are not listed on the site anymore -->
3234- <optgroup label="Perplexity Chat Models">
32353240 <option value="llama-3.1-sonar-small-128k-chat">llama-3.1-sonar-small-128k-chat</option>
32363241 <option value="llama-3.1-sonar-large-128k-chat">llama-3.1-sonar-large-128k-chat</option>
32373242 </optgroup>
3238- <optgroup label="Open-Source Models">
3239- <option value="llama-3.1-8b-instruct">llama-3.1-8b-instruct</option>
3240- <option value="llama-3.1-70b-instruct">llama-3.1-70b-instruct</option>
3241- </optgroup>
3242- <optgroup label="Deprecated Models">
3243- <option value="llama-3-sonar-small-32k-chat">llama-3-sonar-small-32k-chat</option>
3244- <option value="llama-3-sonar-small-32k-online">llama-3-sonar-small-32k-online</option>
3245- <option value="llama-3-sonar-large-32k-chat">llama-3-sonar-large-32k-chat</option>
3246- <option value="llama-3-sonar-large-32k-online">llama-3-sonar-large-32k-online</option>
3247- <option value="sonar-small-chat">sonar-small-chat</option>
3248- <option value="sonar-small-online">sonar-small-online</option>
3249- <option value="sonar-medium-chat">sonar-medium-chat</option>
3250- <option value="sonar-medium-online">sonar-medium-online</option>
3251- <option value="llama-3-8b-instruct">llama-3-8b-instruct</option>
3252- <option value="llama-3-70b-instruct">llama-3-70b-instruct</option>
3253- <option value="mistral-7b-instruct">mistral-7b-instruct (v0.2)</option>
3254- <option value="mixtral-8x7b-instruct">mixtral-8x7b-instruct</option>
3255- </optgroup>
32563243 </select>
32573244 </div>
32583245 <form id="cohere_form" data-source="cohere" action="javascript:void(null);" method="post" enctype="multipart/form-data">
public/scripts/openai.js+9 -18
@@ -258,7 +258,7 @@ const default_settings = {
258258 ai21_model: 'jamba-1.5-large',
259259 mistralai_model: 'mistral-large-latest',
260260 cohere_model: 'command-r-plus',
261261 perplexity_model: 'llama-3.1-70bsonar-instructpro',
262262 groq_model: 'llama-3.1-70b-versatile',
263263 nanogpt_model: 'gpt-4o-mini',
264264 zerooneai_model: 'yi-large',
@@ -337,7 +337,7 @@ const oai_settings = {
337337 ai21_model: 'jamba-1.5-large',
338338 mistralai_model: 'mistral-large-latest',
339339 cohere_model: 'command-r-plus',
340340 perplexity_model: 'llama-3.1-70bsonar-instructpro',
341341 groq_model: 'llama-3.1-70b-versatile',
342342 nanogpt_model: 'gpt-4o-mini',
343343 zerooneai_model: 'yi-large',
@@ -4380,28 +4380,19 @@ async function onModelChange() {
43804380 if (oai_settings.max_context_unlocked) {
43814381 $('#openai_max_context').attr('max', unlocked_max);
43824382 }
4383+ else if (['sonar', 'sonar-reasoning'].includes(oai_settings.perplexity_model)) {
4384+ $('#openai_max_context').attr('max', 127000);
4385+ }
4386+ else if (['sonar-pro'].includes(oai_settings.perplexity_model)) {
4387+ $('#openai_max_context').attr('max', 200000);
4388+ }
43834389 else if (oai_settings.perplexity_model.includes('llama-3.1')) {
43844390 const isOnline = oai_settings.perplexity_model.includes('online');
43854391 const contextSize = isOnline ? 128 * 1024 - 4000 : 128 * 1024;
43864392 $('#openai_max_context').attr('max', contextSize);
43874393 }
4388- else if (['llama-3-sonar-small-32k-chat', 'llama-3-sonar-large-32k-chat'].includes(oai_settings.perplexity_model)) {
4389- $('#openai_max_context').attr('max', max_32k);
4390- }
4391- else if (['llama-3-sonar-small-32k-online', 'llama-3-sonar-large-32k-online'].includes(oai_settings.perplexity_model)) {
4392- $('#openai_max_context').attr('max', 28000);
4393- }
4394- else if (['sonar-small-chat', 'sonar-medium-chat', 'codellama-70b-instruct', 'mistral-7b-instruct', 'mixtral-8x7b-instruct', 'mixtral-8x22b-instruct'].includes(oai_settings.perplexity_model)) {
4395- $('#openai_max_context').attr('max', max_16k);
4396- }
4397- else if (['llama-3-8b-instruct', 'llama-3-70b-instruct'].includes(oai_settings.perplexity_model)) {
4398- $('#openai_max_context').attr('max', max_8k);
4399- }
4400- else if (['sonar-small-online', 'sonar-medium-online'].includes(oai_settings.perplexity_model)) {
4401- $('#openai_max_context').attr('max', 12000);
4402- }
44034394 else {
44044395 $('#openai_max_context').attr('max', max_4kmax_128k);
44054396 }
44064397 oai_settings.openai_max_context = Math.min(Number($('#openai_max_context').attr('max')), oai_settings.openai_max_context);
44074398 $('#openai_max_context').val(oai_settings.openai_max_context).trigger('input');
public/scripts/tokenizers.js+3 -0
@@ -679,6 +679,9 @@ export function getTokenizerModel() {
679679 }
680680
681681 if (oai_settings.chat_completion_source === chat_completion_sources.PERPLEXITY) {
682+ if (oai_settings.perplexity_model.includes('sonar-reasoning')) {
683+ return deepseekTokenizer;
684+ }
682685 if (oai_settings.perplexity_model.includes('llama-3') || oai_settings.perplexity_model.includes('llama3')) {
683686 return llama3Tokenizer;
684687 }