Spaces:
Build error
Build error
| # Ollama Chat Configuration Guide | |
| ## Overview | |
| This application now supports conversation memory and environment-based configuration for switching between local Ollama (testing) and production Ollama servers. | |
| ## What Was Fixed | |
| ### 1. **Conversation Memory Issue** | |
| The model wasn't remembering previous messages because: | |
| - The app was using Ollama's `/api/generate` endpoint (stateless, single prompt) | |
| - No conversation history was being passed to the model | |
| **Solution:** | |
| - Switched to Ollama's `/api/chat` endpoint | |
| - Now reads chat history from `chat-history.json` and passes all previous messages to the model | |
| - The model now maintains full conversation context | |
| ### 2. **Environment-Based Configuration** | |
| Added support for automatic switching between local and production Ollama servers. | |
| ## Configuration | |
| ### Environment Variables | |
| Create a `.env.local` file in the root directory: | |
| ```bash | |
| # For local development (default) | |
| OLLAMA_BASE_URL=http://localhost:11434 | |
| NODE_ENV=development | |
| # For production deployment | |
| # OLLAMA_BASE_URL=https://your-ollama-server.com | |
| # NODE_ENV=production | |
| ``` | |
| ### Automatic Switching | |
| The application will automatically use: | |
| - **Local Ollama** (`http://localhost:11434`) when `OLLAMA_BASE_URL` is not set | |
| - **Production Ollama** when you set `OLLAMA_BASE_URL` to your deployed server | |
| ### Deployment Setup | |
| #### Option 1: Environment Variables (Recommended) | |
| Set the `OLLAMA_BASE_URL` environment variable in your deployment platform: | |
| **Vercel:** | |
| ```bash | |
| vercel env add OLLAMA_BASE_URL | |
| # Enter: https://your-ollama-server.com | |
| ``` | |
| **Docker:** | |
| ```bash | |
| docker run -e OLLAMA_BASE_URL=https://your-ollama-server.com ... | |
| ``` | |
| **Railway/Render/Heroku:** | |
| Add `OLLAMA_BASE_URL` in the environment variables section of your dashboard. | |
| #### Option 2: Git-Based Switching | |
| Create different `.env` files for different environments: | |
| ```bash | |
| # .env.development (for local) | |
| OLLAMA_BASE_URL=http://localhost:11434 | |
| # .env.production (for deployment) | |
| OLLAMA_BASE_URL=https://your-ollama-server.com | |
| ``` | |
| Add to `.gitignore`: | |
| ``` | |
| .env.local | |
| .env*.local | |
| ``` | |
| Commit only `.env.example` to git, and set up your CI/CD to copy the appropriate file during deployment. | |
| ## Testing | |
| ### Local Testing | |
| 1. Make sure Ollama is running locally: | |
| ```bash | |
| ollama serve | |
| ``` | |
| 2. Start the development server: | |
| ```bash | |
| npm run dev | |
| ``` | |
| 3. The app will connect to `http://localhost:11434` | |
| ### Production Testing | |
| 1. Set `OLLAMA_BASE_URL` to your production server | |
| 2. Build and deploy: | |
| ```bash | |
| npm run build | |
| npm start | |
| ``` | |
| ## How It Works | |
| ### Conversation Flow | |
| 1. User sends a message | |
| 2. Message is saved to `chat-history.json` | |
| 3. API reads all previous messages from history | |
| 4. Sends complete conversation to Ollama's `/api/chat` endpoint | |
| 5. Model responds with context from entire conversation | |
| 6. Response is saved to history and displayed | |
| ### API Endpoints Updated | |
| - `pages/api/generate.ts` - Now uses chat API with history | |
| - `pages/api/models.ts` - Uses environment-based URL | |
| - `pages/api/pull.ts` - Uses environment-based URL | |
| ### Configuration Files | |
| - `next.config.js` - Exposes `OLLAMA_BASE_URL` to the app | |
| - `.env.local` - Local environment configuration (not committed) | |
| - `.env.example` - Template for environment variables (committed) | |
| ## Troubleshooting | |
| ### Model not remembering conversations | |
| - Check that `chat-history.json` exists and contains messages | |
| - Verify the API is using `/api/chat` endpoint (not `/api/generate`) | |
| - Clear chat history and start a new conversation | |
| ### Connection errors | |
| - Verify `OLLAMA_BASE_URL` is set correctly | |
| - Check that Ollama server is running and accessible | |
| - Test the URL directly: `curl http://localhost:11434/api/tags` | |
| ### Environment variable not working | |
| - Restart the development server after changing `.env.local` | |
| - Verify the variable is set: `console.log(process.env.OLLAMA_BASE_URL)` | |
| - For production, ensure the platform has the environment variable set | |
| ## Additional Notes | |
| - The chat history is stored in `chat-history.json` in the project root | |
| - Clearing chat history (🗑️ button) will reset the conversation context | |
| - Each message includes metadata (timestamp, model used) | |
| - The system automatically filters and formats messages for Ollama's API | |