mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-10-19 05:48:15 +00:00
95 lines
1.9 KiB
TypeScript
95 lines
1.9 KiB
TypeScript
import ModelRegistry from '@/lib/models/registry';
|
|
import { Model } from '@/lib/models/types';
|
|
import { NextRequest } from 'next/server';
|
|
|
|
export const POST = async (
|
|
req: NextRequest,
|
|
{ params }: { params: Promise<{ id: string }> },
|
|
) => {
|
|
try {
|
|
const { id } = await params;
|
|
|
|
const body: Partial<Model> & { type: 'embedding' | 'chat' } =
|
|
await req.json();
|
|
|
|
if (!body.key || !body.name) {
|
|
return Response.json(
|
|
{
|
|
message: 'Key and name must be provided',
|
|
},
|
|
{
|
|
status: 400,
|
|
},
|
|
);
|
|
}
|
|
|
|
const registry = new ModelRegistry();
|
|
|
|
await registry.addProviderModel(id, body.type, body);
|
|
|
|
return Response.json(
|
|
{
|
|
message: 'Model added successfully',
|
|
},
|
|
{
|
|
status: 200,
|
|
},
|
|
);
|
|
} catch (err) {
|
|
console.error('An error occurred while adding provider model', err);
|
|
return Response.json(
|
|
{
|
|
message: 'An error has occurred.',
|
|
},
|
|
{
|
|
status: 500,
|
|
},
|
|
);
|
|
}
|
|
};
|
|
|
|
export const DELETE = async (
|
|
req: NextRequest,
|
|
{ params }: { params: Promise<{ id: string }> },
|
|
) => {
|
|
try {
|
|
const { id } = await params;
|
|
|
|
const body: { key: string; type: 'embedding' | 'chat' } = await req.json();
|
|
|
|
if (!body.key) {
|
|
return Response.json(
|
|
{
|
|
message: 'Key and name must be provided',
|
|
},
|
|
{
|
|
status: 400,
|
|
},
|
|
);
|
|
}
|
|
|
|
const registry = new ModelRegistry();
|
|
|
|
await registry.removeProviderModel(id, body.type, body.key);
|
|
|
|
return Response.json(
|
|
{
|
|
message: 'Model added successfully',
|
|
},
|
|
{
|
|
status: 200,
|
|
},
|
|
);
|
|
} catch (err) {
|
|
console.error('An error occurred while deleting provider model', err);
|
|
return Response.json(
|
|
{
|
|
message: 'An error has occurred.',
|
|
},
|
|
{
|
|
status: 500,
|
|
},
|
|
);
|
|
}
|
|
};
|