A smart qa bot that can answer questions based on existing documents.
- Java 17+
- Milvus 2.2.0+
- Clone this repo
- Execute
./build.sh - Upload and unzip the generated
qa-bot-x.x.x.jarto the server
- Config the
markdown.files.locationto the directory of the markdown files - Config the
markdown.files.scheduleEnabledtotrueif you want to auto update the markdown files - Config the
milvus.hostandmilvus.portto the Milvus server - Config the
milvus.useZillzCloud,milvus.zillizCloudUriandmilvus.zillizCloudTokenif you are using Zilliz Cloud - Config other parameters as needed
- Config the
OPENAI_API_KEYto the OpenAI API key - Config the
HTTP_PROXYto the proxy server if needed
export OPENAI_API_KEY=sk-************************************************
export HTTP_PROXY=http{s}://${username}:${password}@${url}:${port}- Start the service:
./scripts/startup.sh - Stop the service:
./scripts/shutdown.sh - Check the logs:
tail -f /opt/logs/qa-bot.log - Manually trigger the markdown files processing:
curl http://${your-server-url}:9090/markdown/load - Test the QA bot via browser:
http://${your-server-url}:9090
Refer apollo pr for an example.
<html>
<head>
...
</head>
<body>
...
</body>
<!-- add qa bot -->
<script>
(function() {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'http://${your-server-url}:9090/qa-bot.css';
document.head.appendChild(link);
var script = document.createElement('script');
script.src = 'http://${your-server-url}:9090/qa-bot.js';
script.onload = function () {
QABot.initialize({
"serverUrl": "http://${your-server-url}:9090/qa",
"documentSiteUrlPrefix": "https://${your-documentation-site-prefix-url}"
});
};
document.body.appendChild(script);
})();
</script>
</html>