/* ========================================================================== * WebX11 Chat Widget — configuration * -------------------------------------------------------------------------- * Copy this file to `config.js` next to widget.html and edit the values. * Everything is optional except `endpoint`. * * ABOUT THE ENDPOINT * `endpoint` must be YOUR OWN gateway, i.e. an HTTP URL on your server that * forwards the request to your model backend (Ollama, an Ollama-compatible * API, or your own proxy) and adds your API key server-side. * * The widget runs in the visitor's browser, so anything you put in this * file is public. NEVER put an API key, token or password here — not in * this example file, not in your config.js, not in widget.html. Keep the * key on the server (environment variable, secrets file, systemd unit) * and let the gateway attach it to the upstream request. * * The endpoint must also allow your website's origin (CORS). See * docs/USAGE.md → Troubleshooting. * ========================================================================== */ window.WX_WIDGET_CONFIG = { /* Base URL of your gateway: protocol + host + the path prefix your proxy * exposes, e.g. 'https://YOUR-HOST/ollama'. The widget appends * '/api/generate' for you. If you prefer, give the full generate URL * ('https://YOUR-HOST/ollama/api/generate') and it is used as-is. * A relative path such as '/ollama' works when the widget is served from * the same origin as the gateway. */ endpoint: 'https://YOUR-HOST/ollama', /* Model name as your backend knows it. Ollama tags look like * 'llama3.2:latest'. This is a public identifier, not a secret. */ model: 'llama3.2:latest', /* Header and greeting */ title: 'Chat with us', welcomeMessage: 'Hi! How can I help you today?', inputPlaceholder: 'Type your message…', /* Brand colour (any #rgb or #rrggbb). Text on the accent colour is * switched between dark and light automatically. */ accentColor: '#00e5a0', /* 'right' (default) or 'left' */ position: 'right', /* Show the "Model: …" line under the header. Set to false to hide it. */ statusLine: true, /* Abort a request when the gateway sends nothing for this many * milliseconds (default 60000). Raise it if your model can take minutes * to produce the first token; the timer resets on every received chunk. */ idleTimeoutMs: 60000, /* The assistant's instructions. Write this for your own business. */ systemPrompt: 'You are a helpful assistant for this website. ' + 'Answer briefly and accurately. If you do not know something, say so ' + 'and suggest contacting the site owner.', /* Optional: load the system prompt from a plain-text URL instead of the * inline string above. Leave empty to use systemPrompt. */ promptUrl: '', promptVersion: '', /* Prepended to the visitor's message before it is sent. */ questionPrefix: 'User Question:', /* Quick-reply buttons: [label, message sent when clicked] */ chips: [ ['What do you offer?', 'What do you offer?'], ['Contact', 'How can I contact you?'] ] };