A multimodal AI chatbot built with the Vercel AI SDK, React (TypeScript), Next.js, NextAuth.js, and Material UI.
It can read incoming messages, convert speech to text, and analyze multiple images at the same time.
Supports OpenAI, Anthropic, and Google models and their API keys.
OPENAI_API_KEY - go to https://platform.openai.com/account/api-keys
ANTHROPIC_API_KEY - go to https://docs.anthropic.com/en/api/getting-started
GOOGLE_GENERATIVE_AI_API_KEY - go to https://aistudio.google.com/apikey
GITHUB_ID - go to GitHub -> Settings -> Developer Settings -> OAuth Apps -> New OAuth App
GITHUB_SECRET - go to GitHub -> Settings -> Developer Settings -> OAuth Apps -> New OAuth App
NEXTAUTH_SECRET - generate a random string
Currently, there is no database support.
npm install
npm run dev
Then navigate to http://localhost:3000 in your browser
BUILD the app as a Docker image, run it as a Docker container and push it to your Docker Hub repository
-
Navigate to the project's root directory (where the
dockerfileand.env.localreside). -
Assuming Docker is installed, build the Docker image:
docker build -t docker-username/docker-hub-repository:tag .- Once the image has been built, run the container, assign it a name and map app host's port 3000 to the container's port 3000:
docker run -d -p 3000:3000 --name sofos-docker --env-file .env.local docker-username/docker-hub-repository:tag- Open your browser and navigate to http://localhost:3000.
If you need hot reloading for development, remember to mount your working directory as a volume:
docker run -p 3000:3000 --name sofos-docker -v "$(pwd):/app" --env-file .env.local docker-username/docker-hub-repository:tag- Push the image to your Docker Hub repository
docker push docker-username/docker-hub-repository:tag