feat: convert to nextjs

This commit is contained in:
2024-12-07 07:45:24 +01:00
parent b248ee80ee
commit 633b8ee207
52 changed files with 4121 additions and 982 deletions

54
utils/consumer/store.ts Normal file
View File

@@ -0,0 +1,54 @@
import 'dotenv/config';
import { Consumer, consumerSchema } from './types';
import { Tool } from './tool';
import { BaseTool, makeRequest } from '../anthropicClient';
import { generatePrompt } from './prompt';
import { generateConsumerSeed } from '@utils/generateConsumerSeed';
import prisma from '../../prisma/prisma';
export async function generate() {
const { letters, birthday, zipCode } = generateConsumerSeed();
const newConsumer = await prisma.consumer.create({
data: {
letters,
birthday: birthday.toDate(),
zipCode
}
});
console.info(`New consumer being generated with id ${newConsumer.id}`);
const prompt = generatePrompt(letters, birthday, zipCode);
try {
const result = (await makeRequest(prompt, Tool as BaseTool)) as Consumer;
const validConsumer = consumerSchema.safeParse(result);
if (validConsumer.error) {
throw Error(`Invalid consumer generated: ${validConsumer.error.message}`);
}
console.info('Generated consumer by Anthropic', validConsumer.data);
await prisma.consumer.update({
where: {
id: newConsumer.id
},
data: {
value: validConsumer.data
}
});
console.info(`Consumer with id ${newConsumer.id} stored in database.`);
return {
id: newConsumer.id,
consumer: validConsumer.data
};
} catch (error) {
console.error('Error generating purchases:', error);
throw error;
}
}