Pass chat message name to chatcompletion endpoint

This commit is contained in:
maver 2023-06-25 18:44:07 +02:00
parent aaa2c48e7d
commit 5c18abadac
2 changed files with 11 additions and 4 deletions

View File

@ -546,6 +546,8 @@ PromptManagerModule.prototype.preparePrompt = function (prompt, original = null)
else preparedPrompt.content = substituteParams(prompt.content); else preparedPrompt.content = substituteParams(prompt.content);
} }
if (prompt.name) preparedPrompt.name = prompt.name;
return preparedPrompt; return preparedPrompt;
} }

View File

@ -250,7 +250,8 @@ function setOpenAIMessages(chat) {
// Apply the "wrap in quotes" option // Apply the "wrap in quotes" option
if (role == 'user' && oai_settings.wrap_in_quotes) content = `"${content}"`; if (role == 'user' && oai_settings.wrap_in_quotes) content = `"${content}"`;
openai_msgs[i] = { "role": role, "content": content }; const name = chat[j]['name'];
openai_msgs[i] = { "role": role, "content": content, name: name};
j++; j++;
} }
@ -393,7 +394,7 @@ function populateChatHistory(prompts, chatCompletion) {
// Insert chat messages as long as there is budget available // Insert chat messages as long as there is budget available
[...openai_msgs].reverse().every((prompt, index) => { [...openai_msgs].reverse().every((prompt, index) => {
const chatMessage = new Message(prompt.role, prompt.content, 'chatHistory-' + index); const chatMessage = new Message(prompt.role, prompt.content, 'chatHistory-' + index, prompt.name);
if (chatCompletion.canAfford(chatMessage)) chatCompletion.insertAtStart(chatMessage, 'chatHistory'); if (chatCompletion.canAfford(chatMessage)) chatCompletion.insertAtStart(chatMessage, 'chatHistory');
else return false; else return false;
return true; return true;
@ -615,6 +616,8 @@ function prepareOpenAIMessages({
} }
} finally { } finally {
promptManager.populateTokenHandler(chatCompletion.getMessages()); promptManager.populateTokenHandler(chatCompletion.getMessages());
// All information are up-to-date, render without dry-run.
promptManager.render(false); promptManager.render(false);
} }
@ -1186,10 +1189,11 @@ class TokenBudgetExceededError extends Error {
class Message { class Message {
tokens; identifier; role; content; tokens; identifier; role; content;
constructor(role, content, identifier) { constructor(role, content, identifier, name = '') {
this.identifier = identifier; this.identifier = identifier;
this.role = role; this.role = role;
this.content = content; this.content = content;
this.name = name;
if (this.content) { if (this.content) {
this.tokens = tokenHandler.count({role: this.role, content: this.content}) this.tokens = tokenHandler.count({role: this.role, content: this.content})
@ -1315,7 +1319,8 @@ class ChatCompletion {
for (let item of this.messages.collection) { for (let item of this.messages.collection) {
if (item instanceof MessageCollection) { if (item instanceof MessageCollection) {
const messages = item.collection.reduce((acc, message) => { const messages = item.collection.reduce((acc, message) => {
if (message.content) acc.push({role: message.role, content: message.content}); const name = message.name;
if (message.content) acc.push({role: message.role, ...(name && { name }), content: message.content});
return acc; return acc;
}, []); }, []);
chat.push(...messages); chat.push(...messages);