Horizon AI Boilerplate - @shadcn/ui
Shadcn UI Chat AI
The implementation of ChatGPT appears two times in our project.
- The Chat stream is located in src/utils/**and for it there is an accordingapp/api/**page.
- In the chat page, we call the API from the API route, which makes the calls for ChatGPT and offers a JSON response, which contains a markdown message, translated by our markdown parser. Everything is taken care of!
1. AI Chat
/components/dashboard/ai-chat.tsx
     // -------------- Fetch --------------
    const response = await fetch('/api/chatAPI', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      signal: controller.signal,
      body: JSON.stringify(body),
    });/app/api/chatAPI/route.ts
    
import { OpenAIStream } from '@/utils/chatStream';
 
.............................
 
 const stream = await OpenAIStream(
      inputMessage,
      model,
      apiKeyFinal,
    );
 
    return new Response(stream);
2. AI Essay Generator
This works as an example. You can create what type of generator you want/need.
/components/dashboard/ai-chat.tsx
     // -------------- Fetch --------------
    const response = await fetch('/api/essayAPI', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      signal: controller.signal,
      body: JSON.stringify(body),
    });/app/api/essayAPI/route.ts
    
import { OpenAIStream } from '@/utils/chatStream';
 
.............................
 
const stream = await OpenAIStream(
      topic,
      essayType,
      words,
      model,
      apiKeyFinal,
    );
 
 
    return new Response(stream);