mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Compare commits
1 Commits
CoreTabbyL
...
img-swipe-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20ab6193ab |
@@ -13,4 +13,3 @@ access.log
|
||||
/cache
|
||||
.DS_Store
|
||||
/public/scripts/extensions/third-party
|
||||
/colab
|
||||
|
||||
@@ -3,9 +3,6 @@ module.exports = {
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
],
|
||||
plugins: [
|
||||
'jsdoc',
|
||||
],
|
||||
env: {
|
||||
es6: true,
|
||||
},
|
||||
@@ -81,7 +78,6 @@ module.exports = {
|
||||
'public/scripts/extensions/tts/lib/**',
|
||||
],
|
||||
rules: {
|
||||
'jsdoc/no-undefined-types': ['warn', { disableReporting: true, markVariablesAsUsed: true }],
|
||||
'no-unused-vars': ['error', { args: 'none' }],
|
||||
'no-control-regex': 'off',
|
||||
'no-constant-condition': ['error', { checkLoops: false }],
|
||||
|
||||
4
.github/issues-auto-labels.yml
vendored
4
.github/issues-auto-labels.yml
vendored
@@ -14,7 +14,7 @@
|
||||
- '(🐧 Linux)'
|
||||
|
||||
🦊 Firefox:
|
||||
- '\b(firefox|mozilla)\b'
|
||||
- '(firefox|mozilla)'
|
||||
|
||||
📱 Mobile:
|
||||
- '\b(iphone|ios|android|📱 Termux)\b'
|
||||
- '(iphone|ios|android|📱 Termux)'
|
||||
|
||||
6
.github/pr-auto-labels-by-branch.yml
vendored
6
.github/pr-auto-labels-by-branch.yml
vendored
@@ -34,9 +34,6 @@
|
||||
🦊 Firefox:
|
||||
- head-branch: ['\bfirefox\b']
|
||||
|
||||
🧑🤝🧑 Group Chat:
|
||||
- head-branch: ['\bgroups?\b']
|
||||
|
||||
🖼️ Image Gen:
|
||||
- head-branch: ['\bimage-gen\b']
|
||||
|
||||
@@ -61,9 +58,6 @@
|
||||
📜 Prompt:
|
||||
- head-branch: ['\bprompt\b']
|
||||
|
||||
🧠 Reasoning:
|
||||
- head-branch: ['\breasoning\b', '\breason\b', '\bthinking\b']
|
||||
|
||||
🚚 Refactor:
|
||||
- head-branch: ['\brefactor(s|ed)?\b']
|
||||
|
||||
|
||||
38
.github/readme.md
vendored
38
.github/readme.md
vendored
@@ -192,43 +192,28 @@ You will need two mandatory directory mappings and a port mapping to allow Silly
|
||||
|
||||
##### Volume Mappings
|
||||
|
||||
* `CONFIG_PATH` - The directory where SillyTavern configuration files will be stored on your host machine
|
||||
* `DATA_PATH` - The directory where SillyTavern user data (including characters) will be stored on your host machine
|
||||
* `PLUGINS_PATH` - (optional) The directory where SillyTavern server plugins will be stored on your host machine
|
||||
* `EXTENSIONS_PATH` - (optional) The directory where global UI extensions will be stored on your host machine
|
||||
* [config] - The directory where SillyTavern configuration files will be stored on your host machine
|
||||
* [data] - The directory where SillyTavern user data (including characters) will be stored on your host machine
|
||||
* [plugins] - (optional) The directory where SillyTavern server plugins will be stored on your host machine
|
||||
* [extensions] - (optional) The directory where global UI extensions will be stored on your host machine
|
||||
|
||||
##### Port Mappings
|
||||
|
||||
* `PUBLIC_PORT` - The port to expose the traffic on. This is mandatory, as you will be accessing the instance from outside of its virtual machine container. DO NOT expose this to the internet without implementing a separate service for security.
|
||||
* [PublicPort] - The port to expose the traffic on. This is mandatory, as you will be accessing the instance from outside of its virtual machine container. DO NOT expose this to the internet without implementing a separate service for security.
|
||||
|
||||
##### Additional Settings
|
||||
|
||||
* `SILLYTAVERN_VERSION` - On the right-hand side of this GitHub page, you'll see "Packages". Select the "sillytavern" package and you'll see the image versions. The image tag "latest" will keep you up-to-date with the current release. You can also utilize "staging" that points to the nightly image of the respective branch.
|
||||
* [DockerNet] - The docker network that the container should be created with a connection to. If you don't know what it is, see the [official Docker documentation](https://docs.docker.com/reference/cli/docker/network/).
|
||||
* [version] - On the right-hand side of this GitHub page, you'll see "Packages". Select the "sillytavern" package and you'll see the image versions. The image tag "latest" will keep you up-to-date with the current release. You can also utilize "staging" and "release" tags that point to the nightly images of the respective branches, but this may not be appropriate, if you are utilizing extensions that could be broken, and may need time to update.
|
||||
|
||||
#### Running the container
|
||||
#### Install command
|
||||
|
||||
1. Open your Command Line
|
||||
2. Run the following command in a folder where you want to store the configuration and data files:
|
||||
2. Run the following command
|
||||
|
||||
```bash
|
||||
SILLYTAVERN_VERSION="latest"
|
||||
PUBLIC_PORT="8000"
|
||||
CONFIG_PATH="./config"
|
||||
DATA_PATH="./data"
|
||||
PLUGINS_PATH="./plugins"
|
||||
EXTENSIONS_PATH="./extensions"
|
||||
`docker run --name='sillytavern' --net='[DockerNet]' -p '8000:8000/tcp' -v '[plugins]':'/home/node/app/plugins':'rw' -v '[config]':'/home/node/app/config':'rw' -v '[data]':'/home/node/app/data':'rw' -v '[extensions]':'/home/node/app/public/scripts/extensions/third-party':'rw' 'ghcr.io/sillytavern/sillytavern:[version]'`
|
||||
|
||||
docker run \
|
||||
--name="sillytavern" \
|
||||
-p "$PUBLIC_PORT:8000/tcp" \
|
||||
-v "$CONFIG_PATH:/home/node/app/config:rw" \
|
||||
-v "$DATA_PATH:/home/node/app/data:rw" \
|
||||
-v "$EXTENSIONS_PATH:/home/node/app/public/scripts/extensions/third-party:rw" \
|
||||
-v "$PLUGINS_PATH:/home/node/app/plugins:rw" \
|
||||
ghcr.io/sillytavern/sillytavern:"$SILLYTAVERN_VERSION"
|
||||
```
|
||||
|
||||
> By default the container will run in the foreground. If you want to run it in the background, add the `-d` flag to the `docker run` command.
|
||||
> Note that 8000 is a default listening port. Don't forget to use an appropriate port if you change it in the config.
|
||||
|
||||
### Building the image yourself
|
||||
|
||||
@@ -350,7 +335,6 @@ Start.bat --port 8000 --listen false
|
||||
| Option | Description | Type |
|
||||
|-------------------------|----------------------------------------------------------------------|----------|
|
||||
| `--version` | Show version number | boolean |
|
||||
| `--configPath` | Override the path to the config.yaml file | string |
|
||||
| `--dataRoot` | Root directory for data storage | string |
|
||||
| `--port` | Sets the port under which SillyTavern will run | number |
|
||||
| `--listen` | SillyTavern will listen on all network interfaces | boolean |
|
||||
|
||||
14
.github/workflows/issues-auto-manager.yml
vendored
14
.github/workflows/issues-auto-manager.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
with:
|
||||
configuration-path: .github/issues-auto-labels.yml
|
||||
enable-versioned-regex: 0
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
|
||||
label-on-labels:
|
||||
name: 🏷️ Label Issues by Labels
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
labels: '👍 Approved'
|
||||
|
||||
- name: ❌ Remove progress labels when issue is marked done or stale
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
labels: '🧑💻 In Progress,🤔 Unsure,🤔 Under Consideration'
|
||||
|
||||
- name: ❌ Remove temporary labels when confirmed labels are added
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
labels: '🤔 Unsure,🤔 Under Consideration'
|
||||
|
||||
- name: ❌ Remove no bug labels when "🪲 Confirmed" is added
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
labels: '✖️ Not Reproducible,✖️ Not A Bug'
|
||||
|
||||
remove-stale-label:
|
||||
@@ -92,7 +92,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
labels: '⚰️ Stale,🕸️ Inactive,🚏 Awaiting User Response,🛑 No Response'
|
||||
|
||||
@@ -113,4 +113,4 @@ jobs:
|
||||
uses: peaceiris/actions-label-commenter@v1.10.0
|
||||
with:
|
||||
config_file: .github/issues-auto-comments.yml
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
github_token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -31,15 +31,15 @@ jobs:
|
||||
- name: Label Linked Issues
|
||||
id: label_linked_issues
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
for ISSUE in $(echo $issues | jq -r '.[]'); do
|
||||
if [ "${{ github.ref }}" == "refs/heads/staging" ]; then
|
||||
LABEL="✅ Done (staging)"
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "$LABEL" --remove-label "🧑💻 In Progress"
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "$LABEL"
|
||||
elif [ "${{ github.ref }}" == "refs/heads/release" ]; then
|
||||
LABEL="✅ Done"
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "$LABEL" --remove-label "🧑💻 In Progress"
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "$LABEL"
|
||||
fi
|
||||
echo "Added label '$LABEL' (and removed '🧑💻 In Progress' if present) in issue #$ISSUE"
|
||||
echo "Added label '$LABEL' to issue #$ISSUE"
|
||||
done
|
||||
|
||||
6
.github/workflows/job-close-stale.yml
vendored
6
.github/workflows/job-close-stale.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
# https://github.com/marketplace/actions/close-stale-issues
|
||||
uses: actions/stale@v9.1.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 183
|
||||
days-before-close: 7
|
||||
operations-per-run: 30
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
# https://github.com/marketplace/actions/close-stale-issues
|
||||
uses: actions/stale@v9.1.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 7
|
||||
days-before-close: 7
|
||||
operations-per-run: 30
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
# https://github.com/marketplace/actions/close-stale-issues
|
||||
uses: actions/stale@v9.1.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 7
|
||||
days-before-close: 7
|
||||
operations-per-run: 30
|
||||
|
||||
2
.github/workflows/on-close-handler.yml
vendored
2
.github/workflows/on-close-handler.yml
vendored
@@ -23,6 +23,6 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: remove-labels
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number || github.event.pull_request.number }}
|
||||
labels: '🚏 Awaiting User Response,🧑💻 In Progress,📌 Keep Open,🚫 Merge Conflicts,🔬 Needs Testing,🔨 Needs Work,⚰️ Stale,⛔ Waiting For External/Upstream'
|
||||
|
||||
2
.github/workflows/on-open-handler.yml
vendored
2
.github/workflows/on-open-handler.yml
vendored
@@ -24,6 +24,6 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number || github.event.pull_request.number }}
|
||||
labels: '👷 Maintainer'
|
||||
|
||||
96
.github/workflows/pr-auto-manager.yml
vendored
96
.github/workflows/pr-auto-manager.yml
vendored
@@ -1,7 +1,6 @@
|
||||
name: 🔀 Pull Request Manager
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Allow to manually call this workflow
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, edited, labeled, unlabeled, closed]
|
||||
pull_request_review_comment:
|
||||
@@ -12,63 +11,9 @@ permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
run-eslint:
|
||||
name: ✅ Check ESLint on PR
|
||||
runs-on: ubuntu-latest
|
||||
# Only needs to run when code is changed
|
||||
if: github.event.action == 'opened' || github.event.action == 'synchronize'
|
||||
|
||||
# Override permissions, linter likely needs write access to issues
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
# Checkout
|
||||
# https://github.com/marketplace/actions/checkout
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
|
||||
- name: Setup Node.js
|
||||
# Setup Node.js environment
|
||||
# https://github.com/marketplace/actions/setup-node-js-environment
|
||||
uses: actions/setup-node@v4.3.0
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Run npm install
|
||||
run: npm ci
|
||||
|
||||
- name: Run ESLint
|
||||
# Action ESLint
|
||||
# https://github.com/marketplace/actions/action-eslint
|
||||
uses: sibiraj-s/action-eslint@v3.0.1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
eslint-args: '--ignore-path=.gitignore --quiet'
|
||||
extensions: 'js'
|
||||
annotations: true
|
||||
ignore-patterns: |
|
||||
dist/
|
||||
lib/
|
||||
|
||||
label-by-size:
|
||||
name: 🏷️ Label PR by Size
|
||||
# This job should run after all others, to prevent possible concurrency issues
|
||||
needs: [label-by-branches, label-by-files, remove-stale-label, check-merge-blocking-labels, write-auto-comments]
|
||||
runs-on: ubuntu-latest
|
||||
# Only needs to run when code is changed
|
||||
if: always() && (github.event.action == 'opened' || github.event.action == 'synchronize')
|
||||
|
||||
# Override permissions, the labeler needs issues write access
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Label PR Size
|
||||
@@ -76,7 +21,7 @@ jobs:
|
||||
# https://github.com/marketplace/actions/pull-request-size-labeler
|
||||
uses: codelytv/pr-size-labeler@v1.10.2
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
xs_label: '🟩 ⬤○○○○'
|
||||
xs_max_size: '20'
|
||||
s_label: '🟩 ⬤⬤○○○'
|
||||
@@ -87,6 +32,7 @@ jobs:
|
||||
l_max_size: '1000'
|
||||
xl_label: '🟥 ⬤⬤⬤⬤⬤'
|
||||
fail_if_xl: 'false'
|
||||
github_api_url: 'https://api.github.com'
|
||||
files_to_ignore: |
|
||||
"package-lock.json"
|
||||
"public/lib/*"
|
||||
@@ -94,8 +40,8 @@ jobs:
|
||||
label-by-branches:
|
||||
name: 🏷️ Label PR by Branches
|
||||
runs-on: ubuntu-latest
|
||||
# Only label once when PR is created or when base branch is changed, to allow manual label removal
|
||||
if: github.event.action == 'opened' || (github.event.action == 'synchronize' && github.event.changes.base)
|
||||
# Only label once when PR is created or branches are changed, to allow manual label removal
|
||||
if: github.event.action == 'opened' || (github.event.action == 'synchronize' && (github.event.changes.base || github.event.changes.head))
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
@@ -109,13 +55,11 @@ jobs:
|
||||
uses: actions/labeler@v5.0.0
|
||||
with:
|
||||
configuration-path: .github/pr-auto-labels-by-branch.yml
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
|
||||
label-by-files:
|
||||
name: 🏷️ Label PR by Files
|
||||
runs-on: ubuntu-latest
|
||||
# Only needs to run when code is changed
|
||||
if: github.event.action == 'opened' || github.event.action == 'synchronize'
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
@@ -129,20 +73,14 @@ jobs:
|
||||
uses: actions/labeler@v5.0.0
|
||||
with:
|
||||
configuration-path: .github/pr-auto-labels-by-files.yml
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
|
||||
remove-stale-label:
|
||||
name: 🗑️ Remove Stale Label on Comment
|
||||
runs-on: ubuntu-latest
|
||||
# Only runs on comments not done by the github actions bot
|
||||
# Only runs when this is not done by the github actions bot
|
||||
if: github.event_name == 'pull_request_review_comment' && github.actor != 'github-actions[bot]'
|
||||
|
||||
# Override permissions, issue labeler needs issues write access
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Remove Stale Label
|
||||
# 🤖 Issues Helper
|
||||
@@ -150,7 +88,7 @@ jobs:
|
||||
uses: actions-cool/issues-helper@v3.6.0
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
labels: '⚰️ Stale'
|
||||
|
||||
@@ -206,7 +144,7 @@ jobs:
|
||||
|
||||
write-auto-comments:
|
||||
name: 💬 Post PR Comments Based on Labels
|
||||
needs: [label-by-branches, label-by-files]
|
||||
needs: [label-by-size, label-by-branches, label-by-files]
|
||||
runs-on: ubuntu-latest
|
||||
# Run, even if the previous jobs were skipped/failed
|
||||
if: always()
|
||||
@@ -223,7 +161,7 @@ jobs:
|
||||
uses: peaceiris/actions-label-commenter@v1.10.0
|
||||
with:
|
||||
config_file: .github/pr-auto-comments.yml
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
github_token: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
|
||||
# This runs on merged PRs to staging, reading the PR body and directly linked issues. Check `issues-updates-on-merge.yml`:`update-linked-issues` for commit-based updates.
|
||||
update-linked-issues:
|
||||
@@ -231,12 +169,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'staging'
|
||||
|
||||
# Override permissions, We need to be able to write to issues
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Extract Linked Issues From PR Description
|
||||
id: extract_issues
|
||||
@@ -250,7 +182,7 @@ jobs:
|
||||
PR_NUMBER=${{ github.event.pull_request.number }}
|
||||
REPO=${{ github.repository }}
|
||||
API_URL="https://api.github.com/repos/$REPO/pulls/$PR_NUMBER/issues"
|
||||
ISSUES=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "$API_URL" | jq -r '.[].number' | jq -R -s -c 'split("\n")[:-1]')
|
||||
ISSUES=$(curl -s -H "Authorization: token ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}" "$API_URL" | jq -r '.[].number' | jq -R -s -c 'split("\n")[:-1]')
|
||||
echo "linked_issues=$ISSUES" >> $GITHUB_ENV
|
||||
|
||||
- name: Merge Issue Lists
|
||||
@@ -262,9 +194,9 @@ jobs:
|
||||
- name: Label Linked Issues
|
||||
id: label_linked_issues
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
for ISSUE in $(echo $final_issues | jq -r '.[]'); do
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "✅ Done (staging)" --remove-label "🧑💻 In Progress"
|
||||
echo "Added label '✅ Done (staging)' (and removed '🧑💻 In Progress' if present) in issue #$ISSUE"
|
||||
gh issue edit $ISSUE -R ${{ github.repository }} --add-label "✅ Done (staging)"
|
||||
echo "Added label '✅ Done (staging)' to issue #$ISSUE"
|
||||
done
|
||||
|
||||
@@ -23,6 +23,6 @@ jobs:
|
||||
uses: eps1lon/actions-label-merge-conflict@v3.0.3
|
||||
with:
|
||||
dirtyLabel: '🚫 Merge Conflicts'
|
||||
repoToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
repoToken: ${{ secrets.BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
||||
commentOnDirty: >
|
||||
⚠️ This PR has conflicts that need to be resolved before it can be merged.
|
||||
|
||||
@@ -12,4 +12,3 @@ access.log
|
||||
.vscode
|
||||
.git
|
||||
/public/scripts/extensions/third-party
|
||||
/colab
|
||||
|
||||
10
Dockerfile
10
Dockerfile
@@ -4,7 +4,7 @@ FROM node:lts-alpine3.19
|
||||
ARG APP_HOME=/home/node/app
|
||||
|
||||
# Install system dependencies
|
||||
RUN apk add --no-cache gcompat tini git git-lfs
|
||||
RUN apk add --no-cache gcompat tini git
|
||||
|
||||
# Create app directory
|
||||
WORKDIR ${APP_HOME}
|
||||
@@ -12,13 +12,15 @@ WORKDIR ${APP_HOME}
|
||||
# Set NODE_ENV to production
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# Bundle app source
|
||||
COPY . ./
|
||||
|
||||
# Install app dependencies
|
||||
COPY package*.json post-install.js ./
|
||||
RUN \
|
||||
echo "*** Install npm packages ***" && \
|
||||
npm i --no-audit --no-fund --loglevel=error --no-progress --omit=dev && npm cache clean --force
|
||||
|
||||
# Bundle app source
|
||||
COPY . ./
|
||||
|
||||
# Copy default chats, characters and user avatars to <folder>.default folder
|
||||
RUN \
|
||||
rm -f "config.yaml" || true && \
|
||||
|
||||
@@ -114,8 +114,6 @@ backups:
|
||||
chat:
|
||||
# Enable automatic chat backups
|
||||
enabled: true
|
||||
# Verify integrity of chat files before saving
|
||||
checkIntegrity: true
|
||||
# Maximum number of chat backups to keep per user (starting from the most recent). Set to -1 to keep all backups.
|
||||
maxTotalBackups: -1
|
||||
# Interval in milliseconds to throttle chat backups per user
|
||||
@@ -142,8 +140,6 @@ performance:
|
||||
lazyLoadCharacters: false
|
||||
# The maximum amount of memory that parsed character cards can use. Set to 0 to disable memory caching.
|
||||
memoryCacheCapacity: '100mb'
|
||||
# Enables disk caching for character cards. Improves performances with large card libraries.
|
||||
useDiskCache: true
|
||||
|
||||
# Allow secret keys exposure via API
|
||||
allowKeysExposure: false
|
||||
@@ -155,7 +151,6 @@ whitelistImportDomains:
|
||||
- cdn.discordapp.com
|
||||
- files.catbox.moe
|
||||
- raw.githubusercontent.com
|
||||
- char-archive.evulid.cc
|
||||
# API request overrides (for KoboldAI and Text Completion APIs)
|
||||
## Note: host includes the port number if it's not the default (80 or 443)
|
||||
## Format is an array of objects:
|
||||
@@ -234,10 +229,6 @@ claude:
|
||||
# should be ideal for most use cases.
|
||||
# Any value other than a non-negative integer will be ignored and caching at depth will not be enabled.
|
||||
cachingAtDepth: -1
|
||||
# -- GOOGLE GEMINI API CONFIGURATION --
|
||||
gemini:
|
||||
# API endpoint version ("v1beta" or "v1alpha")
|
||||
apiVersion: 'v1beta'
|
||||
# -- SERVER PLUGIN CONFIGURATION --
|
||||
enableServerPlugins: false
|
||||
# Attempt to automatically update server plugins on startup
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/Metharme.json",
|
||||
"filename": "presets/context/Pygmalion.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
@@ -563,10 +563,6 @@
|
||||
"filename": "presets/context/Llama 3 Instruct.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/Llama 4 Instruct.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/Phi.json",
|
||||
"type": "context"
|
||||
@@ -619,6 +615,10 @@
|
||||
"filename": "presets/instruct/OpenOrca-OpenChat.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Pygmalion.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Story.json",
|
||||
"type": "instruct"
|
||||
@@ -663,10 +663,6 @@
|
||||
"filename": "presets/instruct/Llama 3 Instruct.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Llama 4 Instruct.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Phi.json",
|
||||
"type": "instruct"
|
||||
@@ -751,10 +747,6 @@
|
||||
"filename": "presets/sysprompt/Neutral - Chat.json",
|
||||
"type": "sysprompt"
|
||||
},
|
||||
{
|
||||
"filename": "presets/sysprompt/Lightning 1.1.json",
|
||||
"type": "sysprompt"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Mistral V1.json",
|
||||
"type": "instruct"
|
||||
@@ -794,21 +786,5 @@
|
||||
{
|
||||
"filename": "presets/context/DeepSeek-V2.5.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/GLM-4.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/GLM-4.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/reasoning/DeepSeek.json",
|
||||
"type": "reasoning"
|
||||
},
|
||||
{
|
||||
"filename": "presets/reasoning/Blank.json",
|
||||
"type": "reasoning"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": false,
|
||||
"trim_sentences": false,
|
||||
"single_line": true,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": false,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>New Roleplay:<|END_OF_TURN_TOKEN|>",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "***",
|
||||
"chat_start": "***",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": false,
|
||||
"trim_sentences": true,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nWrite an example narrative / conversation that is not part of the main story.",
|
||||
"chat_start": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nStart the role-play between {{char}} and {{user}}.",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": false,
|
||||
"trim_sentences": true,
|
||||
"single_line": false,
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"story_string": "[gMASK]<sop>{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}\n",
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
"name": "GLM-4"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "### Example:",
|
||||
"chat_start": "### START ROLEPLAY:",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"story_string": "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{{system}}\n{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{char}}'s description:{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality:{{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{user}}'s persona: {{persona}}\n{{/if}}\n\n",
|
||||
"example_separator": "Example of an interaction:\n",
|
||||
"chat_start": "This is the history of the roleplay:\n",
|
||||
"story_string": "{{system}}\n{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{char}}'s description:{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality:{{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{user}}'s persona: {{persona}}\n{{/if}}",
|
||||
"example_separator": "Example of an interaction:",
|
||||
"chat_start": "This is the history of the roleplay:",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"story_string": "<|begin_of_text|><|header_start|>system<|header_end|>\n\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|eot|>",
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
"name": "Llama 4 Instruct"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "***",
|
||||
"chat_start": "***",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "This is how {{char}} should talk",
|
||||
"chat_start": "\nThen the roleplay chat between {{user}} and {{char}} begins.\n",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
"name": "Metharme"
|
||||
"name": "Pygmalion"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"example_separator": "### New Roleplay:",
|
||||
"chat_start": "### New Roleplay:",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"single_line": false,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "<|im_end|>",
|
||||
"wrap": true,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"stop_sequence": "<|END_OF_TURN_TOKEN|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|END_OF_TURN_TOKEN|>",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "<end_of_turn>",
|
||||
"wrap": true,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "none",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"input_sequence": "### Instruction:",
|
||||
"output_sequence": "### Response:",
|
||||
"last_output_sequence": "### Response: (length = unlimited)",
|
||||
"output_sequence": "### Response: (length = unlimited)",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence": "",
|
||||
"stop_sequence": "",
|
||||
"wrap": true,
|
||||
@@ -12,8 +12,8 @@
|
||||
"system_sequence_suffix": "",
|
||||
"first_output_sequence": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "\n\n",
|
||||
"input_suffix": "\n\n",
|
||||
"output_suffix": "",
|
||||
"input_suffix": "",
|
||||
"system_suffix": "",
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": true,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "<|eot_id|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
@@ -16,7 +16,7 @@
|
||||
"input_suffix": "<|eot_id|>",
|
||||
"system_suffix": "<|eot_id|>",
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": false,
|
||||
"system_same_as_user": true,
|
||||
"last_system_sequence": "",
|
||||
"name": "Llama 3 Instruct"
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"input_sequence": "<|header_start|>user<|header_end|>\n\n",
|
||||
"output_sequence": "<|header_start|>assistant<|header_end|>\n\n",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence": "<|header_start|>system<|header_end|>\n\n",
|
||||
"stop_sequence": "<|eot|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
"first_output_sequence": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|eot|>",
|
||||
"input_suffix": "<|eot|>",
|
||||
"system_suffix": "<|eot|>",
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": false,
|
||||
"last_system_sequence": "",
|
||||
"name": "Llama 4 Instruct"
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"stop_sequence": "</s>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"stop_sequence": "<|end|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|end|>\n",
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"input_sequence": "<|user|>\n",
|
||||
"output_sequence": "<|assistant|>\n",
|
||||
"first_output_sequence": "",
|
||||
"input_sequence": "<|user|>",
|
||||
"output_sequence": "<|model|>",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence_prefix": "<|system|>\n",
|
||||
"system_sequence_suffix": "",
|
||||
"stop_sequence": "",
|
||||
"system_sequence": "",
|
||||
"stop_sequence": "<|user|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "<|system|>",
|
||||
"system_sequence_suffix": "",
|
||||
"first_output_sequence": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "",
|
||||
"input_suffix": "",
|
||||
"system_sequence": "",
|
||||
"system_suffix": "",
|
||||
"user_alignment_message": "",
|
||||
"last_system_sequence": "",
|
||||
"system_same_as_user": true,
|
||||
"name": "GLM-4"
|
||||
"last_system_sequence": "",
|
||||
"name": "Pygmalion"
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
"stop_sequence": "<|end_of_text|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names_behavior": "force",
|
||||
"names_behavior": "always",
|
||||
"activation_regex": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|end_of_text|>\n",
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Blank",
|
||||
"prefix": "",
|
||||
"suffix": "",
|
||||
"separator": ""
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "DeepSeek",
|
||||
"prefix": "<think>\n",
|
||||
"suffix": "\n</think>",
|
||||
"separator": "\n\n"
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Actor",
|
||||
"content": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
|
||||
"post_history": ""
|
||||
"content": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Assistant - Expert",
|
||||
"content": "You are a helpful assistant. Please answer truthfully and write out your thinking step by step to be sure you get the right answer. If you make a mistake or encounter an error in your thinking, say so out loud and attempt to correct it. If you don't know or aren't sure about something, say so clearly. You will act as a professional logician, mathematician, and physicist. You will also act as the most appropriate type of expert to answer any particular question or solve the relevant problem; state which expert type your are, if so. Also think of any particular named expert that would be ideal to answer the relevant question or solve the relevant problem; name and act as them, if appropriate.",
|
||||
"post_history": ""
|
||||
"content": "You are a helpful assistant. Please answer truthfully and write out your thinking step by step to be sure you get the right answer. If you make a mistake or encounter an error in your thinking, say so out loud and attempt to correct it. If you don't know or aren't sure about something, say so clearly. You will act as a professional logician, mathematician, and physicist. You will also act as the most appropriate type of expert to answer any particular question or solve the relevant problem; state which expert type your are, if so. Also think of any particular named expert that would be ideal to answer the relevant question or solve the relevant problem; name and act as them, if appropriate."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Assistant - Simple",
|
||||
"content": "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.",
|
||||
"post_history": ""
|
||||
"content": "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Blank",
|
||||
"content": "",
|
||||
"post_history": ""
|
||||
"content": ""
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Chain of Thought",
|
||||
"content": "Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation.",
|
||||
"post_history": ""
|
||||
"content": "Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation."
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"name": "Lightning 1.1",
|
||||
"content": "Take the role of {{char}} in a play that leaves a lasting impression on {{user}}. Write {{char}}'s next reply.\nNever skip or gloss over {{char}}’s actions. Progress the scene at a naturally slow pace.",
|
||||
"post_history": ""
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Neutral - Chat",
|
||||
"content": "Write {{char}}'s next reply in a fictional chat between {{char}} and {{user}}.",
|
||||
"post_history": ""
|
||||
"content": "Write {{char}}'s next reply in a fictional chat between {{char}} and {{user}}."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Roleplay - Detailed",
|
||||
"content": "Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions. Keep the story immersive and engaging.",
|
||||
"post_history": ""
|
||||
"content": "Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions. Keep the story immersive and engaging."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Roleplay - Immersive",
|
||||
"content": "[System note: Write one reply only. Do not decide what {{user}} says or does. Write at least one paragraph, up to four. Be descriptive and immersive, providing vivid details about {{char}}'s actions, emotions, and the environment. Write with a high degree of complexity and burstiness. Do not repeat this message.]",
|
||||
"post_history": ""
|
||||
"content": "[System note: Write one reply only. Do not decide what {{user}} says or does. Write at least one paragraph, up to four. Be descriptive and immersive, providing vivid details about {{char}}'s actions, emotions, and the environment. Write with a high degree of complexity and burstiness. Do not repeat this message.]"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Roleplay - Simple",
|
||||
"content": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}.",
|
||||
"post_history": ""
|
||||
"content": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Text Adventure",
|
||||
"content": "[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]",
|
||||
"post_history": ""
|
||||
"content": "[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Writer - Creative",
|
||||
"content": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below.",
|
||||
"post_history": ""
|
||||
"content": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Writer - Realistic",
|
||||
"content": "Continue writing this story and portray characters realistically.",
|
||||
"post_history": ""
|
||||
"content": "Continue writing this story and portray characters realistically."
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"compilerOptions": {
|
||||
"module": "ESNext",
|
||||
"target": "ES2023",
|
||||
"moduleResolution": "Bundler",
|
||||
"moduleResolution": "Node",
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"checkJs": true,
|
||||
|
||||
1434
package-lock.json
generated
1434
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
33
package.json
33
package.json
@@ -4,28 +4,6 @@
|
||||
"@agnai/sentencepiece-js": "^1.1.1",
|
||||
"@agnai/web-tokenizers": "^0.1.3",
|
||||
"@iconfu/svg-inject": "^1.2.3",
|
||||
"@jimp/core": "^1.6.0",
|
||||
"@jimp/js-bmp": "^1.6.0",
|
||||
"@jimp/js-gif": "^1.6.0",
|
||||
"@jimp/js-tiff": "^1.6.0",
|
||||
"@jimp/plugin-blit": "^1.6.0",
|
||||
"@jimp/plugin-circle": "^1.6.0",
|
||||
"@jimp/plugin-color": "^1.6.0",
|
||||
"@jimp/plugin-contain": "^1.6.0",
|
||||
"@jimp/plugin-cover": "^1.6.0",
|
||||
"@jimp/plugin-crop": "^1.6.0",
|
||||
"@jimp/plugin-displace": "^1.6.0",
|
||||
"@jimp/plugin-fisheye": "^1.6.0",
|
||||
"@jimp/plugin-flip": "^1.6.0",
|
||||
"@jimp/plugin-mask": "^1.6.0",
|
||||
"@jimp/plugin-quantize": "^1.6.0",
|
||||
"@jimp/plugin-resize": "^1.6.0",
|
||||
"@jimp/plugin-rotate": "^1.6.0",
|
||||
"@jimp/plugin-threshold": "^1.6.0",
|
||||
"@jimp/wasm-avif": "^1.6.0",
|
||||
"@jimp/wasm-jpeg": "^1.6.0",
|
||||
"@jimp/wasm-png": "^1.6.0",
|
||||
"@jimp/wasm-webp": "^1.6.0",
|
||||
"@mozilla/readability": "^0.6.0",
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"@zeldafan0225/ai_horde": "^5.2.0",
|
||||
@@ -40,7 +18,6 @@
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cookie-session": "^2.1.0",
|
||||
"cors": "^2.8.5",
|
||||
"crc": "^4.3.2",
|
||||
"csrf-sync": "^4.0.3",
|
||||
"diff-match-patch": "^1.0.5",
|
||||
"dompurify": "^3.2.4",
|
||||
@@ -59,16 +36,18 @@
|
||||
"ip-regex": "^5.0.0",
|
||||
"ipaddr.js": "^2.2.0",
|
||||
"is-docker": "^3.0.0",
|
||||
"jimp": "^0.22.10",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"mime-types": "^2.1.35",
|
||||
"moment": "^2.30.1",
|
||||
"morphdom": "^2.7.4",
|
||||
"multer": "^2.0.0",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"node-fetch": "^3.3.2",
|
||||
"node-persist": "^4.0.4",
|
||||
"open": "^8.4.2",
|
||||
"png-chunk-text": "^1.0.0",
|
||||
"png-chunks-encode": "^1.0.0",
|
||||
"png-chunks-extract": "^1.0.0",
|
||||
"proxy-agent": "^6.5.0",
|
||||
"rate-limiter-flexible": "^5.0.5",
|
||||
@@ -111,7 +90,7 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/SillyTavern/SillyTavern.git"
|
||||
},
|
||||
"version": "1.12.14",
|
||||
"version": "1.12.13",
|
||||
"scripts": {
|
||||
"start": "node server.js",
|
||||
"debug": "node --inspect server.js",
|
||||
@@ -153,6 +132,7 @@
|
||||
"@types/node": "^18.19.80",
|
||||
"@types/node-persist": "^3.1.8",
|
||||
"@types/png-chunk-text": "^1.0.3",
|
||||
"@types/png-chunks-encode": "^1.0.2",
|
||||
"@types/png-chunks-extract": "^1.0.2",
|
||||
"@types/response-time": "^2.3.8",
|
||||
"@types/select2": "^4.0.63",
|
||||
@@ -160,7 +140,6 @@
|
||||
"@types/write-file-atomic": "^4.0.3",
|
||||
"@types/yargs": "^17.0.33",
|
||||
"@types/yauzl": "^2.10.3",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-plugin-jsdoc": "^48.10.0"
|
||||
"eslint": "^8.57.1"
|
||||
}
|
||||
}
|
||||
|
||||
232
post-install.js
232
post-install.js
@@ -3,17 +3,133 @@
|
||||
*/
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import crypto from 'node:crypto';
|
||||
import process from 'node:process';
|
||||
import yaml from 'yaml';
|
||||
import _ from 'lodash';
|
||||
import chalk from 'chalk';
|
||||
import { createRequire } from 'node:module';
|
||||
import { addMissingConfigValues } from './src/config-init.js';
|
||||
|
||||
/**
|
||||
* Colorizes console output.
|
||||
*/
|
||||
const color = chalk;
|
||||
|
||||
const keyMigrationMap = [
|
||||
{
|
||||
oldKey: 'disableThumbnails',
|
||||
newKey: 'thumbnails.enabled',
|
||||
migrate: (value) => !value,
|
||||
},
|
||||
{
|
||||
oldKey: 'thumbnailsQuality',
|
||||
newKey: 'thumbnails.quality',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'avatarThumbnailsPng',
|
||||
newKey: 'thumbnails.format',
|
||||
migrate: (value) => (value ? 'png' : 'jpg'),
|
||||
},
|
||||
{
|
||||
oldKey: 'disableChatBackup',
|
||||
newKey: 'backups.chat.enabled',
|
||||
migrate: (value) => !value,
|
||||
},
|
||||
{
|
||||
oldKey: 'numberOfBackups',
|
||||
newKey: 'backups.common.numberOfBackups',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'maxTotalChatBackups',
|
||||
newKey: 'backups.chat.maxTotalBackups',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'chatBackupThrottleInterval',
|
||||
newKey: 'backups.chat.throttleInterval',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'enableExtensions',
|
||||
newKey: 'extensions.enabled',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'enableExtensionsAutoUpdate',
|
||||
newKey: 'extensions.autoUpdate',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.disableAutoDownload',
|
||||
newKey: 'extensions.models.autoDownload',
|
||||
migrate: (value) => !value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.classificationModel',
|
||||
newKey: 'extensions.models.classification',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.captioningModel',
|
||||
newKey: 'extensions.models.captioning',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.embeddingModel',
|
||||
newKey: 'extensions.models.embedding',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.speechToTextModel',
|
||||
newKey: 'extensions.models.speechToText',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'extras.textToSpeechModel',
|
||||
newKey: 'extensions.models.textToSpeech',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'minLogLevel',
|
||||
newKey: 'logging.minLogLevel',
|
||||
migrate: (value) => value,
|
||||
},
|
||||
{
|
||||
oldKey: 'cardsCacheCapacity',
|
||||
newKey: 'performance.memoryCacheCapacity',
|
||||
migrate: (value) => `${value}mb`,
|
||||
},
|
||||
{
|
||||
oldKey: 'cookieSecret',
|
||||
newKey: 'cookieSecret',
|
||||
migrate: () => void 0,
|
||||
remove: true,
|
||||
},
|
||||
];
|
||||
|
||||
/**
|
||||
* Gets all keys from an object recursively.
|
||||
* @param {object} obj Object to get all keys from
|
||||
* @param {string} prefix Prefix to prepend to all keys
|
||||
* @returns {string[]} Array of all keys in the object
|
||||
*/
|
||||
function getAllKeys(obj, prefix = '') {
|
||||
if (typeof obj !== 'object' || Array.isArray(obj) || obj === null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return _.flatMap(Object.keys(obj), key => {
|
||||
const newPrefix = prefix ? `${prefix}.${key}` : key;
|
||||
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
|
||||
return getAllKeys(obj[key], newPrefix);
|
||||
} else {
|
||||
return [newPrefix];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the old config.conf file to the new config.yaml format.
|
||||
*/
|
||||
@@ -40,6 +156,71 @@ function convertConfig() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the current config.yaml with the default config.yaml and adds any missing values.
|
||||
*/
|
||||
function addMissingConfigValues() {
|
||||
try {
|
||||
const defaultConfig = yaml.parse(fs.readFileSync(path.join(process.cwd(), './default/config.yaml'), 'utf8'));
|
||||
let config = yaml.parse(fs.readFileSync(path.join(process.cwd(), './config.yaml'), 'utf8'));
|
||||
|
||||
// Migrate old keys to new keys
|
||||
const migratedKeys = [];
|
||||
for (const { oldKey, newKey, migrate, remove } of keyMigrationMap) {
|
||||
if (_.has(config, oldKey)) {
|
||||
if (remove) {
|
||||
_.unset(config, oldKey);
|
||||
migratedKeys.push({
|
||||
oldKey,
|
||||
newValue: void 0,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
const oldValue = _.get(config, oldKey);
|
||||
const newValue = migrate(oldValue);
|
||||
_.set(config, newKey, newValue);
|
||||
_.unset(config, oldKey);
|
||||
|
||||
migratedKeys.push({
|
||||
oldKey,
|
||||
newKey,
|
||||
oldValue,
|
||||
newValue,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Get all keys from the original config
|
||||
const originalKeys = getAllKeys(config);
|
||||
|
||||
// Use lodash's defaultsDeep function to recursively apply default properties
|
||||
config = _.defaultsDeep(config, defaultConfig);
|
||||
|
||||
// Get all keys from the updated config
|
||||
const updatedKeys = getAllKeys(config);
|
||||
|
||||
// Find the keys that were added
|
||||
const addedKeys = _.difference(updatedKeys, originalKeys);
|
||||
|
||||
if (addedKeys.length === 0 && migratedKeys.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (addedKeys.length > 0) {
|
||||
console.log('Adding missing config values to config.yaml:', addedKeys);
|
||||
}
|
||||
|
||||
if (migratedKeys.length > 0) {
|
||||
console.log('Migrating config values in config.yaml:', migratedKeys);
|
||||
}
|
||||
|
||||
fs.writeFileSync('./config.yaml', yaml.stringify(config));
|
||||
} catch (error) {
|
||||
console.error(color.red('FATAL: Could not add missing config values to config.yaml'), error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the default config files if they don't exist yet.
|
||||
*/
|
||||
@@ -102,13 +283,58 @@ function createDefaultFiles() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the MD5 hash of the given data.
|
||||
* @param {Buffer} data Input data
|
||||
* @returns {string} MD5 hash of the input data
|
||||
*/
|
||||
function getMd5Hash(data) {
|
||||
return crypto
|
||||
.createHash('md5')
|
||||
.update(new Uint8Array(data))
|
||||
.digest('hex');
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the WASM binaries from the sillytavern-transformers package to the dist folder.
|
||||
*/
|
||||
function copyWasmFiles() {
|
||||
if (!fs.existsSync('./dist')) {
|
||||
fs.mkdirSync('./dist');
|
||||
}
|
||||
|
||||
const listDir = fs.readdirSync('./node_modules/sillytavern-transformers/dist');
|
||||
|
||||
for (const file of listDir) {
|
||||
if (file.endsWith('.wasm')) {
|
||||
const sourcePath = `./node_modules/sillytavern-transformers/dist/${file}`;
|
||||
const targetPath = `./dist/${file}`;
|
||||
|
||||
// Don't copy if the file already exists and is the same checksum
|
||||
if (fs.existsSync(targetPath)) {
|
||||
const sourceChecksum = getMd5Hash(fs.readFileSync(sourcePath));
|
||||
const targetChecksum = getMd5Hash(fs.readFileSync(targetPath));
|
||||
|
||||
if (sourceChecksum === targetChecksum) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
fs.copyFileSync(sourcePath, targetPath);
|
||||
console.log(`${file} successfully copied to ./dist/${file}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
// 0. Convert config.conf to config.yaml
|
||||
convertConfig();
|
||||
// 1. Create default config files
|
||||
createDefaultFiles();
|
||||
// 2. Add missing config values
|
||||
addMissingConfigValues(path.join(process.cwd(), './config.yaml'));
|
||||
// 2. Copy transformers WASM binaries from node_modules
|
||||
copyWasmFiles();
|
||||
// 3. Add missing config values
|
||||
addMissingConfigValues();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
@@ -146,15 +146,3 @@ input.extension_missing[type="checkbox"] {
|
||||
.extensions_info .extension_actions {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.extensions_toolbar {
|
||||
top: 0;
|
||||
position: sticky;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
background-color: var(--SmartThemeBlurTintColor);
|
||||
gap: 5px;
|
||||
z-index: 1;
|
||||
margin-bottom: 10px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
@@ -359,15 +359,10 @@
|
||||
content: attr(external_piece_text);
|
||||
display: block;
|
||||
width: 100%;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.completion_prompt_manager_popup_entry_form_control #completion_prompt_manager_popup_entry_form_prompt:disabled {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#completion_prompt_manager_popup_entry_source_block {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
}
|
||||
|
||||
#rm_group_members:empty::before {
|
||||
content: attr(group_empty_text);
|
||||
content: 'Group is empty';
|
||||
|
||||
font-weight: bolder;
|
||||
width: 100%;
|
||||
@@ -115,7 +115,7 @@
|
||||
}
|
||||
|
||||
#rm_group_add_members:empty::before {
|
||||
content: attr(no_characters_text);
|
||||
content: 'No characters available';
|
||||
|
||||
font-weight: bolder;
|
||||
width: 100%;
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
backdrop-filter: blur(calc(var(--SmartThemeBlurStrength)*2));
|
||||
color: var(--SmartThemeBodyColor);
|
||||
z-index: 40000;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.select2-container .select2-selection .select2-selection__clear {
|
||||
|
||||
@@ -45,11 +45,6 @@ body.square-avatars .avatar img {
|
||||
border-radius: var(--avatar-base-border-radius) !important;
|
||||
}
|
||||
|
||||
body.rounded-avatars .avatar,
|
||||
body.rounded-avatars .avatar img {
|
||||
border-radius: var(--avatar-base-border-radius-rounded) !important;
|
||||
}
|
||||
|
||||
/*char list grid mode*/
|
||||
|
||||
body.charListGrid #rm_print_characters_block {
|
||||
@@ -503,15 +498,3 @@ label[for="trim_spaces"]:not(:has(input:checked)) small {
|
||||
#banned_tokens_block_ooba:not(:has(#send_banned_tokens_textgenerationwebui:checked)) #banned_tokens_controls_ooba {
|
||||
filter: brightness(0.5);
|
||||
}
|
||||
|
||||
#bind_preset_to_connection:checked ~ .toggleOff {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#bind_preset_to_connection:not(:checked) ~ .toggleOn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label[for="bind_preset_to_connection"]:has(input:checked) {
|
||||
color: var(--active);
|
||||
}
|
||||
|
||||
@@ -1,213 +0,0 @@
|
||||
#chat .mes[type="assistant_message"] .mes_button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.welcomePanel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
padding: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.welcomePanel:has(.showMoreChats) {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.welcomePanel.recentHidden .welcomeRecent,
|
||||
.welcomePanel.recentHidden .recentChatsTitle,
|
||||
.welcomePanel.recentHidden .hideRecentChats,
|
||||
.welcomePanel:not(.recentHidden) .showRecentChats {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.bubblechat .welcomePanel {
|
||||
border-radius: 10px;
|
||||
background-color: var(--SmartThemeBotMesBlurTintColor);
|
||||
border: 1px solid var(--SmartThemeBorderColor);
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
body.hideChatAvatars .welcomePanel .recentChatList .recentChat .avatar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeHeader {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.welcomePanel .recentChatsTitle {
|
||||
flex-grow: 1;
|
||||
font-size: calc(var(--mainFontSize) * 1.15);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeHeaderTitle {
|
||||
margin: 0;
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeHeaderVersionDisplay {
|
||||
font-size: calc(var(--mainFontSize) * 1.3);
|
||||
font-weight: 600;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeHeaderLogo {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeShortcuts {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.welcomePanel .welcomeShortcuts .welcomeShortcutsSeparator {
|
||||
margin: 0 2px;
|
||||
color: var(--SmartThemeBorderColor);
|
||||
font-size: calc(var(--mainFontSize) * 1.1);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.welcomeRecent .welcomePanelLoader {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.welcomePanel .recentChatList .noRecentChat {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: baseline;
|
||||
gap: 5px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 5px 10px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
gap: 10px;
|
||||
border: 1px solid var(--SmartThemeBorderColor);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .avatar {
|
||||
flex: 0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat:hover {
|
||||
background-color: var(--white30a);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .recentChatInfo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
justify-content: center;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatNameContainer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
font-size: calc(var(--mainFontSize) * 1);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatNameContainer .chatName {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatMessageContainer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 5px;
|
||||
font-size: calc(var(--mainFontSize) * 0.85);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatMessageContainer .chatMessage {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
line-clamp: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body.big-avatars .welcomeRecent .recentChatList .recentChat .chatMessageContainer .chatMessage {
|
||||
-webkit-line-clamp: 4;
|
||||
line-clamp: 4;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatStats {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
align-items: baseline;
|
||||
align-self: flex-start;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatStats .counterBlock {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: baseline;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat .chatStats .counterBlock::after {
|
||||
content: "|";
|
||||
color: var(--SmartThemeBorderColor);
|
||||
font-size: calc(var(--mainFontSize) * 0.95);
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .recentChat.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .showMoreChats {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.welcomeRecent .recentChatList .showMoreChats.rotated {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.welcomePanel .welcomeShortcuts a span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -124,10 +124,6 @@
|
||||
cursor: initial;
|
||||
}
|
||||
|
||||
.world_entry .inline-drawer-header-pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.world_entry .killSwitch {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
11
public/global.d.ts
vendored
11
public/global.d.ts
vendored
@@ -55,15 +55,4 @@ declare global {
|
||||
* @param provider Translation provider
|
||||
*/
|
||||
async function translate(text: string, lang: string, provider: string = null): Promise<string>;
|
||||
|
||||
interface ConvertVideoArgs {
|
||||
buffer: Uint8Array;
|
||||
name: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a video file to an animated WebP format using FFmpeg.
|
||||
* @param args - The arguments for the conversion function.
|
||||
*/
|
||||
function convertVideoToAnimatedWebp(args: ConvertVideoArgs): Promise<Uint8Array>;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 34 KiB |
@@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 27.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="katman_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 438.67001 481.44999"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="XAI_Logo.svg"
|
||||
width="438.67001"
|
||||
height="481.45001"
|
||||
inkscape:version="1.3 (0e150ed, 2023-07-21)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs4" /><sodipodi:namedview
|
||||
id="namedview4"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="0.39645207"
|
||||
inkscape:cx="219.44645"
|
||||
inkscape:cy="238.36425"
|
||||
inkscape:window-width="1512"
|
||||
inkscape:window-height="856"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="38"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="katman_1" /> <g
|
||||
id="g4"
|
||||
transform="translate(-201.61,-56.91)"> <polygon
|
||||
points="631.96,538.36 640.28,93.18 557.09,211.99 565.4,538.36 "
|
||||
id="polygon1" /> <polygon
|
||||
points="379.35,284.53 430.13,357.05 640.28,56.91 538.72,56.91 "
|
||||
id="polygon2" /> <polygon
|
||||
points="353.96,465.84 303.17,393.31 201.61,538.36 303.17,538.36 "
|
||||
id="polygon3" /> <polygon
|
||||
points="531.69,538.36 303.17,211.99 201.61,211.99 430.13,538.36 "
|
||||
id="polygon4" /> </g> </svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
File diff suppressed because it is too large
Load Diff
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "يجمع الرسائل المتتالية للنظام في رسالة واحدة (باستثناء الحوارات المثالية). قد يحسن التتابع لبعض النماذج.",
|
||||
"Enable function calling": "تمكين استدعاء الوظيفة",
|
||||
"Send inline images": "إرسال الصور المضمنة",
|
||||
"image_inlining_hint_1": "يرسل الصور في المطالبات إذا كان النموذج يدعمها .\n استخدم ال",
|
||||
"image_inlining_hint_1": "يرسل الصور في المطالبات إذا كان النموذج يدعمها (على سبيل المثال، GPT-4V، أو Claude 3، أو Lava 13B).\n استخدم ال",
|
||||
"image_inlining_hint_2": "الإجراء على أي رسالة أو",
|
||||
"image_inlining_hint_3": "القائمة لإرفاق ملف صورة للدردشة.",
|
||||
"Inline Image Quality": "جودة الصورة المضمنة",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "وضع علامة",
|
||||
"API key (optional)": "مفتاح API (اختياري)",
|
||||
"Server url": "رابط الخادم",
|
||||
"Example: http://127.0.0.1:5000": "مثال: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "مثال: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "نموذج مخصص (اختياري)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (وضع غلاف OpenAI API)",
|
||||
"vLLM API key": "مفتاح واجهة برمجة التطبيقات vLLM",
|
||||
"Example: http://127.0.0.1:8000": "مثال: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "مثال: http://127.0.0.1:8000",
|
||||
"vLLM Model": "نموذج vLLM",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (وضع التغليف لواجهة برمجة التطبيقات OpenAI)",
|
||||
"Aphrodite API key": "مفتاح واجهة برمجة التطبيقات Aphrodite",
|
||||
"Aphrodite Model": "نموذج أفروديت",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (خادم إخراج)",
|
||||
"Example: http://127.0.0.1:8080": "مثال: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "مثال: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "مثال: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "مثال: 127.0.0.1:11434",
|
||||
"Ollama Model": "نموذج Ollama",
|
||||
"Download": "تحميل",
|
||||
"Tabby API key": "مفتاح API لـ Tabby",
|
||||
"koboldcpp API key (optional)": "مفتاح koboldcpp API (اختياري)",
|
||||
"Example: http://127.0.0.1:5001": "مثال: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "مثال: 127.0.0.1:5001",
|
||||
"Authorize": "تفويض",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "احصل على رمز واجهة برمجة التطبيقات الخاص بك لموزع الاتصالات باستخدام تدفق OAuth. سيتم توجيهك إلى openrouter.ai",
|
||||
"Bypass status check": "تجاوز فحص الحالة",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "بداية الدردشة",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "أضف بداية الدردشة وفاصل الأمثلة إلى قائمة سلاسل التوقف.",
|
||||
"Use as Stop Strings": "استخدم كسلاسل التوقف",
|
||||
"context_allow_jailbreak": "يتضمن كسر الحماية في نهاية المطالبة، إذا تم تحديده في بطاقة الشخصية و''Prefer Char. تم تمكين الهروب من السجن.\nلا يُنصح بهذا بالنسبة لنماذج إكمال النص، فقد يؤدي إلى نتائج سيئة.",
|
||||
"Allow Jailbreak": "السماح بالجيلبريك",
|
||||
"Context Order": "ترتيب السياق",
|
||||
"Summary": "ملخص",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "تنزيل الدردشة كمستند نصي عادي",
|
||||
"Delete chat file": "حذف ملف الدردشة",
|
||||
"Use tag as folder": "وضع علامة كمجلد",
|
||||
"Hide on character card": "إخفاء في بطاقة الشخصية",
|
||||
"Delete tag": "حذف العلامة",
|
||||
"Entry Title/Memo": "عنوان الإدخال/المذكرة",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "حالة دخول وي:\r🔵 ثابت\r🟢 عادي\r🔗 ناقل\r❌ معطل",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "لمن ستنسب هذه الرسالة؟",
|
||||
"AI Assistant": "مساعد الذكاء الاصطناعي",
|
||||
"prompt_manager_position": "موضع",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "موضع الحقن. بجوار المطالبات الأخرى (نسبية) أو داخل الدردشة (مطلقة).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "موضع الحقن. بجوار المطالبات الأخرى (نسبية) أو داخل الدردشة (مطلقة).",
|
||||
"prompt_manager_relative": "نسبي",
|
||||
"prompt_manager_depth": "عمق",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "عمق الحقن. 0 = بعد الرسالة الأخيرة، 1 = قبل الرسالة الأخيرة، الخ.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "عمق الحقن. 0 = بعد الرسالة الأخيرة، 1 = قبل الرسالة الأخيرة، الخ.",
|
||||
"Prompt": "موضوع",
|
||||
"The prompt to be sent.": "المطالبة ليتم إرسالها.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "لا يمكن تجاوز هذه المطالبة بواسطة بطاقات الأحرف، حتى إذا كان التجاوزات مفضلاً.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Kombiniert aufeinanderfolgende Systemnachrichten zu einer (ausschließlich Beispiel-Dialoge ausgeschlossen). Kann die Kohärenz für einige Modelle verbessern.",
|
||||
"Enable function calling": "Funktionsaufruf aktivieren",
|
||||
"Send inline images": "Inline-Bilder senden",
|
||||
"image_inlining_hint_1": "Sendet Bilder in Eingabeaufforderungen, wenn das Modell dies unterstützt.\nVerwenden Sie die",
|
||||
"image_inlining_hint_1": "Sendet Bilder in Eingabeaufforderungen, wenn das Modell dies unterstützt (z. B. GPT-4V, Claude 3 oder Llava 13B).\nVerwenden Sie die",
|
||||
"image_inlining_hint_2": "Aktion auf eine Nachricht oder die",
|
||||
"image_inlining_hint_3": "Menü, um eine Bilddatei an den Chat anzuhängen.",
|
||||
"Inline Image Quality": "Inline-Bildqualität",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "Flagge",
|
||||
"API key (optional)": "API-Schlüssel (optional)",
|
||||
"Server url": "Server-URL",
|
||||
"Example: http://127.0.0.1:5000": "Beispiel: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Beispiel: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Benutzerdefiniertes Modell (optional)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (OpenAI API-Wrappermodus)",
|
||||
"vLLM API key": "vLLM-API-Schlüssel",
|
||||
"Example: http://127.0.0.1:8000": "Beispiel: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Beispiel: http://127.0.0.1:8000",
|
||||
"vLLM Model": "vLLM-Modell",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Wrappermodus für OpenAI API)",
|
||||
"Aphrodite API key": "Aphrodite API-Schlüssel",
|
||||
"Aphrodite Model": "Aphrodite-Modell",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (Output-Server)",
|
||||
"Example: http://127.0.0.1:8080": "Beispiel: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Beispiel: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Beispiel: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Beispiel: 127.0.0.1:11434",
|
||||
"Ollama Model": "Ollama-Modell",
|
||||
"Download": "Herunterladen",
|
||||
"Tabby API key": "Tabby API-Schlüssel",
|
||||
"koboldcpp API key (optional)": "koboldcpp API-Schlüssel (optional)",
|
||||
"Example: http://127.0.0.1:5001": "Beispiel: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Beispiel: 127.0.0.1:5001",
|
||||
"Authorize": "Autorisieren",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Hole dein OpenRouter-API-Token mit OAuth-Fluss. Du wirst zu openrouter.ai weitergeleitet",
|
||||
"Bypass status check": "Umgehe Statusüberprüfung",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Chat-Start",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Fügen Sie einer Liste von Stoppzeichenfolgen „Chat-Start“ und „Beispieltrennzeichen“ hinzu.",
|
||||
"Use as Stop Strings": "Verwende als Stoppzeichenfolgen",
|
||||
"context_allow_jailbreak": "Schließt Jailbreak am Ende der Eingabeaufforderung ein, wenn dies in der Charakterkarte definiert ist UND „Charakter-Jailbreak bevorzugen“ aktiviert ist.\nDIES WIRD FÜR TEXTVERVOLLSTÄNDIGUNGSMODELLE NICHT EMPFOHLEN, KANN ZU SCHLECHTEN AUSGABEN FÜHREN.",
|
||||
"Allow Jailbreak": "Jailbreak zulassen",
|
||||
"Context Order": "Kontextreihenfolge",
|
||||
"Summary": "Zusammenfassung",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Chat als einfaches Textdokument herunterladen",
|
||||
"Delete chat file": "Chatdatei löschen",
|
||||
"Use tag as folder": "Als Ordner markieren",
|
||||
"Hide on character card": "Auf Charakterkarte ausblenden",
|
||||
"Delete tag": "Tag löschen",
|
||||
"Entry Title/Memo": "Eintragstitel/Memo",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI-Eintragstatus: 🔵 Konstant 🟢 Normal 🔗 Vektorisiert ❌ Deaktiviert",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "Wem diese Nachricht zugeschrieben wird.",
|
||||
"AI Assistant": "KI-Assistent",
|
||||
"prompt_manager_position": "Position",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Neben anderen Eingabeaufforderungen (relativ) oder im Chat (absolut).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Injektionsposition. Neben anderen Eingabeaufforderungen (relativ) oder im Chat (absolut).",
|
||||
"prompt_manager_relative": "Relativ",
|
||||
"prompt_manager_depth": "Tiefe",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = nach der letzten Nachricht, 1 = vor der letzten Nachricht usw.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Injektionstiefe. 0 = nach der letzten Nachricht, 1 = vor der letzten Nachricht usw.",
|
||||
"Prompt": "Aufforderung",
|
||||
"The prompt to be sent.": "Die zu sendende Eingabeaufforderung.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Diese Eingabeaufforderung kann nicht durch Charakterkarten überschrieben werden, selbst wenn dies bevorzugt wird.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Combina mensajes del sistema consecutivos en uno solo (excluyendo diálogos de ejemplo). Puede mejorar la coherencia para algunos modelos.",
|
||||
"Enable function calling": "Habilitar llamada a función",
|
||||
"Send inline images": "Enviar imágenes en línea",
|
||||
"image_inlining_hint_1": "Envía imágenes en mensajes si el modelo lo admite.\n Utilizar el",
|
||||
"image_inlining_hint_1": "Envía imágenes en mensajes si el modelo lo admite (por ejemplo, GPT-4V, Claude 3 o Llava 13B).\n Utilizar el",
|
||||
"image_inlining_hint_2": "acción sobre cualquier mensaje o el",
|
||||
"image_inlining_hint_3": "menú para adjuntar un archivo de imagen al chat.",
|
||||
"Inline Image Quality": "Calidad de imagen en línea",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "bandera",
|
||||
"API key (optional)": "Clave API (opcional)",
|
||||
"Server url": "URL del servidor",
|
||||
"Example: http://127.0.0.1:5000": "Ejemplo: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Ejemplo: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Modelo personalizado (opcional)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (modo contenedor de API OpenAI)",
|
||||
"vLLM API key": "Clave API vLLM",
|
||||
"Example: http://127.0.0.1:8000": "Ejemplo: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Ejemplo: http://127.0.0.1:8000",
|
||||
"vLLM Model": "Modelo vLLM",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Modo envolvente para API de OpenAI)",
|
||||
"Aphrodite API key": "Clave de API de Aphrodite",
|
||||
"Aphrodite Model": "Modelo Afrodita",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (Servidor de salida)",
|
||||
"Example: http://127.0.0.1:8080": "Ejemplo: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Ejemplo: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Ejemplo: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Ejemplo: 127.0.0.1:11434",
|
||||
"Ollama Model": "Modelo Ollama",
|
||||
"Download": "Descargar",
|
||||
"Tabby API key": "Clave API de Tabby",
|
||||
"koboldcpp API key (optional)": "Clave API de koboldcpp (opcional)",
|
||||
"Example: http://127.0.0.1:5001": "Ejemplo: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Ejemplo: 127.0.0.1:5001",
|
||||
"Authorize": "Autorizar",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Obtenga su token de API de OpenRouter utilizando el flujo OAuth. Será redirigido a openrouter.ai",
|
||||
"Bypass status check": "Saltar la verificación del estado",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Inicio de chat",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Agregue Inicio de chat y Separador de ejemplo a una lista de cadenas de parada.",
|
||||
"Use as Stop Strings": "Usar como Cadenas de Parada",
|
||||
"context_allow_jailbreak": "Incluye Jailbreak al final del mensaje, si está definido en la tarjeta de personaje Y está habilitado \"Prefer Char. Jailbreak\".\nESTO NO SE RECOMIENDA PARA MODELOS DE COMPLETO DE TEXTO, PUEDE PRODUCIR UN RESULTADO INCORRECTO.",
|
||||
"Allow Jailbreak": "Permitir Jailbreak",
|
||||
"Context Order": "Orden de contexto",
|
||||
"Summary": "Resumen",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Descargar chat como documento de texto sin formato",
|
||||
"Delete chat file": "Eliminar archivo de chat",
|
||||
"Use tag as folder": "Etiquetar como carpeta",
|
||||
"Hide on character card": "Ocultar en la tarjeta del personaje",
|
||||
"Delete tag": "Eliminar etiqueta",
|
||||
"Entry Title/Memo": "Título/Memo",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "Estado de entrada a WI:\r🔵 Constante\r🟢Normal\r🔗 Vectorizado\r❌ Deshabilitado",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "A quién se le atribuirá este mensaje.",
|
||||
"AI Assistant": "Asistente de IA",
|
||||
"prompt_manager_position": "Posición",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Junto a otras indicaciones (relativa) o en el chat (absoluta).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posición de inyección. Junto a otras indicaciones (relativa) o en el chat (absoluta).",
|
||||
"prompt_manager_relative": "Relativo",
|
||||
"prompt_manager_depth": "Profundidad",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = después del último mensaje, 1 = antes del último mensaje, etc.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profundidad de inyección. 0 = después del último mensaje, 1 = antes del último mensaje, etc.",
|
||||
"Prompt": "Indicar",
|
||||
"The prompt to be sent.": "El mensaje que se enviará.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este mensaje no puede ser anulado por tarjetas de personaje, incluso si se prefieren las anulaciones.",
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Combine les messages système consécutifs en un seul (à l'exclusion des dialogues d'exemple). Peut améliorer la cohérence pour certains modèles.",
|
||||
"Enable function calling": "Activer l'appel de fonction",
|
||||
"Send inline images": "Envoyer des images en ligne",
|
||||
"image_inlining_hint_1": "Envoie des images dans les prompts si le modèle le prend en charge.\nUtilisez le",
|
||||
"image_inlining_hint_1": "Envoie des images dans les prompts si le modèle le prend en charge (par exemple GPT-4V, Claude 3 ou Llava 13B).\nUtilisez le",
|
||||
"image_inlining_hint_2": "action sur n'importe quel message ou le",
|
||||
"image_inlining_hint_3": "menu pour joindre un fichier image au chat.",
|
||||
"Inline Image Quality": "Qualité d'image en ligne",
|
||||
@@ -301,23 +301,23 @@
|
||||
"flag": "fanion",
|
||||
"API key (optional)": "Clé API (optionnelle)",
|
||||
"Server url": "URL du serveur",
|
||||
"Example: http://127.0.0.1:5000": "Exemple : http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Exemple : 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Modèle personnalisé (optionnel)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (mode wrapper de l'API OpenAI)",
|
||||
"vLLM API key": "Clé API vLLM",
|
||||
"Example: http://127.0.0.1:8000": "Exemple : http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Exemple : http://127.0.0.1:8000",
|
||||
"vLLM Model": "Modèle vLLM",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (mode wrapper pour l'API OpenAI)",
|
||||
"Aphrodite API key": "Clé API Aphrodite",
|
||||
"Aphrodite Model": "Modèle Aphrodite",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp",
|
||||
"Example: http://127.0.0.1:8080": "Exemple : http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Exemple : http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Exemple : 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Exemple : 127.0.0.1:11434",
|
||||
"Ollama Model": "Modèle Ollama",
|
||||
"Download": "Télécharger",
|
||||
"Tabby API key": "Clé API de Tabby",
|
||||
"koboldcpp API key (optional)": "Clé API koboldcpp (facultatif)",
|
||||
"Example: http://127.0.0.1:5001": "Exemple : http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Exemple : 127.0.0.1:5001",
|
||||
"Authorize": "Autoriser",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Obtenez votre jeton API OpenRouter en utilisant le flux OAuth. Vous serez redirigé vers openrouter.ai",
|
||||
"Bypass status check": "Contourner la vérification de l'état",
|
||||
@@ -884,7 +884,6 @@
|
||||
"Download chat as plain text document": "Télécharger la discussion sous forme de document texte brut",
|
||||
"Delete chat file": "Supprimer le fichier de discussion",
|
||||
"Use tag as folder": "Utiliser les tags comme dossier",
|
||||
"Hide on character card": "Masquer sur la fiche du personnage",
|
||||
"Delete tag": "Supprimer le tag'",
|
||||
"Entry Title/Memo": "Titre de l'entrée/Mémo",
|
||||
"WI_Entry_Status_Constant": "Constante",
|
||||
@@ -951,7 +950,7 @@
|
||||
"prompt_manager_position": "Position",
|
||||
"prompt_manager_relative": "Relatif",
|
||||
"prompt_manager_depth": "Profondeur",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = après le dernier message, 1 = avant le dernier message, etc.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profondeur d'injection. 0 = après le dernier message, 1 = avant le dernier message, etc.",
|
||||
"Prompt": "Prompt",
|
||||
"The prompt to be sent.": "Le prompt à envoyer.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ce prompt ne peut pas être remplacé par les cartes de personnage, même si les remplacements sont préférés.",
|
||||
@@ -1449,6 +1448,7 @@
|
||||
"Add Character and User names to a list of stopping strings.": "Ajouter les noms de personnages et d'utilisateurs à une liste de chaînes d'arrêt.",
|
||||
"Names as Stop Strings": "Noms comme chaînes d'arrêt",
|
||||
"context_allow_post_history_instructions": "Inclut les instructions post-historiques à la fin du prompt, si elles sont définies dans la fiche de personnage ET si l'option 'Préférer les instructions de personnage' est activée.\nN'EST PAS RECOMMANDÉ POUR LES MODÈLES DE COMPLÉTION DE TEXTE, CAR IL PEUT ENTRAÎNER DE MAUVAIS RÉSULTATS.",
|
||||
"Allow Post-History Instructions": "Autoriser les instructions post-histoire",
|
||||
"Instruct Template": "Modèle d'instruction",
|
||||
"instruct_derived": "Dériver des métadonnées du modèle, si possible.",
|
||||
"instruct_enabled": "Activer le mode d'instruction",
|
||||
@@ -1545,7 +1545,7 @@
|
||||
"Filter to Characters or Tags": "Filtre sur les personnages ou les tags",
|
||||
"Switch the Character/Tags filter around to exclude the listed characters and tags from matching for this entry": "Changez le filtre Personnages/Tags pour exclure les personnages et tags listés de la correspondance pour cette entrée.",
|
||||
"Exclude": "Exclure",
|
||||
"Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Relative (par rapport à d'autres prompts dans le gestionnaire de prompts) ou In-chat @ Depth.",
|
||||
"Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Position d'injection. Relative (par rapport à d'autres prompts dans le gestionnaire de prompts) ou In-chat @ Depth.",
|
||||
"prompt_manager_in_chat": "In-chat",
|
||||
"The content of this prompt is pulled from elsewhere and cannot be edited here.": "Le contenu de ce message est tiré d'autres sources et ne peut être modifié ici..",
|
||||
"Open checkpoint chat\nShift+Click to replace the existing checkpoint with a new one": "Cliquer pour ouvrir le chat du point de contrôle\nShift+Click pour remplacer le point de contrôle existant par un nouveau.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Sameinar samhliða kerfisskilaboð í eitt (sem er utan umsagna dæmum). Getur bætt samfelldni fyrir sumar módel.",
|
||||
"Enable function calling": "Virkja aðgerðarkall",
|
||||
"Send inline images": "Senda myndir í línu",
|
||||
"image_inlining_hint_1": "Sendir myndir í skilaboðum ef líkanið styður það.\n Nota",
|
||||
"image_inlining_hint_1": "Sendir myndir í skilaboðum ef líkanið styður það (t.d. GPT-4V, Claude 3 eða Llava 13B).\n Nota",
|
||||
"image_inlining_hint_2": "aðgerð á hvaða skilaboðum sem er eða",
|
||||
"image_inlining_hint_3": "valmynd til að hengja myndskrá við spjallið.",
|
||||
"Inline Image Quality": "Innbyggð myndgæði",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "merki",
|
||||
"API key (optional)": "API lykill (valkvæmt)",
|
||||
"Server url": "URL þjóns",
|
||||
"Example: http://127.0.0.1:5000": "Dæmi: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Dæmi: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Sérsniðið módel (valkvæmt)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (OpenAI API umbúðastilling)",
|
||||
"vLLM API key": "vLLM API lykill",
|
||||
"Example: http://127.0.0.1:8000": "Dæmi: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Dæmi: http://127.0.0.1:8000",
|
||||
"vLLM Model": "vLLM líkan",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (OpenAI forritunargrensl)",
|
||||
"Aphrodite API key": "Aphrodite API lykill",
|
||||
"Aphrodite Model": "Afródíta fyrirmynd",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (úttak þjónn)",
|
||||
"Example: http://127.0.0.1:8080": "Dæmi: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Dæmi: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Dæmi: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Dæmi: 127.0.0.1:11434",
|
||||
"Ollama Model": "Ollama módel",
|
||||
"Download": "Niðurhal",
|
||||
"Tabby API key": "Tabby API lykill",
|
||||
"koboldcpp API key (optional)": "koboldcpp API lykill (valfrjálst)",
|
||||
"Example: http://127.0.0.1:5001": "Dæmi: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Dæmi: 127.0.0.1:5001",
|
||||
"Authorize": "Heimild",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Fáðu API lykilinn þinn fyrir OpenRouter með því að nota OAuth strauminn. Þú verður endurvísað(ð/ur) á openrouter.ai",
|
||||
"Bypass status check": "Hlaupa framhjá stöðutík",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Chat Start",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Bættu Chat Start og Example Separator við lista yfir stöðvunarstrengi.",
|
||||
"Use as Stop Strings": "Nota sem Stoppa Strengir",
|
||||
"context_allow_jailbreak": "Inniheldur Jailbreak í lok hvetjunnar, ef það er skilgreint á stafkortinu OG ''Velst Char. Jailbreak'' er virkt.\nÞETTA ER EKKI MÆLT FYRIR TEXTAÚRSLUNARGERÐ, GETUR leitt til lélegrar úttaks.",
|
||||
"Allow Jailbreak": "Leyfa jailbreak",
|
||||
"Context Order": "Samhengisröð",
|
||||
"Summary": "Samantekt",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Niðurhala spjalli sem einfaldan textaskjal",
|
||||
"Delete chat file": "Eyða spjallaskrá",
|
||||
"Use tag as folder": "Merktu sem mappa",
|
||||
"Hide on character card": "Fela á persónukorti",
|
||||
"Delete tag": "Eyða merki",
|
||||
"Entry Title/Memo": "Titill færslu/Minnisblað",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI inngangsstaða:\r🔵 Stöðugt\r😢 Venjulegt\r🔗 Vectorized\r❌ Óvirk",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "Hverjum þessi skilaboð verða eignuð.",
|
||||
"AI Assistant": "AI aðstoðarmaður",
|
||||
"prompt_manager_position": "Staða",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Við hliðina á öðrum leiðbeiningum (afstætt) eða í spjalli (algert).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Inndælingarstaða. Við hliðina á öðrum leiðbeiningum (afstætt) eða í spjalli (algert).",
|
||||
"prompt_manager_relative": "Aðstandandi",
|
||||
"prompt_manager_depth": "Dýpt",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = eftir síðustu skilaboð, 1 = fyrir síðustu skilaboð o.s.frv.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Inndælingardýpt. 0 = eftir síðustu skilaboð, 1 = fyrir síðustu skilaboð o.s.frv.",
|
||||
"Prompt": "Ábending",
|
||||
"The prompt to be sent.": "Tilvitnunin sem á að senda.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ekki er hægt að hnekkja þessari vísbendingu með persónuspjöldum, jafnvel þótt hnekkingar séu æskilegar.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Combina i messaggi di sistema consecutivi in uno solo (escludendo i dialoghi di esempio). Potrebbe migliorare la coerenza per alcuni modelli.",
|
||||
"Enable function calling": "Abilita la chiamata alla funzione",
|
||||
"Send inline images": "Invia immagini inline",
|
||||
"image_inlining_hint_1": "Invia immagini nei prompt se il modello lo supporta.\n Usa il",
|
||||
"image_inlining_hint_1": "Invia immagini nei prompt se il modello lo supporta (ad esempio GPT-4V, Claude 3 o Llava 13B).\n Usa il",
|
||||
"image_inlining_hint_2": "azione su qualsiasi messaggio o il",
|
||||
"image_inlining_hint_3": "menu per allegare un file immagine alla chat.",
|
||||
"Inline Image Quality": "Qualità dell'immagine in linea",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "bandiera",
|
||||
"API key (optional)": "Chiave API (opzionale)",
|
||||
"Server url": "URL del server",
|
||||
"Example: http://127.0.0.1:5000": "Esempio: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Esempio: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Modello personalizzato (opzionale)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (modalità wrapper API OpenAI)",
|
||||
"vLLM API key": "Chiave API vLLM",
|
||||
"Example: http://127.0.0.1:8000": "Esempio: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Esempio: http://127.0.0.1:8000",
|
||||
"vLLM Model": "Modello vLLM",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Modalità wrapper per l'API OpenAI)",
|
||||
"Aphrodite API key": "Chiave API di Aphrodite",
|
||||
"Aphrodite Model": "Modello di Afrodite",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (Server di output)",
|
||||
"Example: http://127.0.0.1:8080": "Esempio: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Esempio: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Esempio: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Esempio: 127.0.0.1:11434",
|
||||
"Ollama Model": "Modello Ollama",
|
||||
"Download": "Scarica",
|
||||
"Tabby API key": "Chiave API di Tabby",
|
||||
"koboldcpp API key (optional)": "Chiave API koboldcpp (opzionale)",
|
||||
"Example: http://127.0.0.1:5001": "Esempio: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Esempio: 127.0.0.1:5001",
|
||||
"Authorize": "Autorizzare",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Ottieni il tuo token API di OpenRouter utilizzando il flusso OAuth. Sarai reindirizzato su openrouter.ai",
|
||||
"Bypass status check": "Ignora controllo stato",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Inizio chat",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Aggiungi Inizio chat e Separatore di esempio a un elenco di stringhe di arresto.",
|
||||
"Use as Stop Strings": "Usa come stringhe di arresto",
|
||||
"context_allow_jailbreak": "Include il jailbreak alla fine del prompt, se definito nella carta personaggio E ''Preferisci Char. Il jailbreak'' è abilitato.\nQUESTO NON È CONSIGLIATO PER I MODELLI DI COMPLETAMENTO DEL TESTO, PUÒ PORTARE A UN RISULTATO CATTIVO.",
|
||||
"Allow Jailbreak": "Consenti jailbreak",
|
||||
"Context Order": "Ordine del contesto",
|
||||
"Summary": "Riepilogo",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Scarica la chat come documento di testo semplice",
|
||||
"Delete chat file": "Elimina il file di chat",
|
||||
"Use tag as folder": "Contrassegna come cartella",
|
||||
"Hide on character card": "Nascondi sulla scheda del personaggio",
|
||||
"Delete tag": "Elimina il tag",
|
||||
"Entry Title/Memo": "Titolo/Memo dell'Ingresso",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "Stato della voce WI:\r🔵 Costante\r🟢 Normale\r🔗 Vettorializzato\r❌Disabili",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "A chi verrà attribuito questo messaggio.",
|
||||
"AI Assistant": "Assistente AI",
|
||||
"prompt_manager_position": "Posizione",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Accanto ad altri suggerimenti (relativo) o in chat (assoluto).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posizione di iniezione. Accanto ad altri suggerimenti (relativo) o in chat (assoluto).",
|
||||
"prompt_manager_relative": "Parente",
|
||||
"prompt_manager_depth": "Profondità",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = dopo l'ultimo messaggio, 1 = prima dell'ultimo messaggio, ecc.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profondità di iniezione. 0 = dopo l'ultimo messaggio, 1 = prima dell'ultimo messaggio, ecc.",
|
||||
"Prompt": "Prompt",
|
||||
"The prompt to be sent.": "La richiesta da inviare.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Questo prompt non può essere sostituito dalle schede personaggio, anche se si preferisce sostituirlo.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "連続するシステムメッセージを1つに結合します(例のダイアログを除く)。一部のモデルの一貫性を向上させる可能性があります。",
|
||||
"Enable function calling": "関数呼び出しを有効にする",
|
||||
"Send inline images": "インライン画像を送信",
|
||||
"image_inlining_hint_1": "モデルがサポートしている場合、プロンプトで画像を送信します。",
|
||||
"image_inlining_hint_1": "モデルがサポートしている場合(GPT-4V、Claude 3、Llava 13Bなど)、プロンプトで画像を送信します。",
|
||||
"image_inlining_hint_2": "メッセージに対するアクションまたは",
|
||||
"image_inlining_hint_3": "チャットに画像ファイルを添付するためのメニュー。",
|
||||
"Inline Image Quality": "インライン画像品質",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "フラグ",
|
||||
"API key (optional)": "APIキー(オプション)",
|
||||
"Server url": "サーバーURL",
|
||||
"Example: http://127.0.0.1:5000": "例: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "例: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "カスタムモデル(オプション)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (OpenAI API ラッパーモード)",
|
||||
"vLLM API key": "vLLM API キー",
|
||||
"Example: http://127.0.0.1:8000": "例: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "例: http://127.0.0.1:8000",
|
||||
"vLLM Model": "vLLM モデル",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine(OpenAI APIエンドポイントのパッケージングモード)",
|
||||
"Aphrodite API key": "アフロディーテAPIキー",
|
||||
"Aphrodite Model": "アフロディーテモデル",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp(出力サーバー)",
|
||||
"Example: http://127.0.0.1:8080": "例: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "例: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "例: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "例: 127.0.0.1:11434",
|
||||
"Ollama Model": "Ollamaモデル",
|
||||
"Download": "ダウンロード",
|
||||
"Tabby API key": "TabbyのAPIキー",
|
||||
"koboldcpp API key (optional)": "koboldcpp API キー (オプション)",
|
||||
"Example: http://127.0.0.1:5001": "例: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "例: 127.0.0.1:5001",
|
||||
"Authorize": "承認",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "OAuthフローを使用してOpenRouter APIトークンを取得します。 openrouter.aiにリダイレクトされます",
|
||||
"Bypass status check": "ステータスのチェックをバイパスする",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "チャット開始",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "停止文字列のリストにチャット開始と例の区切り文字を追加します。",
|
||||
"Use as Stop Strings": "ストップ文字列として使用",
|
||||
"context_allow_jailbreak": "文字カードで定義されていて、「文字 Jailbreak を優先」が有効になっている場合は、プロンプトの最後に Jailbreak が含まれます。\nこれはテキスト補完モデルには推奨されません。出力が悪くなる可能性があります。",
|
||||
"Allow Jailbreak": "脱獄を許可する",
|
||||
"Context Order": "コンテキスト順序",
|
||||
"Summary": "まとめ",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "プレーンテキストドキュメントとしてチャットをダウンロード",
|
||||
"Delete chat file": "チャットファイルを削除",
|
||||
"Use tag as folder": "フォルダとしてタグ付け",
|
||||
"Hide on character card": "キャラクターカードで非表示",
|
||||
"Delete tag": "タグを削除",
|
||||
"Entry Title/Memo": "エントリータイトル/メモ",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI エントリ ステータス: 🔵 定数 🟢 通常 🔗 ベクトル化 ❌ 無効",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "このメッセージの送信者。",
|
||||
"AI Assistant": "AIアシスタント",
|
||||
"prompt_manager_position": "位置",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "他のプロンプトの隣 (相対) またはチャット内 (絶対)。",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "挿入位置。他のプロンプトの隣 (相対) またはチャット内 (絶対)。",
|
||||
"prompt_manager_relative": "相対的",
|
||||
"prompt_manager_depth": "深さ",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = 最後のメッセージの後、1 = 最後のメッセージの前など。",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "注入の深さ。0 = 最後のメッセージの後、1 = 最後のメッセージの前など。",
|
||||
"Prompt": "プロンプト",
|
||||
"The prompt to be sent.": "送信されるプロンプト。",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "このプロンプトは、オーバーライドが優先される場合でも、キャラクター カードによってオーバーライドすることはできません。",
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "연속된 시스템 메시지를 하나로 결합합니다(예제 대화 제외). 일부 모델의 일관성을 향상시킬 수 있습니다.",
|
||||
"Enable function calling": "함수 호출 활성화",
|
||||
"Send inline images": "인라인 이미지 전송",
|
||||
"image_inlining_hint_1": "모델이 지원하는 경우 메시지로 이미지를 보냅니다.\n 사용",
|
||||
"image_inlining_hint_1": "모델이 지원하는 경우 메시지로 이미지를 보냅니다(예: GPT-4V, Claude 3 또는 Llava 13B).\n 사용",
|
||||
"image_inlining_hint_2": "메시지에 대한 조치 또는",
|
||||
"image_inlining_hint_3": "채팅에 이미지 파일을 첨부하는 메뉴입니다.",
|
||||
"Inline Image Quality": "인라인 이미지 품질",
|
||||
@@ -320,23 +320,23 @@
|
||||
"flag": "깃발",
|
||||
"API key (optional)": "API 키 (선택 사항)",
|
||||
"Server url": "서버 URL",
|
||||
"Example: http://127.0.0.1:5000": "예시: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "예시: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "사용자 정의 모델 (선택 사항)",
|
||||
"vllm-project/vllm": "vllm-project/vllm(OpenAI API 래퍼 모드)",
|
||||
"vLLM API key": "vLLM API 키",
|
||||
"Example: http://127.0.0.1:8000": "예: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "예: http://127.0.0.1:8000",
|
||||
"vLLM Model": "vLLM 모델",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (OpenAI API의 래퍼 모드)",
|
||||
"Aphrodite API key": "Aphrodite API 키",
|
||||
"Aphrodite Model": "Aphrodite 모델",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (출력 서버)",
|
||||
"Example: http://127.0.0.1:8080": "예: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "예: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "예: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "예: 127.0.0.1:11434",
|
||||
"Ollama Model": "Ollama 모델",
|
||||
"Download": "다운로드",
|
||||
"Tabby API key": "Tabby API 키",
|
||||
"koboldcpp API key (optional)": "koboldcpp API 키(선택사항)",
|
||||
"Example: http://127.0.0.1:5001": "예: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "예: 127.0.0.1:5001",
|
||||
"Authorize": "승인하기",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "OAuth 플로우를 사용하여 OpenRouter API 토큰을 가져옵니다. openrouter.ai로 리디렉션됩니다.",
|
||||
"Legacy API (pre-OAI, no streaming)": "레거시 API (OAI 이전, 스트리밍 없음)",
|
||||
@@ -421,6 +421,7 @@
|
||||
"Chat Start": "채팅 시작",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "중지 문자열 목록에 채팅 시작 및 예제 구분 기호를 추가합니다.",
|
||||
"Use as Stop Strings": "중지 문자열로 사용",
|
||||
"context_allow_jailbreak": "캐릭터 카드에 정의되어 있고 ''Prefer Char. Jailbreak''가 활성화되어 있는 경우 프롬프트 끝에 Jailbreak를 포함합니다.\n이는 텍스트 완성 모델에 권장되지 않으며, 나쁜 출력으로 이어질 수 있습니다.",
|
||||
"Allow Jailbreak": "탈옥 허용",
|
||||
"Context Order": "컨텍스트 순서",
|
||||
"Summary": "요약",
|
||||
@@ -955,7 +956,6 @@
|
||||
"Download chat as plain text document": "일반 텍스트 문서로 채팅 다운로드",
|
||||
"Delete chat file": "채팅 파일 삭제",
|
||||
"Use tag as folder": "폴더로 태그 지정",
|
||||
"Hide on character card": "캐릭터 카드에서 숨기기",
|
||||
"Delete tag": "태그 삭제",
|
||||
"Entry Title/Memo": "항목 제목/메모",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI 입국 상태:\r🔵 상시\r🟢 조건 만족시\r🔗 벡터화됨\r❌ 비활성화",
|
||||
@@ -1027,11 +1027,11 @@
|
||||
"To whom this message will be attributed.": "해당 프롬프트에 부여할 역할은 무엇인가요?",
|
||||
"AI Assistant": "AI 어시스턴트",
|
||||
"prompt_manager_position": "위치",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "다른 프롬프트 옆(상대적) 또는 채팅 내(절대적).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "주입 위치. 다른 프롬프트 옆(상대적) 또는 채팅 내(절대적).",
|
||||
"prompt_manager_relative": "상대적인",
|
||||
"prompt_manager_in_chat": "깊이에 따라",
|
||||
"prompt_manager_depth": "깊이",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = 마지막 메시지 뒤, 1 = 마지막 메시지 앞 등",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "주입 깊이. 0 = 마지막 메시지 뒤, 1 = 마지막 메시지 앞 등",
|
||||
"Prompt": "프롬프트",
|
||||
"The prompt to be sent.": "보내질 프롬프트 내용을 작성하는 부분입니다.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "이 프롬프트는 고급 정의에서 재정의가 선호되는 경우에도 재정의될 수 없습니다.",
|
||||
@@ -1501,7 +1501,7 @@
|
||||
"enable_functions_desc_1": "다양한 확장 프로그램에서 추가 기능을 제공하기 위한",
|
||||
"enable_functions_desc_2": "기능 도구",
|
||||
"enable_functions_desc_3": "를 사용할 수 있게 합니다.",
|
||||
"Relative (to other prompts in prompt manager) or In-chat @ Depth.": "상대적인 (프롬프트 관리 목록에 있는 다른 프롬프트들에 비해) 또는 @Depth 깊이에 따라.",
|
||||
"Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "삽입 깊이. 상대적인 (프롬프트 관리 목록에 있는 다른 프롬프트들에 비해) 또는 @Depth 깊이에 따라.",
|
||||
"Instruct Template": "지시 템플릿",
|
||||
"System Message Sequences": "시스템 메시지 시퀀스",
|
||||
"System Prompt Sequences": "시스템 프롬프트 시퀀스",
|
||||
@@ -1520,6 +1520,7 @@
|
||||
"Always": "항상 추가함",
|
||||
"Separators as Stop Strings": "구분 기호를 정지 문자열로 사용하기",
|
||||
"Names as Stop Strings": "캐릭터의 이름들을 정지 문자열로 사용하기",
|
||||
"Allow Post-History Instructions": "Post-History 지침 허용",
|
||||
"Image Captioning": "이미지 캡셔닝",
|
||||
"Automatically caption images": "자동으로 이미지에 대한 설명 문장으로 나타내기",
|
||||
"Edit captions before saving": "저장하기 전에 이미지에 대한 설명 문장 편집하기",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Combineert opeenvolgende systeemberichten tot één (exclusief voorbeeld dialogen). Kan de coherentie verbeteren voor sommige modellen.",
|
||||
"Enable function calling": "Schakel functieaanroepen in",
|
||||
"Send inline images": "Inline afbeeldingen verzenden",
|
||||
"image_inlining_hint_1": "Verzendt afbeeldingen in prompts als het model dit ondersteunt.\n Gebruik de",
|
||||
"image_inlining_hint_1": "Verzendt afbeeldingen in prompts als het model dit ondersteunt (bijvoorbeeld GPT-4V, Claude 3 of Llava 13B).\n Gebruik de",
|
||||
"image_inlining_hint_2": "actie op elk bericht of de",
|
||||
"image_inlining_hint_3": "menu om een afbeeldingsbestand aan de chat toe te voegen.",
|
||||
"Inline Image Quality": "Inline-beeldkwaliteit",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "vlag",
|
||||
"API key (optional)": "API-sleutel (optioneel)",
|
||||
"Server url": "Server-URL",
|
||||
"Example: http://127.0.0.1:5000": "Voorbeeld: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Voorbeeld: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Aangepast model (optioneel)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (OpenAI API-wrappermodus)",
|
||||
"vLLM API key": "vLLM API-sleutel",
|
||||
"Example: http://127.0.0.1:8000": "Voorbeeld: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Voorbeeld: http://127.0.0.1:8000",
|
||||
"vLLM Model": "vLLM-model",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Wrappermodus voor OpenAI API)",
|
||||
"Aphrodite API key": "Aphrodite API-sleutel",
|
||||
"Aphrodite Model": "Aphrodite-model",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (Output-server)",
|
||||
"Example: http://127.0.0.1:8080": "Voorbeeld: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Voorbeeld: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Voorbeeld: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Voorbeeld: 127.0.0.1:11434",
|
||||
"Ollama Model": "Ollama-model",
|
||||
"Download": "Downloaden",
|
||||
"Tabby API key": "Tabby API-sleutel",
|
||||
"koboldcpp API key (optional)": "koboldcpp API-sleutel (optioneel)",
|
||||
"Example: http://127.0.0.1:5001": "Voorbeeld: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Voorbeeld: 127.0.0.1:5001",
|
||||
"Authorize": "Toestemming geven",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Haal uw OpenRouter API-token op met behulp van OAuth-flow. U wordt doorgestuurd naar openrouter.ai",
|
||||
"Bypass status check": "Omzeil statuscontrole",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Chatstart",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Voeg Chat Start en Voorbeeldscheidingsteken toe aan een lijst met stoptekenreeksen.",
|
||||
"Use as Stop Strings": "Gebruik als stopreeksen",
|
||||
"context_allow_jailbreak": "Inclusief jailbreak aan het einde van de prompt, indien gedefinieerd in de karakterkaart EN ''Prefer Char. Jailbreak'' is ingeschakeld.\nDIT WORDT NIET AANBEVOLEN VOOR MODELLEN VOOR HET INVOEREN VAN TEKST. KAN TOT SLECHTE UITVOER LEIDEN.",
|
||||
"Allow Jailbreak": "Jailbreak toestaan",
|
||||
"Context Order": "Contextvolgorde",
|
||||
"Summary": "Samenvatting",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Download chat als plat tekstbestand",
|
||||
"Delete chat file": "Chatbestand verwijderen",
|
||||
"Use tag as folder": "Taggen als map",
|
||||
"Hide on character card": "Verbergen op karakterkaart",
|
||||
"Delete tag": "Tag verwijderen",
|
||||
"Entry Title/Memo": "Titel/Memo",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI-invoerstatus:\r🔵Constant\r🟢 Normaal\r🔗 Gevectoriseerd\r❌ Uitgeschakeld",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "Aan wie dit bericht wordt toegeschreven.",
|
||||
"AI Assistant": "AI-assistent",
|
||||
"prompt_manager_position": "Positie",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Naast andere prompts (relatief) of in-chat (absoluut).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Injectiepositie. Naast andere prompts (relatief) of in-chat (absoluut).",
|
||||
"prompt_manager_relative": "Familielid",
|
||||
"prompt_manager_depth": "Diepte",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = na het laatste bericht, 1 = voor het laatste bericht, etc.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Injectiediepte. 0 = na het laatste bericht, 1 = voor het laatste bericht, etc.",
|
||||
"Prompt": "Prompt",
|
||||
"The prompt to be sent.": "De prompt die verzonden moet worden.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Deze prompt kan niet worden overschreven door karakterkaarten, zelfs als overschrijvingen de voorkeur hebben.",
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "Combina mensagens do sistema consecutivas em uma (excluindo diálogos de exemplo). Pode melhorar a coerência para alguns modelos.",
|
||||
"Enable function calling": "Habilitar chamada de função",
|
||||
"Send inline images": "Enviar imagens inline",
|
||||
"image_inlining_hint_1": "Envia imagens em prompts se o modelo suportar.\n Use o",
|
||||
"image_inlining_hint_1": "Envia imagens em prompts se o modelo suportar (por exemplo, GPT-4V, Claude 3 ou Llava 13B).\n Use o",
|
||||
"image_inlining_hint_2": "ação em qualquer mensagem ou",
|
||||
"image_inlining_hint_3": "menu para anexar um arquivo de imagem ao chat.",
|
||||
"Inline Image Quality": "Qualidade de imagem embutida",
|
||||
@@ -318,23 +318,23 @@
|
||||
"flag": "bandeira",
|
||||
"API key (optional)": "Chave da API (opcional)",
|
||||
"Server url": "URL do servidor",
|
||||
"Example: http://127.0.0.1:5000": "Exemplo: http://127.0.0.1:5000",
|
||||
"Example: 127.0.0.1:5000": "Exemplo: 127.0.0.1:5000",
|
||||
"Custom model (optional)": "Modelo personalizado (opcional)",
|
||||
"vllm-project/vllm": "vllm-project/vllm (modo wrapper da API OpenAI)",
|
||||
"vLLM API key": "Chave de API vLLM",
|
||||
"Example: http://127.0.0.1:8000": "Exemplo: http://127.0.0.1:8000",
|
||||
"Example: 127.0.0.1:8000": "Exemplo: http://127.0.0.1:8000",
|
||||
"vLLM Model": "Modelo vLLM",
|
||||
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Modo Wrapper para API OpenAI)",
|
||||
"Aphrodite API key": "Chave da API Aphrodite",
|
||||
"Aphrodite Model": "Modelo Afrodite",
|
||||
"ggerganov/llama.cpp": "ggerganov/llama.cpp (Servidor de Saída)",
|
||||
"Example: http://127.0.0.1:8080": "Exemplo: http://127.0.0.1:8080",
|
||||
"Example: http://127.0.0.1:11434": "Exemplo: http://127.0.0.1:11434",
|
||||
"Example: 127.0.0.1:8080": "Exemplo: 127.0.0.1:8080",
|
||||
"Example: 127.0.0.1:11434": "Exemplo: 127.0.0.1:11434",
|
||||
"Ollama Model": "Modelo Ollama",
|
||||
"Download": "Baixar",
|
||||
"Tabby API key": "Chave da API do Tabby",
|
||||
"koboldcpp API key (optional)": "Chave API koboldcpp (opcional)",
|
||||
"Example: http://127.0.0.1:5001": "Exemplo: http://127.0.0.1:5001",
|
||||
"Example: 127.0.0.1:5001": "Exemplo: 127.0.0.1:5001",
|
||||
"Authorize": "Autorizar",
|
||||
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Obtenha seu token da API do OpenRouter usando o fluxo OAuth. Você será redirecionado para openrouter.ai",
|
||||
"Bypass status check": "Ignorar verificação de status",
|
||||
@@ -411,6 +411,7 @@
|
||||
"Chat Start": "Início do Chat",
|
||||
"Add Chat Start and Example Separator to a list of stopping strings.": "Adicione o início do bate-papo e o separador de exemplo a uma lista de strings de parada.",
|
||||
"Use as Stop Strings": "Usar como Strings de Parada",
|
||||
"context_allow_jailbreak": "Inclui Jailbreak no final do prompt, se definido no cartão de personagem E ''Prefer Char. Jailbreak'' está habilitado.\nISTO NÃO É RECOMENDADO PARA MODELOS DE COMPLEMENTAÇÃO DE TEXTO, PODE LEVAR A UMA SAÍDA RUIM.",
|
||||
"Allow Jailbreak": "Permitir jailbreak",
|
||||
"Context Order": "Ordem de Contexto",
|
||||
"Summary": "Resumo",
|
||||
@@ -939,7 +940,6 @@
|
||||
"Download chat as plain text document": "Baixar bate-papo como documento de texto simples",
|
||||
"Delete chat file": "Excluir arquivo de bate-papo",
|
||||
"Use tag as folder": "Marcar como pasta",
|
||||
"Hide on character card": "Ocultar no cartão do personagem",
|
||||
"Delete tag": "Excluir tag",
|
||||
"Entry Title/Memo": "Título da Entrada/Memo",
|
||||
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "Status de entrada WI:\r🔵 Constante\r🟢 Normais\r🔗 Vetorizado\r❌ Desativado",
|
||||
@@ -1010,10 +1010,10 @@
|
||||
"To whom this message will be attributed.": "A quem esta mensagem será atribuída.",
|
||||
"AI Assistant": "Assistente de IA",
|
||||
"prompt_manager_position": "Posição",
|
||||
"Next to other prompts (relative) or in-chat (absolute).": "Ao lado de outras solicitações (relativas) ou no chat (absolutas).",
|
||||
"Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posição de injeção. Ao lado de outras solicitações (relativas) ou no chat (absolutas).",
|
||||
"prompt_manager_relative": "Relativo",
|
||||
"prompt_manager_depth": "Profundidade",
|
||||
"0 = after the last message, 1 = before the last message, etc.": "0 = após a última mensagem, 1 = antes da última mensagem, etc.",
|
||||
"Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profundidade de injeção. 0 = após a última mensagem, 1 = antes da última mensagem, etc.",
|
||||
"Prompt": "Prompt",
|
||||
"The prompt to be sent.": "O prompt a ser enviado.",
|
||||
"This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este prompt não pode ser substituído por cartas de personagem, mesmo que as substituições sejam preferidas.",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user