Don't add user placeholders
| @@ -64,11 +64,11 @@ function postProcessPrompt(messages, type, names) { | |||
| 64 | switch (type) { | 64 | switch (type) { |
| 65 | case 'merge': | 65 | case 'merge': |
| 66 | case 'claude': | 66 | case 'claude': |
| 67 | return mergeMessages(messages, names, false); | 67 | return mergeMessages(messages, names, false, true); |
| 68 | case 'strict': | 68 | case 'strict': |
| 69 | return mergeMessages(messages, names, true); | 69 | return mergeMessages(messages, names, true, true); |
| 70 | case 'deepseek': | 70 | case 'deepseek': |
| 71 | return (x => x[x.length - 1].role !== 'assistant' || (x[x.length - 1].prefix = true) ? x : x)([...mergeMessages(messages, names, true)]); | 71 | return (x => x.length && (x[x.length - 1].role !== 'assistant' || (x[x.length - 1].prefix = true)) ? x : x)(mergeMessages(messages, names, true, false)); |
| 72 | default: | 72 | default: |
| 73 | return messages; | 73 | return messages; |
| 74 | } | 74 | } |
| @@ -639,9 +639,10 @@ export function convertMistralMessages(messages, names) { | |||
| 639 | * @param {any[]} messages Messages to merge | 639 | * @param {any[]} messages Messages to merge |
| 640 | * @param {PromptNames} names Prompt names | 640 | * @param {PromptNames} names Prompt names |
| 641 | * @param {boolean} strict Enable strict mode: only allow one system message at the start, force user first message | 641 | * @param {boolean} strict Enable strict mode: only allow one system message at the start, force user first message |
| 642 | * @param {boolean} placeholders Add user placeholders to the messages in strict mode | ||
| 642 | * @returns {any[]} Merged messages | 643 | * @returns {any[]} Merged messages |
| 643 | */ | 644 | */ |
| 644 | export function mergeMessages(messages, names, strict) { | 645 | export function mergeMessages(messages, names, strict, placeholders) { |
| 645 | let mergedMessages = []; | 646 | let mergedMessages = []; |
| 646 | 647 | ||
| 647 | /** @type {Map<string,object>} */ | 648 | /** @type {Map<string,object>} */ |
| @@ -700,9 +701,9 @@ export function mergeMessages(messages, names, strict) { | |||
| 700 | } | 701 | } |
| 701 | }); | 702 | }); |
| 702 | 703 | ||
| 703 | // Prevent erroring out if the messages array is empty. | 704 | // Prevent erroring out if the mergedMessages array is empty. |
| 704 | if (messages.length === 0) { | 705 | if (mergedMessages.length === 0) { |
| 705 | messages.unshift({ | 706 | mergedMessages.unshift({ |
| 706 | role: 'user', | 707 | role: 'user', |
| 707 | content: PROMPT_PLACEHOLDER, | 708 | content: PROMPT_PLACEHOLDER, |
| 708 | }); | 709 | }); |
| @@ -741,7 +742,7 @@ export function mergeMessages(messages, names, strict) { | |||
| 741 | mergedMessages[i].role = 'user'; | 742 | mergedMessages[i].role = 'user'; |
| 742 | } | 743 | } |
| 743 | } | 744 | } |
| 744 | if (mergedMessages.length) { | 745 | if (mergedMessages.length && placeholders) { |
| 745 | if (mergedMessages[0].role === 'system' && (mergedMessages.length === 1 || mergedMessages[1].role !== 'user')) { | 746 | if (mergedMessages[0].role === 'system' && (mergedMessages.length === 1 || mergedMessages[1].role !== 'user')) { |
| 746 | mergedMessages.splice(1, 0, { role: 'user', content: PROMPT_PLACEHOLDER }); | 747 | mergedMessages.splice(1, 0, { role: 'user', content: PROMPT_PLACEHOLDER }); |
| 747 | } | 748 | } |
| @@ -749,7 +750,7 @@ export function mergeMessages(messages, names, strict) { | |||
| 749 | mergedMessages.unshift({ role: 'user', content: PROMPT_PLACEHOLDER }); | 750 | mergedMessages.unshift({ role: 'user', content: PROMPT_PLACEHOLDER }); |
| 750 | } | 751 | } |
| 751 | } | 752 | } |
| 752 | return mergeMessages(mergedMessages, names, false); | 753 | return mergeMessages(mergedMessages, names, false, placeholders); |
| 753 | } | 754 | } |
| 754 | 755 | ||
| 755 | return mergedMessages; | 756 | return mergedMessages; |