diff --git a/README.md b/README.md index f6a2419..204deb7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## Getting Started +# Getting Started ```bash npm run dev diff --git a/package.json b/package.json index b7f2d17..b80de5a 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "next": "13.1.6", "next-seo": "^5.15.0", "next-themes": "^0.2.1", + "nextjs-cors": "^2.1.2", "openai": "^3.1.0", "pg": "^8.9.0", "prism-react-renderer": "^1.3.5", diff --git a/pages/api/askme.ts b/pages/api/askme.ts index 57cf864..bbf2732 100644 --- a/pages/api/askme.ts +++ b/pages/api/askme.ts @@ -1,6 +1,7 @@ import { Client } from '@neondatabase/serverless'; -import cors from '../../lib/cors'; import { createStream, CompletionParams } from '../../lib/createStream'; +import NextCors from "nextjs-cors"; +import {NextApiRequest, NextApiResponse} from "next"; // import { // createParser, // ParsedEvent, @@ -27,13 +28,22 @@ export const config = { regions: ['fra1'], }; -export default async (req: Request) => { - const { query } = (await req.json()) as { - query?: string; - }; +export default async (req: NextApiRequest, res: NextApiResponse) => { + // Run the cors middleware + // nextjs-cors uses the cors package, so we invite you to check the documentation https://github.com/expressjs/cors + await NextCors(req, res, { + // Options + methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'], + origin: ["http://localhost:6006/"], + optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204 + }); + const query = req.body.search; + + console.log('request got', req) if (!query) { - return new Response('No prompt in the request', { status: 400 }); + res.status(400).json('No prompt in the request'); + return; } let prompt = ''; @@ -74,14 +84,11 @@ export default async (req: Request) => { )}\nAnswer:`; } finally { const stream = await createStream({ ...completionParams, prompt }); - // `cors` also takes care of handling OPTIONS requests - return cors( - req, - new Response(stream, { - status: 200, - headers: { 'Content-Type': 'application/json' }, - }) - ); + + return new Response(stream, { + status: 200, + headers: { 'Content-Type': 'application/json' }, + }) } };