Cohee
9d68a8b7ae
#1408 Force summary source-specific controls on load
2023-12-15 21:35:25 +02:00
Deathspike
8aa1814287
Fix SD character-prefixed free-mode user detection
2023-12-15 19:34:29 +01:00
DonMoralez
d6e5ceaf93
Merge remote-tracking branch 'upstream/staging' into staging
2023-12-15 20:15:29 +02:00
Cohee
cd51592f32
#1546 Up precision again
2023-12-15 19:45:42 +02:00
Cohee
0ff5645d4f
#1546 Lower the step of max context
2023-12-15 19:22:14 +02:00
Cohee
cebbf2fd55
Fix background layer flash
2023-12-15 18:43:36 +02:00
Deathspike
008ac9d47e
Add SD character-prefixed free-mode
2023-12-15 16:14:33 +01:00
Cohee
ef17702f6a
Merge branch 'staging' into bg-load-improvements
2023-12-15 17:02:10 +02:00
Cohee
6c16b94f9d
Merge pull request #1540 from valadaptive/refactor-device-check
...
Refactor mobile device check
2023-12-15 17:01:32 +02:00
LenAnderson
6337e0bbd6
add /times slash command
2023-12-15 12:38:26 +00:00
LenAnderson
0e55648336
add rounding (round, ceil, floor) to /rand
2023-12-15 12:16:46 +00:00
DonMoralez
10fb83ee53
Merge remote-tracking branch 'upstream/staging' into staging
2023-12-15 13:12:15 +02:00
valadaptive
0ee19d2ede
Set background client-side
2023-12-15 05:45:21 -05:00
valadaptive
7897206cf8
Add a pre-loading screen cover
...
This matches the loader color and exists to prevent a flash of unstyled
content when the page first loads and JS has not yet run.
2023-12-15 05:34:33 -05:00
Cohee
332ab81524
Merge pull request #1535 from valadaptive/separate-settings-endpoints
...
Move settings endpoints into their own module
2023-12-15 01:49:29 +02:00
valadaptive
66953ceba3
Move device type detection to client side
...
We don't need the server to tell us our user agent--we can get it
ourselves through navigator.userAgent and parse it on the frontend.
I've replaced device-detector-js with Bowser because device-detector-js
is really slow, freezing for up to 500ms to parse a single user agent.
2023-12-14 18:43:59 -05:00
valadaptive
8cfc8ebe66
Remove boolean comparisons to isMobile
...
We know this function will *always* return a boolean, so we don't need
to compare it to one.
2023-12-14 18:37:54 -05:00
valadaptive
fbdfa05f81
Replace usage of getDeviceInfo with isMobile
...
We were using getDeviceInfo to check whether we were on a desktop or a
mobile device. This can be done more simply with isMobile, which means
we can stop exporting getDeviceInfo.
2023-12-14 18:37:54 -05:00
Cohee
bc31f70af3
Merge pull request #1536 from LenAnderson/rand-slash-command
...
add /rand slash command
2023-12-15 01:25:47 +02:00
Cohee
9075399932
White-space pre => pre-line
2023-12-15 01:22:24 +02:00
Cohee
86b3dcdca3
Fix lint and validation
2023-12-15 01:14:22 +02:00
Cohee
f489a18f0b
Merge branch 'staging' into qr-crud-slash-commands
2023-12-15 00:42:41 +02:00
LenAnderson
aa1dfa8a5f
add /rand slash command
2023-12-14 22:26:24 +00:00
valadaptive
769cc0a78f
Rename settings API endpoints
2023-12-14 16:47:03 -05:00
Cohee
f93e40b1d3
Merge pull request #1533 from kingbased/gemini
...
Better Google Makersuite/AI adapter + Gemini Pro & Vision Support & tokenizers
2023-12-14 22:42:30 +02:00
Cohee
635830049c
Replace makersuite icon to appropriate. Leave palm for historical purposes
2023-12-14 22:40:04 +02:00
Cohee
6406f76c7d
Compress too large images for Google captions
2023-12-14 22:28:22 +02:00
Cohee
cde9903fcb
Fix Bison models
2023-12-14 22:18:34 +02:00
Cohee
eec28469f8
Fix server crash if multimodal prompt contains no image
2023-12-14 21:21:37 +02:00
LenAnderson
b5b85724c7
add slash command to update existing QR preset
2023-12-14 19:08:27 +00:00
Cohee
2045e414d1
lint: format fix
2023-12-14 20:57:43 +02:00
LenAnderson
0519629b70
fix autocomplete help text
2023-12-14 18:54:42 +00:00
LenAnderson
dbf28fce47
cleanup autocomplete help text
2023-12-14 18:52:23 +00:00
LenAnderson
5e3584d5ed
add slash command to create QR preset
2023-12-14 18:51:55 +00:00
Cohee
bb8b8f9386
Fix sending PNG/WEBP to Google captioning
2023-12-14 20:36:31 +02:00
LenAnderson
90ec6b9159
add slash commands for context menus
2023-12-14 18:25:19 +00:00
DonMoralez
6f16ccf01f
Merge branch 'staging' of https://github.com/DonMoralez/SillyTavern into staging
2023-12-14 20:17:41 +02:00
LenAnderson
3e44e4240c
handle escapes for pipes and curcly brackets
2023-12-14 18:09:33 +00:00
Cohee
a6bb754567
Fix API key access
2023-12-14 19:56:43 +02:00
Cohee
6bb894286e
Migrate palm source to makersuite
2023-12-14 19:54:31 +02:00
Cohee
68bb616be3
Merge branch 'staging' into cleanup-sampler-order
2023-12-14 18:32:30 +02:00
LenAnderson
5e61ff8d05
fix help string
2023-12-14 16:11:03 +00:00
based
5071b9a369
webstorm moment
2023-12-15 02:01:42 +10:00
LenAnderson
372ef2172e
add slash commands to crud QRs
2023-12-14 16:00:38 +00:00
based
60880cfd4d
merge
2023-12-15 01:39:12 +10:00
based
698850b514
Merge remote-tracking branch 'fork/staging' into gemini
...
# Conflicts:
# server.js
# src/endpoints/prompt-converters.js
# src/endpoints/tokenizers.js
2023-12-15 01:35:17 +10:00
based
d5bcd96eef
message inlining vision support
2023-12-15 01:28:54 +10:00
Cohee
00687a9379
Merge branch 'staging' into separate-altscale-endpoints
2023-12-14 17:12:19 +02:00
Cohee
b524870544
Fix AI21 icon styles
2023-12-14 16:56:39 +02:00
based
178b07f414
cleaned up a little
2023-12-14 23:18:56 +10:00
based
0b7c1a98cd
added google vision caption support
2023-12-14 22:37:53 +10:00
based
ca87f29771
added streaming for google models
2023-12-14 21:03:41 +10:00
valadaptive
0f25d51a53
Send Kobold sampler order as an array
2023-12-14 02:03:36 -05:00
based
3e82a7d439
tokenizer changes and fixes. + a toggle
2023-12-14 16:31:08 +10:00
based
e26159c00d
refactor and rework palm request to work with the 'content' format and added an endpoint for googles tokenizer
2023-12-14 15:49:50 +10:00
based
be396991de
finish implementing ui changes for google models
2023-12-14 11:53:26 +10:00
based
69e24c9686
change palm naming in UI
2023-12-14 11:14:41 +10:00
valadaptive
22e048b5af
Rename generate_altscale endpoint
2023-12-13 18:53:46 -05:00
valadaptive
92bd766bcb
Rename chat completions endpoints
...
OpenAI calls this the "Chat Completions API", in contrast to their
previous "Text Completions API", so that's what I'm naming it; both
because other services besides OpenAI implement it, and to avoid
confusion with the existing /api/openai route used for OpenAI extras.
2023-12-13 18:52:08 -05:00
Cohee
0cd92f13b4
Merge branch 'staging' into separate-kobold-endpoints
2023-12-14 01:33:36 +02:00
Cohee
cebd6e9e0f
Add API token ids from KoboldCpp
2023-12-14 01:28:18 +02:00
Cohee
b957e3b875
Merge pull request #1518 from valadaptive/separate-ooba-endpoints
...
Move Ooba/textgenerationwebui endpoints into their own module
2023-12-14 01:27:05 +02:00
DonMoralez
fec27820ff
(claude)reworked prefix assignment, sysprompt mode, console message display
2023-12-13 21:19:26 +02:00
valadaptive
274605a07c
Rename Kobold-related endpoints
2023-12-12 16:42:12 -05:00
valadaptive
5b3c96df50
Rename /textgenerationwebui endpoint
...
I'd like to migrate over to using "textgen" to mean text-generation APIs
in general, so I've renamed the /textgenerationwebui/* endpoints to
/backends/text-completions/*.
2023-12-12 16:40:14 -05:00
valadaptive
7732865e4c
Another explanatory comment
2023-12-12 16:36:47 -05:00
valadaptive
87cbe361fc
Cache stopping strings rather than skipping them
2023-12-12 16:32:54 -05:00
Cohee
3d7706e6b3
#1524 Skip stop strings clean-up during streaming
2023-12-12 23:09:39 +02:00
Cohee
83f2c1a8ed
#1524 Add FPS limiter to streamed rendering
2023-12-12 22:11:23 +02:00
Cohee
9160de7714
Run macros on impersonation prompt
2023-12-12 19:24:32 +02:00
Cohee
9176f46caf
Add /preset command
2023-12-12 19:14:17 +02:00
Cohee
a9a05b17b9
Merge pull request #1517 from LenAnderson/firstIncludedMessageId
...
Add macro for first included message in context
2023-12-12 01:24:57 +02:00
Cohee
07fecacce2
Add to macro help
2023-12-12 01:24:21 +02:00
Cohee
f1ed60953a
Merge pull request #1516 from LenAnderson/slash-command-for-getTokenCount
...
Add /tokens slash command to call getTokenCount
2023-12-12 01:19:24 +02:00
Cohee
299749a4e7
Add prerequisites for websearch extension
2023-12-12 01:08:47 +02:00
LenAnderson
2bdd3672d4
add macro for first included message in context
2023-12-11 23:06:21 +00:00
LenAnderson
69f90a0b30
add /tokens slash command to call getTokenCount
2023-12-11 22:51:07 +00:00
Cohee
1b11ddc26a
Add vector storage to WI scanning
2023-12-11 22:47:26 +02:00
Cohee
afe3e824b1
Unblock left swipe on swipeId overflow.
2023-12-11 21:16:09 +02:00
Cohee
e713021737
Merge pull request #1511 from valadaptive/more-kobold-cleanups
...
More Kobold cleanups
2023-12-11 20:59:49 +02:00
Cohee
05ab147209
Fix swipes getting stuck when no Horde models selected
2023-12-11 20:46:34 +02:00
Cohee
27782b2f83
Fix united version comparison
2023-12-11 20:44:29 +02:00
Cohee
7482a75bbd
Merge pull request #1493 from valadaptive/generate-cleanups
...
Clean up Generate(), part 1
2023-12-11 20:21:32 +02:00
Cohee
d38a4dc6c1
Fix abort group generation
2023-12-11 20:03:31 +02:00
Cohee
0302686a96
Return from Generate if calling circuit breaker
2023-12-11 19:07:33 +02:00
Cohee
e96fb0c1b5
Fix group wrapper not resolving to a valid text
2023-12-11 19:00:42 +02:00
Cohee
0fcf8fd491
Typing indicator fixed
2023-12-11 18:23:00 +02:00
Cohee
c48e447c42
Add rows and button text to import window
2023-12-11 16:23:47 +02:00
Cohee
17105568f4
Reduce hard coded anim. durations
2023-12-11 16:23:21 +02:00
Cohee
e7c2975ab0
Fix adv.defs overlap with past chats. Close CFG with Escape
2023-12-11 15:39:58 +02:00
Cohee
c6bd3ef255
Fix /sys continue in groups
2023-12-11 15:08:20 +02:00
valadaptive
42d4ffe5e8
Remove Kobold "canUse(...)" functions
...
Replace them all with a versionCompare helper function which we can call
directly with the minimum version constants.
2023-12-10 20:39:21 -05:00
valadaptive
d33cb0d8d1
Clarify getstatus API
...
Instead of "version" and "koboldVersion", have "koboldUnitedVersion" and
"koboldCppVersion", the latter of which is null if we're not connected
to KoboldCpp.
2023-12-10 20:34:11 -05:00
valadaptive
1fbf4394c8
Separate Kobold Horde status function
2023-12-10 20:16:07 -05:00
valadaptive
3ab1962b84
Improve circuit breaker
...
We now track the loop counter as a parameter of Generate that we
decrement with every recursive call, rather than a global variable,
and it *should* now work with quiet prompt generation.
2023-12-10 18:46:28 -05:00
valadaptive
3d7c901464
Remove looping backoff behavior
2023-12-10 18:35:46 -05:00
Cohee
23e6a10cb5
Unsqueeze advanced defs rows
2023-12-11 01:33:56 +02:00
valadaptive
315d981804
Reject generation on circuit breaker error
2023-12-10 18:13:34 -05:00
Cohee
7450112e9b
Unbust user continue in group chats
2023-12-11 00:02:49 +02:00
Cohee
e8742a3e9d
Merge branch 'release' into staging
2023-12-10 23:28:10 +02:00
Cohee
2e6ab8be46
Add Object.hasOwn polyfill
2023-12-10 23:28:00 +02:00
Cohee
05b08f1ce2
Don't await delay promise
2023-12-10 21:51:16 +02:00
Cohee
2e50efc35c
Limit waiting for TTS to init to 1 second on chat change
2023-12-10 21:50:52 +02:00
valadaptive
ae9445e500
Reject on data.error
2023-12-10 13:56:31 -05:00
valadaptive
5fd466b53f
Fix generateQuietPrompt
2023-12-10 13:54:39 -05:00
Cohee
420d186823
Add reduced motion toggle
2023-12-10 20:02:25 +02:00
valadaptive
33f969f097
Have Generate() return a promise
...
Generate(), being async, now returns a promise-within-a-promise.
If called with `let p = await Generate(...)`, it'll wait for generation
to *start*. If you then `await p`, you'll wait for generation to
*finish*. This makes it much easier to tell exactly when generation's
done. generateGroupWrapper has been similarly modified.
2023-12-10 12:30:10 -05:00
Cohee
13e016f3e5
Merge pull request #1508 from LenAnderson/tts-skip-codeblocks-option
...
add TTS option to skip codeblock narration
2023-12-10 19:28:16 +02:00
valadaptive
03884b29ad
Always call resolve in Generate()
...
This lets us get rid of the janky hack in group-chats to tell when a
message is done generating.
2023-12-10 12:26:30 -05:00
valadaptive
f5d2e50f5e
Remove isGenerationAborted
...
Just check the AbortSignal.
2023-12-10 12:24:18 -05:00
Cohee
f8a903e1fd
#1506 Fix big markdown images
2023-12-10 18:45:55 +02:00
Cohee
dbd52a7994
Merge pull request #1482 from valadaptive/sse-stream
...
Refactor server-sent events parsing
2023-12-10 18:32:19 +02:00
LenAnderson
bf88829b03
add option to skip codeblock narration
2023-12-10 16:32:10 +00:00
Cohee
af89cfa870
Code clean-up
2023-12-10 16:48:25 +02:00
Cohee
5054de247b
Merge branch 'staging' into qr-editor-tab-support
2023-12-10 16:36:28 +02:00
Cohee
9acef0fae6
Horde doesn't support API tokenizers
2023-12-10 16:21:06 +02:00
Cohee
f54bf99006
Fix token ids not displaying in "API_CURRENT" mode for TextGen
2023-12-10 16:09:00 +02:00
Cohee
6957d9e7cf
Fix display names of Best match tokenizers
2023-12-10 16:03:25 +02:00
Cohee
6e5eea5dba
Unbreak previously selected API tokenizer in dropdown
2023-12-10 15:56:38 +02:00
Cohee
d5140142fb
Merge branch 'staging' into tokenizers-cleanup
2023-12-10 15:51:15 +02:00
Cohee
e0d0e1dd66
Merge pull request #1502 from valadaptive/status-cleanup
...
Clean up getStatus code
2023-12-10 15:49:37 +02:00
Cohee
6be1c6ff10
Merge pull request #1504 from valadaptive/store-compiled-templates
...
Cache compiled Handlebars templates
2023-12-10 15:32:52 +02:00
Cohee
5f1683f43a
More input padding and stricter sanitation
2023-12-10 15:07:39 +02:00
valadaptive
0201a0260c
Default event type to 'message' if it's empty
...
Added to the upstream test suite. Matches the spec.
2023-12-10 04:45:10 -05:00
valadaptive
55976e61a3
Fix tokenizer override
...
I searched for all users of tokenizers.API, but missed that the menu
converts the numerical select values directly to enum values. I've used
the special tokenizer value 98 to represent "the tokenizer API for
whichever backend we're currently using".
2023-12-09 23:57:21 -05:00
valadaptive
0fce475a95
Implement random sort with a shuffle
...
Sorting with a random comparator doesn't actually shuffle an array.
Depending on the sorting algorithm used, there will be a bias to the
shuffle (see https://bost.ocks.org/mike/shuffle/compare.html ).
If you open that link in Firefox, the bias will be especially bad.
Instead of implementing "random" character sort using a random sort
comparator, use the shuffle function instead.
2023-12-09 22:52:38 -05:00
valadaptive
c48bc8a76e
Cache compiled Handlebars templates
...
Since we already have a template cache, it makes sense to store the
templates in it *after* compiling them, to avoid the overhead of
re-compiling them every time we call renderTemplate.
I've also changed the cache from an object to a Map--it's more
semantically correct, and avoids weird edge cases like a template named
"hasOwnProperty" or some other function that exists as an object
property.
2023-12-09 21:29:36 -05:00
valadaptive
499d158c11
Remove last usage of getAPIServerUrl
...
Now that we're not using this in the tokenizers code, we can remove it.
2023-12-09 20:55:34 -05:00
valadaptive
014416546c
Add padding once in getTokenCount
...
This means we don't have to pass the "padding" parameter into every
function so they can add the padding themselves--we can do it in just
one place instead.
2023-12-09 20:53:16 -05:00
valadaptive
2f2cd197cc
Clean up tokenizer API code
...
Store the URLs for each tokenizer's action in one place at the top of
the file, instead of in a bunch of switch-cases. The URLs for the
textgen and Kobold APIs don't change and hence don't need to be
function arguments.
2023-12-09 20:48:41 -05:00
valadaptive
09465fbb97
Inline most get(...)TokenizerParams calls
...
For everything except textgenerationwebui, these params are now simple
enough that it doesn't make sense for them to be in a separate function.
2023-12-09 20:35:11 -05:00
valadaptive
30502ac949
Split up Kobold and textgenerationwebui endpoints
...
The endpoint was one big if/else statement that did two entirely
different things depending on the value of main_api. It makes more sense
for those to be two separate endpoints.
2023-12-09 20:26:24 -05:00
valadaptive
7486ab3886
Separate textgen and Kobold tokenization APIs
...
They function differently and have different logic and API parameters,
so it makes sense to count them as two different APIs. Kobold's API
doesn't return tokens, so it can only be used to count them.
There's still a lot of duplicate code which I will clean up in the
following commits.
2023-12-09 20:24:56 -05:00
valadaptive
18177c147d
Separate remote and server tokenization code paths
...
This lets us remove extraneous API params from paths where they aren't
needed.
2023-12-09 20:08:48 -05:00
valadaptive
ddd73a204a
Remove "remote" language from tokenizer functions
...
We'll be making a distinction between tokenizing *on* the server itself,
and tokenizing via the server having the AI service do it. It makes more
sense to use the term "remote" for the latter.
2023-12-09 19:49:22 -05:00
valadaptive
8bad059a62
Rename /tokenize_via_api endpoint
...
No redirect for this since I don't expect any extensions to be calling this directly.
2023-12-09 19:29:24 -05:00
valadaptive
a23be7d785
Clean up CSS for API "connect" buttons
...
Instead of identifying each connect button by ID, we can just use the
.api_button class. The .menu_button class *would* override it due to CSS
cascade rules (specifically, declarations later in the stylesheet apply
over ones that appear earlier), but the `.menu_button.api_button`
selector has a higher *specificity* and hence works.
2023-12-09 18:52:14 -05:00
valadaptive
babb127aee
Move NovelAI status functions over to the rest
...
Have all the get(...)Status and event handler registrations in the same
areas, rather than having the NovelAI ones far away. I want to
eventually move all the API-specific stuff into separate modules, but
this will make things cleaner for the time being.
2023-12-09 18:41:51 -05:00
valadaptive
0ea0399ed1
Separate getStatus into Kobold/textgen versions
...
This adds a bit of duplicate code for the time being, but ultimately
makes the code less confusing because we only need to include the bits
that are relevant to the specific API in each function. We can also
remove API parameters that are useless depending on the endpoint.
2023-12-09 18:39:19 -05:00
LenAnderson
a3ec8d709d
add support for tab and shift-tab in QR editor
2023-12-09 17:56:36 +00:00
Cohee
2d7811fa46
Merge pull request #1499 from LenAnderson/qr-execute-from-any-preset
...
Allow /run for quick replies from any preset
2023-12-09 19:49:03 +02:00
LenAnderson
d00861d913
allow /run for quick replies from other presets
...
/run otherPresetName.quickReplyLabel
2023-12-09 17:20:15 +00:00
Cohee
e79f6d82da
Merge pull request #1498 from artisticMink/bulkedit-delete-optimization
...
Only refresh character list after all deletions have been processed.
2023-12-09 18:07:44 +02:00
Cohee
b915b89ca9
Fix ESLint
2023-12-09 16:09:10 +02:00
Cohee
04c83eae71
Use null coalescing operator
2023-12-09 16:07:55 +02:00
Cohee
ad9130b538
Single doc mode: edit on click
2023-12-09 16:01:43 +02:00
artisticMink
dfd41a110a
Prevent 'no such file or directory' error when mass deleting characters
2023-12-09 14:36:37 +01:00
artisticMink
4692450975
Enable getPastCharacterChats to work with specific character ids
2023-12-09 14:36:15 +01:00
artisticMink
ba3966e148
Only refresh character list after all deletions have been processed.
2023-12-09 14:31:18 +01:00
valadaptive
3cfc32c16d
Refactor error handling
...
Remove the StreamingProcessor.hook method and use a try-catch block to
await the generator promise and set the generator, handling errors with
onError if it fails.
2023-12-08 18:40:17 -05:00