Files
OpenPipe-llm/app/src/utils/countTokens.ts
2023-08-05 10:00:10 -07:00

18 lines
520 B
TypeScript

import { type ChatCompletion } from "openai/resources/chat";
import { GPTTokens } from "gpt-tokens";
import { type SupportedModel } from "~/modelProviders/openai-ChatCompletion";
interface GPTTokensMessageItem {
name?: string;
role: "system" | "user" | "assistant";
content: string;
}
export const countOpenAIChatTokens = (
model: SupportedModel,
messages: ChatCompletion.Choice.Message[],
) => {
return new GPTTokens({ model, messages: messages as unknown as GPTTokensMessageItem[] })
.usedTokens;
};