https://github.com/nedhmn/ygo-ruling-ai-chatbot
AI chatbot for Yu-Gi-Oh! Goat Format rulings, built with Next.js and powered by RAG.
https://github.com/nedhmn/ygo-ruling-ai-chatbot
ai ai-rag nextjs openai pinecone turborepo yu-gi-oh yugioh
Last synced: about 1 month ago
JSON representation
AI chatbot for Yu-Gi-Oh! Goat Format rulings, built with Next.js and powered by RAG.
- Host: GitHub
- URL: https://github.com/nedhmn/ygo-ruling-ai-chatbot
- Owner: nedhmn
- License: mit
- Created: 2025-05-10T13:58:51.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-17T18:34:41.000Z (about 1 year ago)
- Last Synced: 2025-05-17T19:20:12.975Z (about 1 year ago)
- Topics: ai, ai-rag, nextjs, openai, pinecone, turborepo, yu-gi-oh, yugioh
- Language: TypeScript
- Homepage: https://nedhmn.github.io/ygo-ruling-ai-chatbot/
- Size: 1.69 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Yu-Gi-Oh! Ruling AI Chatbot
[](https://nedhmn.github.io/ygo-ruling-ai-chatbot/)
[](./LICENSE)
A monorepo for a Yu-Gi-Oh! ruling AI chatbot focused on [Goat Format](https://www.goatformat.com/whatisgoat.html), built with Turborepo. It leverages AI RAG with OpenAI embeddings and Pinecone for specialized context.
## ✨ Key Features
- **Accurate Ruling Responses:** Provides precise answers for Yu-Gi-Oh! Goat Format rulings using a RAG approach.
- **AI-Powered Chatbot:** Combine AI reasoning and relevant context for comprehensive answers.
- **Dockerized Environment:** Ensures easy, consistent setup.
- **Turborepo Monorepo:** Efficiently manages project packages and applications.
## 🛠️ Technologies Used
- **Next.js:** React framework for the chatbot.
- **Vercel AI SDK:** Integrates with AI models.
- **OpenAI:** Used for embeddings and AI models.
- **Pinecone:** Vector database for ruling embeddings.
- **Tailwind CSS:** Utility-first CSS.
- **shadcn/ui:** Reusable UI components.
- **Turborepo:** Monorepo management.
- **ESLint & Prettier:** Code linting and formatting.
- **Cheerio:** Web scraping library for server-side jQuery.
- **Nextra:** Documentation framework.
- **Docker/docker-compose:** Containerization.
- **TypeScript:** For type safety.
## 🚀 Getting Started
This guide will help you get the Yu-Gi-Oh! Ruling AI Chatbot up and running.
### Prerequisites
You will need the following installed:
- **Docker** and **Docker Compose**
Refer to the **[Documentation](https://nedhmn.github.io/ygo-ruling-ai-chatbot/getting-started/installation)** for detailed installation instructions if needed.
### Clone the Repository
```bash
git clone https://github.com/nedhmn/ygo-ruling-ai-chatbot.git
cd ygo-ruling-ai-chatbot
```
### Configure Your Environment
You need to configure environment variables for the `seeder` and `web` services. Example files are provided to help you.
1. **Create `./packages/seeder/.env.local`:**
Navigate to the `./packages/seeder` directory. Copy the content from `.env.example` in that directory and create a new file named `.env.local`. Fill in the required environment variables for the seeder service).
2. **Create `./apps/web/.env.local`:**
Navigate to the `./apps/web` directory. Copy the content from `.env.example` in that directory and create a new file named `.env.local`. Fill in the required environment variables for the web service.
Refer to the **[Documentation](https://nedhmn.github.io/ygo-ruling-ai-chatbot/getting-started/configuration)** for a full list and description of all configuration options.
### Run the Application
From the project root, run the following command to build and start the Docker containers:
```bash
docker compose up --build
```
This will start the seeder service (which will populate the database) and then the web application.
> [!NOTE]
>
> The `--build` flag is important the first time you run this command, or after making changes to the Dockerfiles.
Once the `web` service is running, the application should be accessible in your web browser at `http://localhost:3000`.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.