A modern, intelligent AI companion for all things anime and manga. Built with FastAPI, React, and powered by Azure OpenAI with AniList integration.
- Deep anime knowledge powered by AniList MCP tools
- Personalized recommendations based on user preferences
- Memory system that remembers your conversations and preferences
- Markdown responses with beautiful formatting
- Spoiler-aware responses (only when requested)
- Dark gradient design with glass morphism effects
- Responsive chat interface built with Radix UI
- Real-time messaging with loading states
- Markdown rendering for rich content display
- Smooth animations and hover effects
- FastAPI backend with async support
- React frontend with modern hooks
- SQLite storage for sessions and memories
- Azure OpenAI integration
- MCP (Model Context Protocol) for AniList data
- CORS enabled for development
- Python 3.8+
- Node.js 18+
- Azure OpenAI API Key
- npm/yarn/pnpm
git clone <your-repo-url>
cd "AniList - Copy"
# Install Python dependencies
pip install -r requirements.txt
# Create environment file
cp .env.example .env
Configure your .env
file:
ENDPOINT=your_azure_openai_endpoint
DEPLOYMENT=your_azure_deployment_name
OPENAI_API_KEY=your_azure_openai_api_key
API_VERSION=2024-02-15-preview
Start the backend
cd app/backend
python main.py
The backend will be available at http://localhost:8000
# Navigate to frontend directory
cd app/frontend
# Install dependencies
npm install
# Start development server
npm run dev
The frontend will be available at http://localhost:3000
AniList - Copy/
βββ app/
β βββ backend/ # FastAPI Backend
β β βββ main.py # Main FastAPI application
β β βββ run.py # Alternative runner
β β βββ README.md # Backend documentation
β βββ frontend/ # React Frontend
β βββ src/
β β βββ components/ # React components
β β βββ styles/ # CSS styles
β β βββ App.jsx # Main App component
β β βββ main.jsx # React entry point
β βββ package.json # Frontend dependencies
β βββ vite.config.js # Vite configuration
βββ src/
β βββ agent/ # AI Agent logic
β β βββ agent.py # Main agent implementation
β β βββ __init__.py
β βββ prompts/ # AI prompts and instructions
β β βββ prompts.py # Agent prompts
β β βββ __init__.py
β βββ db/ # Database files
β βββ anime_assistant.db # SQLite database
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Python project configuration
βββ README.md # This file
- Open your browser to
http://localhost:3000
- Type your anime questions in the chat input
- Get intelligent responses with markdown formatting
π "Who is the leader of the group Akatsuki in Naruto?"
π "Recommend me some good shounen anime"
π "Tell me about Attack on Titan without spoilers"
π "What are the best anime from 2023?"
π "Compare Naruto and One Piece"
Send a message to the anime assistant
{
"message": "Who is the leader of Akatsuki?",
"user_id": "user123"
}
Check backend health status
Check if all services are ready
The agent is configured in src/agent/agent.py
:
- Azure OpenAI model settings
- Memory configuration for user conversations
- AniList MCP tools for anime data
- SQLite storage for persistence
Theme customization in src/main.jsx
:
<Theme
accentColor="violet"
grayColor="slate"
radius="medium"
scaling="100%"
appearance="dark"
>
Dark gradient theme variables in src/styles/globals.css
:
:root {
--gradient-bg: linear-gradient(
135deg,
#0c0c0c 0%,
#1a1a2e 25%,
#16213e 50%,
#0f0f23 75%,
#000000 100%
);
--gradient-accent: linear-gradient(
135deg,
#667eea 0%,
#764ba2 50%,
#f093fb 100%
);
}
cd app/backend
python main.py # Runs with auto-reload
cd app/frontend
npm run dev # Runs with hot-reload
# Frontend build
cd app/frontend
npm run build
# Backend (use production ASGI server)
pip install gunicorn
gunicorn app.backend.main:app -w 4 -k uvicorn.workers.UvicornWorker
- FastAPI - Modern web framework
- agno - AI agent framework
- SQLite - Database storage
- uvicorn - ASGI server
- python-dotenv - Environment management
- React 18 - UI framework
- Radix UI - Component library
- Vite - Build tool
- react-markdown - Markdown rendering
- axios - HTTP client
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- AniList - For providing comprehensive anime/manga data
- Radix UI - For beautiful, accessible components
- Azure OpenAI - For powerful AI capabilities
- agno - For the AI agent framework
Backend not starting:
- Check your
.env
file configuration - Ensure Azure OpenAI credentials are correct
- Verify Python dependencies are installed
Frontend proxy errors:
- Ensure backend is running on port 8000
- Check CORS configuration in
main.py
Database errors:
- Database will be created automatically
- Check write permissions in
src/db/
directory
Memory issues:
- User memories are stored in SQLite
- Clear database if needed: delete
src/db/anime_assistant.db
- Check the Issues page
- Review the backend and frontend README files
- Ensure all dependencies are correctly installed
Made with β€οΈ for anime fans by anime fans π