- Next.js: A JavaScript framework for building efficient and powerful web applications.
- TypeScript: A strongly typed programming language that enhances code quality and scalability.
- Trpc: "Typescript Remote Procedure Call". It is a way of calling functions on one computer (the server) from another computer (the client). With traditional HTTP/REST APIs, you call a URL and get a response. With RPC, you call a function and get a response.
- OpenAI: Utilizes OpenAI's models and APIs to embed and generate conversation, images, videos, code, and music.
- Langchain Framework: Framework for developing applications powered by language models.
- Pinecone: A vector database to provide long-term memory for high-performance AI applications
- Clerk: Clerk provides authentication and user management functionalities to ensure a secure and customized user experience.
- Prerequisites:
- Ensure you have Node.js installed.
- Installation:
- Clone this repository to your local machine.
- Open a terminal and navigate to the project directory.
- Run
npm installto install the required dependencies.
- Configuration:
- Create a
.envfile in the root directory of the project. - Copy and paste all the variables needed from
.env.exampleinto.env - Login to the listed platform on
.env.exampleto get your env variables
- Starting the Application:
- Run
npm run devin the terminal to start the application in development mode. - Open your web browser and navigate to
http://localhost:3000to access the application.
- Upon launching the application, users can sign up for an account or log in if they already have one.
- Users can upload document (PDF, DOCX, CSV)and chat with it right away
- Users can browse the different content generation options: Images, Videos, Code, and Music.
- Select the desired option and follow the prompts to customize and generate the content.
- Once generated, users can save or export the content in their desired file format.
Translation file is in
translations/{lang}.json. you can modify by screen, please provide correct key and translation in usage, or it will return the raw key.
cannot use.in key, so replace it with_
// ..
import { useTranslations } from 'next-intl';
const Component = () => {
// ...
const t = useTranslations()
// or
const t = useTranslations('Screen') // to use specific namespace
// ...
{t('key_here')}
// ...
} // ..
import { getTranslations } from 'next-intl/server';
const ServerComponent = async () => {
// ...
const t = await getTranslations('Home') // Home is namespace set in i18n file
// ...
{t('key_here')}
// ...
}