import PostalMime from "postal-mime";
import { createMimeMessage } from "mimetext";
import { EmailMessage } from "cloudflare:email";
export default {
async email(message, env, ctx) {
const email = await PostalMime.parse(message.raw);
const res = await env.AI.run("@cf/meta/llama-2-7b-chat-fp16", {
messages: [
{
role: "user",
content: email.text ?? "",
},
],
});
// message-id is generated by mimetext
const response = createMimeMessage();
response.setHeader("In-Reply-To", message.headers.get("Message-ID")!);
response.setSender("agent@example.com");
response.setRecipient(message.from);
response.setSubject("Llama response");
response.addMessage({
contentType: "text/plain",
data:
res instanceof ReadableStream
? await new Response(res).text()
: res.response!,
});
const replyMessage = new EmailMessage(
"<email>",
message.from,
response.asRaw(),
);
await message.reply(replyMessage);
},
} satisfies ExportedHandler<Env>;
import PostalMime from "postal-mime";
import { createMimeMessage } from "mimetext";
import { EmailMessage } from "cloudflare:email";
export default {
async email(message, env, ctx) {
const email = await PostalMime.parse(message.raw);
const res = await env.AI.run("@cf/meta/llama-2-7b-chat-fp16", {
messages: [
{
role: "user",
content: email.text ?? "",
},
],
});
// message-id is generated by mimetext
const response = createMimeMessage();
response.setHeader("In-Reply-To", message.headers.get("Message-ID")!);
response.setSender("agent@example.com");
response.setRecipient(message.from);
response.setSubject("Llama response");
response.addMessage({
contentType: "text/plain",
data:
res instanceof ReadableStream
? await new Response(res).text()
: res.response!,
});
const replyMessage = new EmailMessage(
"<email>",
message.from,
response.asRaw(),
);
await message.reply(replyMessage);
},
} satisfies ExportedHandler<Env>;