diff --git a/public/KoboldAI Settings/Classic-Pygmalion-2.7b.settings b/public/KoboldAI Settings/Classic-Pygmalion-2.7b.settings
new file mode 100644
index 000000000..73666d353
--- /dev/null
+++ b/public/KoboldAI Settings/Classic-Pygmalion-2.7b.settings
@@ -0,0 +1,46 @@
+{
+ "file_version": 2,
+ "max_length": 2048,
+ "ikmax": 3000,
+ "genamt": 80,
+ "ikgen": 200,
+ "rep_pen": 1.17,
+ "rep_pen_slope": 0.2,
+ "rep_pen_range": 1024,
+ "temp": 0.43,
+ "top_p": 0.96,
+ "top_k": 0,
+ "top_a": 0.0,
+ "tfs": 0.68,
+ "typical": 1.0,
+ "numseqs": 1,
+ "fp32_model": false,
+ "modeldim": 2560,
+ "sampler_order": [
+ 6,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "newlinemode": "n",
+ "lazy_load": true,
+ "revision": null,
+ "selected_preset": "",
+ "horde_wait_time": 0,
+ "horde_queue_position": 0,
+ "horde_queue_size": 0,
+ "model": "pygmalion-2.7b",
+ "model_type": "gpt_neo",
+ "url": "https://api.inferkit.com/v1/models/standard/generate",
+ "oaiurl": "",
+ "oaiengines": "https://api.openai.com/v1/engines",
+ "colaburl": "/request",
+ "apikey": "",
+ "oaiapikey": "",
+ "configname": "pygmalion-2.7b",
+ "online_model": "",
+ "alt_multi_gen": false
+}
\ No newline at end of file
diff --git a/public/KoboldAI Settings/Classic-Pygmalion-6b.settings b/public/KoboldAI Settings/Classic-Pygmalion-6b.settings
new file mode 100644
index 000000000..74747f473
--- /dev/null
+++ b/public/KoboldAI Settings/Classic-Pygmalion-6b.settings
@@ -0,0 +1,46 @@
+{
+ "file_version": 2,
+ "max_length": 2048,
+ "ikmax": 3000,
+ "genamt": 80,
+ "ikgen": 200,
+ "rep_pen": 1.1,
+ "rep_pen_slope": 0.7,
+ "rep_pen_range": 1024,
+ "temp": 0.5,
+ "top_p": 0.9,
+ "top_k": 0,
+ "top_a": 0.0,
+ "tfs": 0.9,
+ "typical": 1.0,
+ "numseqs": 1,
+ "fp32_model": false,
+ "modeldim": 4096,
+ "sampler_order": [
+ 6,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "newlinemode": "n",
+ "lazy_load": true,
+ "revision": null,
+ "selected_preset": "",
+ "horde_wait_time": 0,
+ "horde_queue_position": 0,
+ "horde_queue_size": 0,
+ "model": "pygmalion-6b",
+ "model_type": "gptj",
+ "url": "https://api.inferkit.com/v1/models/standard/generate",
+ "oaiurl": "",
+ "oaiengines": "https://api.openai.com/v1/engines",
+ "colaburl": "/request",
+ "apikey": "",
+ "oaiapikey": "",
+ "configname": "pygmalion-6b",
+ "online_model": "",
+ "alt_multi_gen": false
+}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 28f427d36..48c68a5d9 100644
--- a/public/index.html
+++ b/public/index.html
@@ -28,11 +28,12 @@
diff --git a/readme.md b/readme.md
index dcdba0497..0b9ecf0e6 100644
--- a/readme.md
+++ b/readme.md
@@ -2,7 +2,7 @@
Examples of interface and output:


-[@@@Download TavernAI@@@](https://github.com/TavernAI/TavernAI/archive/refs/heads/main.zip)
+[@@@Download TavernAI@@@](https://github.com/TavernAI/TavernAI/archive/refs/heads/main.zip) (Last version)
## Features
* Creating characters with personality setup
* Choosing name and avatar for your character
@@ -31,6 +31,8 @@ If the message is not finished, you can simply send the request again, TavernAI
## Additional materials
https://www.reddit.com/user/Crataco/comments/zuowi9/opensource_chatbot_companions/
+## For contacts
+* Discord: Humi#5044
## For thanks and support
TavernAI is being developed with love and care on a voluntary basis. If you like the project and want to support it, your donation would make a huge impact!
diff --git a/server.js b/server.js
index c15029888..c92ec11dc 100644
--- a/server.js
+++ b/server.js
@@ -3,6 +3,7 @@ var app = express();
var fs = require('fs');
var rimraf = require("rimraf");
const multer = require("multer");
+const https = require('https');
var Client = require('node-rest-client').Client;
var client = new Client();
@@ -24,11 +25,38 @@ var response_edit;
var response_dw_bg;
var response_getstatus;
var response_getstatus_novel;
+var response_getlastversion;
var api_key_novel;
const jsonParser = express.json();
const urlencodedParser = express.urlencoded({extended: false});
+
+
+
+app.post("/getlastversion", jsonParser, function(request, response_getlastversion = response){
+ if(!request.body) return response_getlastversion.sendStatus(400);
+
+ const repo = 'TavernAI/TavernAI';
+
+ https.request({
+ hostname: 'github.com',
+ path: `/${repo}/releases/latest`,
+ method: 'HEAD'
+ }, (res) => {
+ if(res.statusCode === 302) {
+ const glocation = res.headers.location;
+ const versionStartIndex = glocation.lastIndexOf('@')+1;
+ const version = glocation.substring(versionStartIndex);
+ //console.log(version);
+ response_getlastversion.send({version: version});
+ }else{
+ response_getlastversion.send({version: 'error'});
+ }
+ }).end();
+
+
+});
app.use(express.static(__dirname + "/public"));
app.use(multer({dest:"uploads"}).single("avatar"));
app.get("/", function(request, response){
@@ -152,7 +180,7 @@ app.post("/getchat", jsonParser, function(request, response){
});
app.post("/getstatus", jsonParser, function(request, response_getstatus = response){
- if(!request.body) return response.sendStatus(400);
+ if(!request.body) return response_getstatus.sendStatus(400);
api_server = request.body.api_server;
if(api_server.indexOf('localhost') != -1){
@@ -562,7 +590,7 @@ return new Date(fs.statSync(path + '/' + a).mtime) - new Date(fs.statSync(path +
//***********Novel.ai API
app.post("/getstatus_novelai", jsonParser, function(request, response_getstatus_novel =response){
- if(!request.body) return response_generate.sendStatus(400);
+ if(!request.body) return response_getstatus_novel.sendStatus(400);
api_key_novel = request.body.key;
var data = {};
var args = {
@@ -662,7 +690,7 @@ app.post("/generate_novelai", jsonParser, function(request, response_generate_no
app.listen(server_port, function() {
- console.log('Server started: http://127.0.0.1:'+server_port);
+ console.log('TavernAI started: http://127.0.0.1:'+server_port);
});