| | const { CohereConstants } = require('librechat-data-provider'); |
| | const { titleInstruction } = require('../prompts/titlePrompts'); |
| |
|
| | |
| | const roleMap = { |
| | user: CohereConstants.ROLE_USER, |
| | assistant: CohereConstants.ROLE_CHATBOT, |
| | system: CohereConstants.ROLE_SYSTEM, |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | function createCoherePayload({ modelOptions }) { |
| | |
| | let preamble; |
| | let latestUserMessageContent = ''; |
| | const { |
| | stream, |
| | stop, |
| | top_p, |
| | temperature, |
| | frequency_penalty, |
| | presence_penalty, |
| | max_tokens, |
| | messages, |
| | model, |
| | ...rest |
| | } = modelOptions; |
| |
|
| | |
| | let chatHistory = messages.reduce((acc, message, index, arr) => { |
| | const isLastUserMessage = index === arr.length - 1 && message.role === 'user'; |
| |
|
| | const messageContent = |
| | typeof message.content === 'string' |
| | ? message.content |
| | : message.content.map((part) => (part.type === 'text' ? part.text : '')).join(' '); |
| |
|
| | if (isLastUserMessage) { |
| | latestUserMessageContent = messageContent; |
| | } else { |
| | acc.push({ |
| | role: roleMap[message.role] || CohereConstants.ROLE_USER, |
| | message: messageContent, |
| | }); |
| | } |
| |
|
| | return acc; |
| | }, []); |
| |
|
| | if ( |
| | chatHistory.length === 1 && |
| | chatHistory[0].role === CohereConstants.ROLE_SYSTEM && |
| | !latestUserMessageContent.length |
| | ) { |
| | const message = chatHistory[0].message; |
| | latestUserMessageContent = message.includes(titleInstruction) |
| | ? CohereConstants.TITLE_MESSAGE |
| | : '.'; |
| | preamble = message; |
| | } |
| |
|
| | return { |
| | message: latestUserMessageContent, |
| | model: model, |
| | chatHistory, |
| | stream: stream ?? false, |
| | temperature: temperature, |
| | frequencyPenalty: frequency_penalty, |
| | presencePenalty: presence_penalty, |
| | maxTokens: max_tokens, |
| | stopSequences: stop, |
| | preamble, |
| | p: top_p, |
| | ...rest, |
| | }; |
| | } |
| |
|
| | module.exports = createCoherePayload; |
| |
|