Pass chat message name to chatcompletion endpoint
This commit is contained in:
parent
aaa2c48e7d
commit
5c18abadac
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue