mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge branch 'main' into pkg
This commit is contained in:
1
.github/ISSUE_TEMPLATE/bug_report.md
vendored
1
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -30,6 +30,7 @@ Providing the logs from the browser DevTools console (opened by pressing the F12
|
||||
**Desktop (please complete the following information):**
|
||||
- OS/Device: [e.g. Windows 11]
|
||||
- Environment: [cloud, local]
|
||||
- Node.js version (if applicable): [run `node --version` in cmd]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Generation API [e.g. KoboldAI, OpenAI]
|
||||
- Branch [main, dev]
|
||||
|
46
.github/workflows/build-and-publish-release-main.yml
vendored
Normal file
46
.github/workflows/build-and-publish-release-main.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
name: Build and Publish Release (Main)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build and package with pkg
|
||||
run: |
|
||||
npm install -g pkg
|
||||
npm run pkg
|
||||
|
||||
- name: Create or update release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: continuous-release-main
|
||||
release_name: Continuous Release (Main)
|
||||
draft: false
|
||||
prerelease: true
|
||||
|
||||
- name: Upload binaries to release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
files: dist/*
|
||||
release_id: ${{ steps.create_release.outputs.id }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
@ -521,7 +521,7 @@ class Client {
|
||||
|
||||
console.log(`Sending message to ${chatbot}: ${message}`);
|
||||
|
||||
const messageData = await this.send_query("AddHumanMessageMutation", {
|
||||
const messageData = await this.send_query("SendMessageMutation", {
|
||||
"bot": chatbot,
|
||||
"query": message,
|
||||
"chatId": this.bots[chatbot]["chatId"],
|
||||
@ -531,14 +531,14 @@ class Client {
|
||||
|
||||
delete this.active_messages["pending"];
|
||||
|
||||
if (!messageData["data"]["messageCreateWithStatus"]["messageLimit"]["canSend"]) {
|
||||
if (!messageData["data"]["messageEdgeCreate"]["message"]) {
|
||||
throw new Error(`Daily limit reached for ${chatbot}.`);
|
||||
}
|
||||
|
||||
let humanMessageId;
|
||||
try {
|
||||
const humanMessage = messageData["data"]["messageCreateWithStatus"];
|
||||
humanMessageId = humanMessage["message"]["messageId"];
|
||||
const humanMessage = messageData["data"]["messageEdgeCreate"]["message"];
|
||||
humanMessageId = humanMessage["node"]["messageId"];
|
||||
} catch (error) {
|
||||
throw new Error(`An unknown error occured. Raw response data: ${messageData}`);
|
||||
}
|
||||
|
40
poe_graphql/SendMessageMutation.graphql
Normal file
40
poe_graphql/SendMessageMutation.graphql
Normal file
@ -0,0 +1,40 @@
|
||||
mutation chatHelpers_sendMessageMutation_Mutation(
|
||||
$chatId: BigInt!
|
||||
$bot: String!
|
||||
$query: String!
|
||||
$source: MessageSource
|
||||
$withChatBreak: Boolean!
|
||||
) {
|
||||
messageEdgeCreate(chatId: $chatId, bot: $bot, query: $query, source: $source, withChatBreak: $withChatBreak) {
|
||||
chatBreak {
|
||||
cursor
|
||||
node {
|
||||
id
|
||||
messageId
|
||||
text
|
||||
author
|
||||
suggestedReplies
|
||||
creationTime
|
||||
state
|
||||
}
|
||||
id
|
||||
}
|
||||
message {
|
||||
cursor
|
||||
node {
|
||||
id
|
||||
messageId
|
||||
text
|
||||
author
|
||||
suggestedReplies
|
||||
creationTime
|
||||
state
|
||||
chat {
|
||||
shouldShowDisclaimer
|
||||
id
|
||||
}
|
||||
}
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
15
public/TextGen Settings/LLaMa-Precise.settings
Normal file
15
public/TextGen Settings/LLaMa-Precise.settings
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"temp": 0.7,
|
||||
"top_p": 0.1,
|
||||
"top_k": 40,
|
||||
"typical_p": 1,
|
||||
"rep_pen": 1.18,
|
||||
"no_repeat_ngram_size": 0,
|
||||
"penalty_alpha": 0,
|
||||
"num_beams": 1,
|
||||
"length_penalty": 1,
|
||||
"min_length": 200,
|
||||
"encoder_rep_pen": 1,
|
||||
"do_sample": true,
|
||||
"early_stopping": false
|
||||
}
|
@ -1369,7 +1369,12 @@ function getExtensionPrompt(position = 0, depth = undefined, separator = "\n") {
|
||||
|
||||
function baseChatReplace(value, name1, name2) {
|
||||
if (value !== undefined && value.length > 0) {
|
||||
value = substituteParams(value, is_pygmalion ? "You" : name1, name2);
|
||||
if (is_pygmalion) {
|
||||
value = value.replace(/{{user}}:/gi, 'You:');
|
||||
value = value.replace(/<USER>:/gi, 'You:');
|
||||
}
|
||||
|
||||
value = substituteParams(value, name1, name2);
|
||||
|
||||
if (power_user.collapse_newlines) {
|
||||
value = collapseNewlines(value);
|
||||
@ -2738,7 +2743,7 @@ function saveReply(type, getMessage, this_mes_is_name, title) {
|
||||
} else {
|
||||
item['swipe_id'] = 0;
|
||||
item['swipes'] = [];
|
||||
item['swipes'][0] = chat[chat.length - 1]['mes'];
|
||||
item['swipes'][0] = chat[chat.length - 1]['mes'];
|
||||
}
|
||||
|
||||
return { type, getMessage };
|
||||
|
@ -527,6 +527,7 @@ code {
|
||||
grid-column-start: 4;
|
||||
flex-flow: column;
|
||||
font-size: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.swipe_right img,
|
||||
|
@ -136,8 +136,8 @@ Easy to follow guide with pretty pictures:
|
||||
5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
|
||||
6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter:
|
||||
|
||||
* for Main Branch: `git clone <https://github.com/Cohee1207/SillyTavern> -b main`
|
||||
* for Dev Branch: `git clone <https://github.com/Cohee1207/SillyTavern> -b dev`
|
||||
* for Main Branch: `git clone https://github.com/Cohee1207/SillyTavern -b main`
|
||||
* for Dev Branch: `git clone https://github.com/Cohee1207/SillyTavern -b dev`
|
||||
|
||||
7. Once everything is cloned, double click `Start.bat` to make NodeJS install its requirements.
|
||||
8. The server will then start, and SillyTavern will popup in your browser.
|
||||
|
10
server.js
10
server.js
@ -861,7 +861,7 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes =
|
||||
let rawImg = await jimp.read(img_url);
|
||||
|
||||
// Apply crop if defined
|
||||
if (typeof crop == 'object') {
|
||||
if (typeof crop == 'object' && [crop.x, crop.y, crop.width, crop.height].every(x => typeof x === 'number')) {
|
||||
rawImg = rawImg.crop(crop.x, crop.y, crop.width, crop.height);
|
||||
}
|
||||
|
||||
@ -2438,7 +2438,13 @@ app.post("/openai_bias", jsonParser, async function (request, response) {
|
||||
// Shamelessly stolen from Agnai
|
||||
app.post("/openai_usage", jsonParser, async function (request, response) {
|
||||
if (!request.body) return response.sendStatus(400);
|
||||
const key = request.body.key;
|
||||
const key = readSecret(SECRET_KEYS.OPENAI);
|
||||
|
||||
if (!key) {
|
||||
console.warn('Get key usage failed: Missing OpenAI API key.');
|
||||
return response.sendStatus(401);
|
||||
}
|
||||
|
||||
const api_url = new URL(request.body.reverse_proxy || api_openai).toString();
|
||||
|
||||
const headers = {
|
||||
|
Reference in New Issue
Block a user