Use Iterable when converting to OpenAI messages
This commit is contained in:
parent
0c0cbceb46
commit
32dd705498
2 changed files with 10 additions and 7 deletions
|
@ -274,7 +274,9 @@ async function executeFromQueue(channel: string) {
|
||||||
await message.deferReply();
|
await message.deferReply();
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenAImessages = toOpenAIMessages(messages);
|
messages.sort((a, b) => b.createdTimestamp - a.createdTimestamp);
|
||||||
|
|
||||||
|
OpenAImessages = toOpenAIMessages(messages.values());
|
||||||
let generatedMessage: ChatCompletionResponseMessage | undefined = undefined;
|
let generatedMessage: ChatCompletionResponseMessage | undefined = undefined;
|
||||||
let answer: Awaited<ReturnType<typeof openai.createChatCompletion>>;
|
let answer: Awaited<ReturnType<typeof openai.createChatCompletion>>;
|
||||||
|
|
||||||
|
|
|
@ -92,17 +92,18 @@ function getAuthorUsername(message: DiscordMessage): string | undefined {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts the Collection of Discord Messages to array of OpenAI Messages to send
|
* Converts the Iterable of Discord Messages to array of OpenAI Messages to send
|
||||||
* @param messages the collection to convert
|
* first message in the interable will be the last of the returned array (reverse order)
|
||||||
|
* @param messages the iterable to convert
|
||||||
* @returns the converted messages
|
* @returns the converted messages
|
||||||
*/
|
*/
|
||||||
export default function toOpenAIMessages(messages: Collection<string, DiscordMessage>): OpenAIMessage[] {
|
export default function toOpenAIMessages(
|
||||||
|
messages: Iterable<DiscordMessage>,
|
||||||
|
): OpenAIMessage[] {
|
||||||
const rvalue: OpenAIMessage[] = [];
|
const rvalue: OpenAIMessage[] = [];
|
||||||
let tokenCount = 0;
|
let tokenCount = 0;
|
||||||
|
|
||||||
messages.sort((a, b) => b.createdTimestamp - a.createdTimestamp);
|
for (const message of messages) {
|
||||||
|
|
||||||
for (const message of messages.values()) {
|
|
||||||
const content = formatMessage(message);
|
const content = formatMessage(message);
|
||||||
// FIXME: tokens are not being counted properly (it's lower than it is) but it's enough for me for now.
|
// FIXME: tokens are not being counted properly (it's lower than it is) but it's enough for me for now.
|
||||||
tokenCount += countTokens(content);
|
tokenCount += countTokens(content);
|
||||||
|
|
Loading…
Reference in a new issue