llama-gpt/pages/api/chat.ts

39 lines
909 B
TypeScript

import { Message, OpenAIModel } from "@/types";
import { OpenAIStream } from "@/utils";
export const config = {
runtime: "edge"
};
const handler = async (req: Request): Promise<Response> => {
try {
const { model, messages, key } = (await req.json()) as {
model: OpenAIModel;
messages: Message[];
key: string;
};
const charLimit = 12000;
let charCount = 0;
let messagesToSend = [];
for (let i = 0; i < messages.length; i++) {
const message = messages[i];
if (charCount + message.content.length > charLimit) {
break;
}
charCount += message.content.length;
messagesToSend.push(message);
}
const stream = await OpenAIStream(model, key, messagesToSend);
return new Response(stream);
} catch (error) {
console.error(error);
return new Response("Error", { status: 500 });
}
};
export default handler;