|
3 | 3 | [](https://nedhmn.github.io/ygo-ruling-ai-chatbot/) |
4 | 4 | [](./LICENSE) |
5 | 5 |
|
6 | | -A monorepo for a Yu-Gi-Oh! ruling AI chatbot focused on Goat Format, built with Turborepo. It leverages AI RAG with OpenAI embeddings and Pinecone for specialized context. |
| 6 | +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. |
7 | 7 |
|
8 | 8 | <div align="center" style="margin-bottom: 20px"> |
9 | 9 | <img src="./assets/preview.gif" alt="ygo-ruling-ai-chatbot-preview"> |
10 | 10 | </div> |
11 | 11 |
|
12 | | -## ✨ Features |
| 12 | +## ✨ Key Features |
13 | 13 |
|
14 | | -- **AI RAG**: Uses Retrieval Augmented Generation with OpenAI embeddings and Pinecone for accurate ruling context. |
15 | | -- **Goat Format Specialized**: Trained and focused on Yu-Gi-Oh! Goat Format rulings. |
16 | | -- **Data Seeding**: Includes a seeder package to populate the vector database. |
17 | | -- **Monorepo Structure**: Managed efficiently with Turborepo. |
| 14 | +- **Accurate Ruling Responses:** Provides precise answers for Yu-Gi-Oh! Goat Format rulings using a RAG approach. |
| 15 | +- **AI-Powered Chatbot:** Combine AI reasoning and relevant context for comprehensive answers. |
| 16 | +- **Dockerized Environment:** Ensures easy, consistent setup. |
| 17 | +- **Turborepo Monorepo:** Efficiently manages project packages and applications. |
| 18 | + |
| 19 | +## 🛠️ Technologies Used |
| 20 | + |
| 21 | +- **Next.js:** React framework for the chatbot. |
| 22 | +- **Vercel AI SDK:** Integrates with AI models. |
| 23 | +- **OpenAI:** Used for embeddings and AI models. |
| 24 | +- **Pinecone:** Vector database for ruling embeddings. |
| 25 | +- **Tailwind CSS:** Utility-first CSS. |
| 26 | +- **shadcn/ui:** Reusable UI components. |
| 27 | +- **Turborepo:** Monorepo management. |
| 28 | +- **ESLint & Prettier:** Code linting and formatting. |
| 29 | +- **Cheerio:** Web scraping library for server-side jQuery. |
| 30 | +- **Nextra:** Documentation framework. |
| 31 | +- **Docker/docker-compose:** Containerization. |
| 32 | +- **TypeScript:** For type safety. |
18 | 33 |
|
19 | 34 | ## 🚀 Getting Started |
20 | 35 |
|
21 | | -Coming Soon... |
| 36 | +This guide will help you get the Yu-Gi-Oh! Ruling AI Chatbot up and running. |
| 37 | + |
| 38 | +### Prerequisites |
| 39 | + |
| 40 | +You will need the following installed: |
| 41 | + |
| 42 | +- **Docker** and **Docker Compose** |
| 43 | + |
| 44 | +Refer to the **[Documentation](https://nedhmn.github.io/ygo-ruling-ai-chatbot/getting-started/installation)** for detailed installation instructions if needed. |
| 45 | + |
| 46 | +### Clone the Repository |
| 47 | + |
| 48 | +```bash |
| 49 | +git clone https://github.com/nedhmn/ygo-ruling-ai-chatbot.git |
| 50 | +cd ygo-ruling-ai-chatbot |
| 51 | +``` |
| 52 | + |
| 53 | +### Configure Your Environment |
| 54 | + |
| 55 | +You need to configure environment variables for the `seeder` and `web` services. Example files are provided to help you. |
| 56 | + |
| 57 | +1. **Create `./packages/seeder/.env.local`:** <br><br> |
| 58 | + 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). |
| 59 | + |
| 60 | +2. **Create `./apps/web/.env.local`:**<br><br> |
| 61 | + 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. |
| 62 | + |
| 63 | +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. |
| 64 | + |
| 65 | +### Run the Application |
| 66 | + |
| 67 | +From the project root, run the following command to build and start the Docker containers: |
| 68 | + |
| 69 | +```bash |
| 70 | +docker compose up --build |
| 71 | +``` |
| 72 | + |
| 73 | +This will start the seeder service (which will populate the database) and then the web application. |
| 74 | + |
| 75 | +> [!NOTE] |
| 76 | +> |
| 77 | +> The `--build` flag is important the first time you run this command, or after making changes to the Dockerfiles. |
| 78 | +
|
| 79 | +Once the `web` service is running, the application should be accessible in your web browser at `http://localhost:3000`. |
22 | 80 |
|
23 | 81 | ## 📄 License |
24 | 82 |
|
|
0 commit comments