🎉 Complete AI-Enhanced University Portal - Ready for Production
✨ Major Features Added: - AI Chat with conversation memory and university-specific knowledge base - Multi-tenant university support with white-label capabilities - Professional admin interface for knowledge base management - Advanced database schema with Prisma ORM - Comprehensive documentation and guides - Modern Next.js 15 + React 19 architecture - Bilingual support (English/Arabic) - Role-based access control - Real-time chat interface with loading states 🔧 Technical Improvements: - Fixed all linter errors and TypeScript issues - Cleaned up codebase and removed legacy files - Added comprehensive .gitignore - Updated README with detailed setup instructions - Optimized database schema and migrations - Enhanced error handling and user experience 📚 Documentation: - AI Conversation Memory Guide - AI Enhancement Summary - Developer Guide - User Guide - Complete setup and deployment instructions 🚀 Ready for GitHub deployment and production use!
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
# AI Chat Setup Guide
|
||||
|
||||
The University Portal includes an AI-powered chat assistant that can help users with information about the university, programs, admissions, and more. The AI chat is powered by Ollama, a local AI model runner.
|
||||
|
||||
## Features
|
||||
|
||||
- 🤖 **AI-Powered Assistant**: Get instant answers about university information
|
||||
- 💬 **Real-time Chat**: Interactive conversation interface
|
||||
- 🏠 **Local Processing**: Runs locally on your machine for privacy
|
||||
- 📱 **Responsive Design**: Works on desktop and mobile devices
|
||||
- 🎯 **Context-Aware**: Specialized for university-related questions
|
||||
|
||||
## Quick Setup
|
||||
|
||||
### 1. Install Ollama
|
||||
|
||||
Run the automated setup script:
|
||||
|
||||
```bash
|
||||
npm run setup:ollama
|
||||
```
|
||||
|
||||
This script will:
|
||||
- Install Ollama on your system
|
||||
- Start the Ollama service
|
||||
- Download the Llama2 model
|
||||
|
||||
### 2. Manual Installation (Alternative)
|
||||
|
||||
If the automated script doesn't work, install Ollama manually:
|
||||
|
||||
#### macOS/Linux
|
||||
```bash
|
||||
curl -fsSL https://ollama.ai/install.sh | sh
|
||||
```
|
||||
|
||||
#### Windows
|
||||
Download from: https://ollama.ai/download
|
||||
|
||||
### 3. Start Ollama
|
||||
|
||||
```bash
|
||||
ollama serve
|
||||
```
|
||||
|
||||
### 4. Download a Model
|
||||
|
||||
```bash
|
||||
ollama pull llama2
|
||||
```
|
||||
|
||||
### 5. Start the Development Server
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Using the AI Chat
|
||||
|
||||
1. **Access the Chat**: Click the AI chat button in the bottom-right corner of any page
|
||||
2. **Ask Questions**: Type your questions about:
|
||||
- University programs and courses
|
||||
- Admission requirements
|
||||
- Campus life and facilities
|
||||
- Research opportunities
|
||||
- Student services
|
||||
3. **Get Instant Answers**: The AI will provide helpful, contextual responses
|
||||
|
||||
## Available Models
|
||||
|
||||
The default model is `llama2`, but you can use any model supported by Ollama:
|
||||
|
||||
```bash
|
||||
# List available models
|
||||
ollama list
|
||||
|
||||
# Pull a different model
|
||||
ollama pull codellama
|
||||
ollama pull mistral
|
||||
ollama pull llama2:13b
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
You can configure the Ollama connection in your `.env.local` file:
|
||||
|
||||
```env
|
||||
OLLAMA_HOST=http://localhost:11434
|
||||
```
|
||||
|
||||
### Model Selection
|
||||
|
||||
To use a different model, modify the API call in `src/app/api/chat/ollama/route.ts`:
|
||||
|
||||
```typescript
|
||||
body: JSON.stringify({
|
||||
message: userMessage.text,
|
||||
model: 'codellama' // Change this to your preferred model
|
||||
}),
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Ollama Not Running
|
||||
|
||||
If you see "Ollama is not running" in the chat:
|
||||
|
||||
1. Check if Ollama is installed:
|
||||
```bash
|
||||
ollama --version
|
||||
```
|
||||
|
||||
2. Start the Ollama service:
|
||||
```bash
|
||||
ollama serve
|
||||
```
|
||||
|
||||
3. Verify it's running:
|
||||
```bash
|
||||
curl http://localhost:11434/api/tags
|
||||
```
|
||||
|
||||
### Model Not Found
|
||||
|
||||
If you get a model error:
|
||||
|
||||
1. List available models:
|
||||
```bash
|
||||
ollama list
|
||||
```
|
||||
|
||||
2. Pull the required model:
|
||||
```bash
|
||||
ollama pull llama2
|
||||
```
|
||||
|
||||
### Performance Issues
|
||||
|
||||
- **Slow Responses**: Try a smaller model like `llama2:7b`
|
||||
- **High Memory Usage**: Close other applications or use a smaller model
|
||||
- **Network Issues**: Ensure Ollama is running locally
|
||||
|
||||
## Commands Reference
|
||||
|
||||
```bash
|
||||
# Start Ollama service
|
||||
ollama serve
|
||||
|
||||
# Stop Ollama service
|
||||
pkill ollama
|
||||
|
||||
# List models
|
||||
ollama list
|
||||
|
||||
# Pull a model
|
||||
ollama pull <model-name>
|
||||
|
||||
# Run a model interactively
|
||||
ollama run llama2
|
||||
|
||||
# Remove a model
|
||||
ollama rm <model-name>
|
||||
```
|
||||
|
||||
## Security & Privacy
|
||||
|
||||
- **Local Processing**: All AI processing happens locally on your machine
|
||||
- **No Data Collection**: No user data is sent to external servers
|
||||
- **Model Control**: You control which models are installed and used
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter issues:
|
||||
|
||||
1. Check the browser console for errors
|
||||
2. Verify Ollama is running: `curl http://localhost:11434/api/tags`
|
||||
3. Check the model is installed: `ollama list`
|
||||
4. Restart Ollama: `pkill ollama && ollama serve`
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
### Custom System Prompts
|
||||
|
||||
You can customize the AI's behavior by modifying the system prompt in `src/app/api/chat/ollama/route.ts`:
|
||||
|
||||
```typescript
|
||||
const systemPrompt = `You are a helpful AI assistant for a university portal...`;
|
||||
```
|
||||
|
||||
### Multiple Models
|
||||
|
||||
You can implement model selection by adding a dropdown in the chat interface and passing the selected model to the API.
|
||||
|
||||
### Streaming Responses
|
||||
|
||||
For real-time responses, you can implement streaming by modifying the API to use Ollama's streaming capabilities.
|
||||
Reference in New Issue
Block a user