Commit Graph

2849 Commits

Author SHA1 Message Date
valadaptive 1029ad90a2 Extract "not in a chat" check into guard clause
This lets us remove a layer of indentation, and reveal the error
handling logic that was previously hidden below a really long block of
code.
2023-12-25 03:48:49 -05:00
valadaptive 4fc2f15448 Reformat up Generate() group logic
The first two conditions in the group if/else blocks are the same, so we
can combine them.
2023-12-25 03:48:49 -05:00
valadaptive 0d3505c44b Remove OAI_BEFORE_CHATCOMPLETION
Not used in any internal code or extensions I can find.
2023-12-25 03:48:49 -05:00
valadaptive d2f8632368 Remove populateLegacyTokenCounts
Unused and the documentation says it should probably be removed
2023-12-25 03:48:49 -05:00
valadaptive f53e051cbf Lift precondition check out of processCommands
Instead of passing type and dryRun into processCommands, do the check in
Generate, the only function that calls it. This makes the logic clearer.
2023-12-25 03:48:49 -05:00
Cohee 47cb017a45 #1589 Add 'cache_prompt' for l.cpp 2023-12-25 02:42:03 +02:00
DonMoralez a8e5285ff7 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-25 01:19:30 +02:00
Cohee 352b00caca Merge branches 'staging' and 'staging' of https://github.com/SillyTavern/SillyTavern into staging 2023-12-24 23:11:11 +02:00
RigbyB b6570e775d ComfyUI request/prompt fix 2023-12-24 21:02:04 +00:00
Cohee 4b254a75bc Add scale icon 2023-12-24 20:02:11 +02:00
Cohee f8dece9d88 Always remove logit bias and stop from vision 2023-12-24 20:01:59 +02:00
LenAnderson e147b2bd23 Merge branch 'staging' into qr-rewrite 2023-12-24 15:10:05 +00:00
LenAnderson 881a8e570f add execute button to QR editor 2023-12-24 15:07:12 +00:00
DonMoralez 3ac971b145 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-24 13:31:21 +02:00
Cohee a9e074dae1 Don't recreate first message if generation was run at least once 2023-12-24 02:47:00 +02:00
LenAnderson de8dc7310f fix for settings dom undefined 2023-12-24 00:29:44 +00:00
LenAnderson e01b51e6bd Merge branch 'staging' into qr-rewrite 2023-12-24 00:25:27 +00:00
LenAnderson aed38e32bd add ctrl-click to edit QR 2023-12-24 00:20:47 +00:00
LenAnderson 5cd911db6b put large message editor into additional options dlg 2023-12-24 00:20:30 +00:00
Cohee a8fb306c12 Add multimodal captioning for ooba 2023-12-24 01:43:29 +02:00
LenAnderson 3d5dc18d0c move click listener up 2023-12-23 23:26:00 +00:00
LenAnderson 3722bd25d4 Merge branch 'staging' into qr-rewrite 2023-12-23 22:05:10 +00:00
DonMoralez b476efd723 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-23 23:34:46 +02:00
LenAnderson 71fc0436cb center add qr button 2023-12-23 19:43:42 +00:00
DonMoralez 18e6a82306 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-23 20:06:55 +02:00
LenAnderson a8f130ec5d add slash commands to get existing QRs and QR sets 2023-12-23 16:36:41 +00:00
Doa 41ac2c07b2 Adding negative character prompts for img sources that support it 2023-12-23 16:19:22 +00:00
Cohee db3bf42d63 Fix Firefox number arrows not updating the slider 2023-12-23 16:09:03 +02:00
DonMoralez 6fb69d5929 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-23 00:25:57 +02:00
DonMoralez 6f163bd09c Modified exclude prefixes 2023-12-23 00:25:48 +02:00
Cohee b7a338e130 Move all Horde requests to server 2023-12-22 22:10:09 +02:00
Cohee 89d70539b9 Alternative continue method for chat completions 2023-12-22 20:24:54 +02:00
DonMoralez e95482aea1 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-22 17:12:59 +02:00
DonMoralez ee06a488b0 Add exclude prefixes checkbox, modified sequence checker 2023-12-22 17:04:58 +02:00
LenAnderson 6e3159db3f Merge branch 'staging' into qr-rewrite 2023-12-22 13:56:04 +00:00
LenAnderson 82a4ddbe01 cleanup 2023-12-22 13:55:37 +00:00
LenAnderson cbceb7d1e8 add old settings migration 2023-12-22 13:45:37 +00:00
LenAnderson f90e60783c remove debugger 2023-12-22 13:45:37 +00:00
LenAnderson 4fc456dffa delete QR set command and API 2023-12-22 13:45:37 +00:00
LenAnderson a088fb1746 error handling 2023-12-22 13:45:37 +00:00
LenAnderson e3c2d6771c fix slash command hints 2023-12-22 13:45:37 +00:00
LenAnderson 9e7bc0b8ab update todos 2023-12-22 13:45:37 +00:00
LenAnderson 9f13ab1fe9 rename exported quick reply api var 2023-12-22 13:45:37 +00:00
LenAnderson a0918a3f5c add QR API 2023-12-22 13:45:37 +00:00
LenAnderson 5125eaf1dc implement slash commands 2023-12-22 13:45:37 +00:00
LenAnderson 8959c0d380 add QR popout 2023-12-22 13:45:37 +00:00
LenAnderson 40706e8430 fix isCombined not saved 2023-12-22 13:45:37 +00:00
LenAnderson 65e16affb7 add context menu 2023-12-22 13:45:37 +00:00
LenAnderson bab0c4b0b9 add linebreaks in confirm popups 2023-12-22 13:45:37 +00:00
LenAnderson c71a5bb82f handle overwriting QR set 2023-12-22 13:45:37 +00:00
LenAnderson 3a9b163aca add delete hack :( 2023-12-22 13:45:37 +00:00
LenAnderson ac09fa6019 handle deleting 2023-12-22 13:45:37 +00:00
LenAnderson 2648b3c801 restructuring 2023-12-22 13:45:19 +00:00
Cohee 18445f527b Fix select2 empty message background + correct before selector 2023-12-22 02:22:09 +02:00
Cohee 45f6cb0fa8 Add chunked translate for long messages 2023-12-22 00:05:23 +02:00
Cohee 09fd772a20 #1579 Add ooba character yaml import 2023-12-21 21:46:09 +02:00
Cohee 4621834c87 Short formatting path for empty messages 2023-12-21 20:50:30 +02:00
Cohee a85a6cf606 Allow displaying unreferenced macro in message texts 2023-12-21 20:49:03 +02:00
Cohee 39e0b0f5cb Remove custom Handlebars helpers for extensions. 2023-12-21 20:33:50 +02:00
valadaptive 8fb26284e2
Clean up Generate(), part 2 (#1578)
* Move StreamingProcessor constructor to the top

Typical code style is to declare the constructor at the top of the class
definition.

* Remove removePrefix

cleanupMessage does this already.

* Make message_already_generated local

We can pass it into StreamingProcessor so it doesn't have to be a global
variable.

* Consolidate setting isStopped and abort signal

Various places were doing some combination of setting isStopped, calling
abort on the streaming processor's abort controller, and calling
onStopStreaming. Let's consolidate all that functionality into
onStopStreaming/onErrorStreaming.

* More cleanly separate streaming/nonstreaming paths

* Replace promise with async function w/ handlers

By using onSuccess and onError as promise handlers, we can use normal
control flow and don't need to remember to use try/catch blocks or call
onSuccess every time.

* Remove runGenerate

Placing the rest of the code in a separate function doesn't really do
anything for its structure.

* Move StreamingProcessor() into streaming code path

* Fix return from circuit breaker

* Fix non-streaming chat completion request

* Fix Horde generation and quiet unblocking

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2023-12-21 20:20:28 +02:00
Cohee bddccd0356 Missed several context bind cases 2023-12-21 17:19:42 +02:00
Cohee b5e59c819c Merge branch 'staging' into claude-rework 2023-12-21 16:52:43 +02:00
Cohee e1afe41c91 Fix custom expression duplication 2023-12-21 16:50:30 +02:00
Cohee b3dfe16706 #1575 Fix clean-up WI depth injections 2023-12-21 16:33:21 +02:00
Cohee dd661cf879 Instruct "Bind to context" is now an option 2023-12-21 15:12:30 +02:00
Cohee ee75adbd2d Update persona name if it is bound by user name input 2023-12-21 14:56:32 +02:00
Cohee f3099ac270 Remove model icon fill colors 2023-12-21 14:43:36 +02:00
Cohee 747867c6f4
Merge pull request #1580 from SillyTavern/custom
Custom API endpoint type for Chat Completion
2023-12-21 14:42:18 +02:00
RossAscends afdd9d823e Merge branch 'staging' of https://github.com/Cohee1207/SillyTavern into staging 2023-12-21 12:43:59 +09:00
RossAscends 348cc5f2a5 placeholder API icon for tabby 2023-12-21 12:43:57 +09:00
Cohee 3001db3a47 Add additional parameters for custom endpoints 2023-12-20 23:39:10 +02:00
Cohee e42daa4098 Add caption ask prompt mode 2023-12-20 21:23:59 +02:00
Cohee ae64c99835 Add custom caption source 2023-12-20 21:05:20 +02:00
Cohee cf8d7e7d35 Merge branch 'staging' into custom 2023-12-20 18:37:47 +02:00
Cohee ebec26154c Welcome message fixed 2023-12-20 18:37:34 +02:00
Cohee 5734dbd17c Add custom endpoint type 2023-12-20 18:29:03 +02:00
Cohee 041b9d4b01 Add style sanitizer to message renderer 2023-12-20 17:03:37 +02:00
LenAnderson 34decf1c05 add creating of new QR sets 2023-12-20 14:04:28 +00:00
Cohee c212a71425 Fix ignore list of preset manager 2023-12-20 15:51:00 +02:00
Cohee b0a4341571
Merge pull request #1574 from artisticMink/feature/before-combine-event
Allow extensions to alter the context order.
2023-12-20 15:46:34 +02:00
LenAnderson 69d6b9379a implement QR basics 2023-12-20 13:40:44 +00:00
LenAnderson e19bf1afdd clean out QR extension 2023-12-20 13:39:09 +00:00
Cohee 93db2bf953 Simplify extras summary settings 2023-12-20 01:56:35 +02:00
Cohee 4b131067e4 Add local multimodal caption sources 2023-12-20 00:45:45 +02:00
Cohee 029cf598ce Fix /peek command 2023-12-19 23:12:14 +02:00
maver 8d63ce5559 Log Novel Ai prompt to console
When prompt logging is enabled.
2023-12-19 19:27:24 +01:00
maver f30f75b310 Add GENERATE_BEFORE_COMBINE_PROMPTS event
Allows for context to be ordered by extensions
2023-12-19 19:11:36 +01:00
Cohee 3b22159f53 Fix spelling 2023-12-19 19:45:28 +02:00
Cohee c7b93b690f
Merge pull request #1573 from StefanDanielSchwarz/Llama-2-Chat-separator-fix
Llama 2 Chat separator fix
2023-12-19 19:14:54 +02:00
Cohee 67dd52c21b #1309 Ollama text completion backend 2023-12-19 16:38:11 +02:00
SDS d9fc396b39
Update Llama 2 Chat.json
Official separator is a space instead of a newline. That format itself is still FUBAR, but at least we get a little closer to what it was intended to look, I guess.
2023-12-19 00:48:42 +01:00
maver 0a649a395d Add 'synchronous' event emitter 2023-12-18 21:55:33 +01:00
Cohee edd737e8bd #371 Add llama.cpp inference server support 2023-12-18 22:38:28 +02:00
DonMoralez 37807acc60 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-18 22:01:38 +02:00
Cohee 6e8104873e #1569 Add logit bias for text completions 2023-12-18 18:57:10 +02:00
Cohee 08ea2095f8 Refactor Novel logit bias 2023-12-18 17:32:10 +02:00
Cohee be5d428706
Merge pull request #1565 from SillyTavern/togetherai
Add TogetherAI as a text completion source
2023-12-18 14:52:36 +02:00
Carsten Kragelund Jørgensen c2ad90eb2a
fix: verify QR exists when deleting through /qr-delete 2023-12-18 13:29:27 +01:00
Cohee ac70a0a592 Add TogetherAI for image generation 2023-12-18 03:33:05 +02:00
Cohee 4473532151 Merge branch 'staging' into togetherai 2023-12-18 02:35:38 +02:00
Cohee f6b59d0d3a Uniform command registration 2023-12-18 02:35:02 +02:00
Cohee bdc7aaf3f1
Merge pull request #1567 from LenAnderson/more-comfyui-flexibility
More comfyui flexibility
2023-12-18 02:33:13 +02:00
DonMoralez 1df9e628bd Merge remote-tracking branch 'upstream/staging' into staging 2023-12-18 02:25:52 +02:00
DonMoralez 50ece13752 Add restore button, def hum message, claude check 2023-12-18 02:25:17 +02:00
Cohee f249ff8b20 Fix slash commands for offscreen group members 2023-12-18 01:39:37 +02:00
LenAnderson 796ab7eff8 validate /icw 2023-12-17 22:57:10 +00:00
LenAnderson 56b9398353 add slash command to change comfy workflows 2023-12-17 22:24:22 +00:00
LenAnderson 55b9ebad3f add custom placeholders for comfy workflows 2023-12-17 22:17:08 +00:00
Cohee b0d9f14534 Re-add Together as a text completion source 2023-12-17 23:38:03 +02:00
Cohee 180061337e Merge branch 'staging' into anachronous/release 2023-12-17 21:35:49 +02:00
Cohee 61e87d562f Add confirmation for regen with keystroke 2023-12-17 21:27:33 +02:00
Cohee 960c91c147 Add confirmation for convert to group 2023-12-17 21:14:16 +02:00
Cohee a91f0f7ee5 Fix saving presets after deletion of the same name 2023-12-17 21:02:32 +02:00
DonMoralez 7835a1360f Merge remote-tracking branch 'upstream/staging' into staging 2023-12-17 19:46:47 +02:00
LenAnderson fb25a90532 add GENERATION_STARTED event 2023-12-17 17:45:23 +00:00
Cohee c7c1513e91 Add proxy support for multimodal captions. Add caption pre-prompt 2023-12-17 19:41:20 +02:00
RossAscends a88cf1552a add check for uparrow hotkey to see if last_mes edit buttons are visible 2023-12-17 23:19:20 +09:00
DonMoralez 27a25e1298 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-17 13:52:49 +02:00
RossAscends b0907d23cc Merge branch 'staging' of https://github.com/Cohee1207/SillyTavern into staging 2023-12-17 20:18:53 +09:00
RossAscends 3d1bbd94e1 allow msg edit hotkey when user is last 2023-12-17 20:18:51 +09:00
anachronos 1e88c8922a
Merge branch 'staging' into release 2023-12-17 10:38:04 +01:00
Cohee a62122a7d7 Merge branch 'staging' into mistral 2023-12-17 02:41:29 +02:00
Cohee e0531f85dc
Merge pull request #1557 from SillyTavern/Deathspike/release
Allow comma after "char" prefix
2023-12-17 02:38:39 +02:00
Cohee 6e8a217482
Merge pull request #1548 from Deathspike/release
Add SD character-specific prompt prefix options to free-mode
2023-12-17 02:38:14 +02:00
Cohee 7fb9d9bfc1 Allow comma after "char" prefix 2023-12-17 02:34:42 +02:00
Cohee 26e822046e Hide "Summarize now" for extras source 2023-12-16 22:33:09 +02:00
Fayiron eb2a85cfe0 Add TogetherAI API key to secrets.js 2023-12-16 15:11:04 +01:00
Fayiron 2e1660e895 Add TogetherAI model and settings 2023-12-16 15:08:03 +01:00
Fayiron ccb6ba8cb3 Add TogetherAI integration form 2023-12-16 14:48:49 +01:00
Fayiron 9f2d32524c Add TogetherAI as a chat completion source, basic 2023-12-16 14:39:30 +01:00
DonMoralez d19cc7ee36 Merge remote-tracking branch 'upstream/staging' into staging 2023-12-16 14:06:25 +02:00
Deathspike 14400b05f9 Rework character-prefixed free-mode to support macro 2023-12-16 11:29:34 +01:00
based ed96ec5c3e reverse proxy condition fix 2023-12-16 12:02:34 +10:00
Cohee b569d74552 Configurable auto-mode delay 2023-12-16 02:52:48 +02:00
Cohee e609789f8d Adjust step for OAI TTS speed 2023-12-16 01:58:52 +02:00
based f16ac8686e just incase 2023-12-16 09:50:10 +10:00
Cohee 6774ec3eb9 Add a separate button to update current UI theme 2023-12-16 01:45:48 +02:00
based af059a6af6 more last prompt fixes + added an svg 2023-12-16 09:44:47 +10:00
Cohee 9b9026b12e Add toggle for compact input area (mobile) 2023-12-16 01:35:28 +02:00
based e8ca2e8c22 Merge branch 'staging' of https://github.com/Cohee1207/SillyTavern into mistral 2023-12-16 08:48:37 +10:00
based 7acb61ab68 use appropriate tokenizer with mistral completion source 2023-12-16 08:47:51 +10:00
Cohee 0678a385d7
Merge pull request #1551 from alicat22/dev
ZenSlider - Default 10 steps to 20
2023-12-16 00:41:55 +02:00
based 5dd2e8cd88 added mistral vector support (off the back of oai's) 2023-12-16 08:37:39 +10:00
DonMoralez 6b59014892 (Fix) "squash sys. messages" processed empty messages, adding \n 2023-12-16 00:24:48 +02:00
DonMoralez 1f36a3eaae Merge remote-tracking branch 'upstream/staging' into staging 2023-12-16 00:15:16 +02:00
AliCat 3aa950bb45
ZenSlider - Default 10 steps to 20 2023-12-15 15:01:05 -07:00
Cohee 2b448233e9
Merge pull request #1545 from LenAnderson/times-slash-command
add /times slash command
2023-12-15 23:39:29 +02:00
Cohee 5bda74b886
Too many lines 2023-12-15 23:39:02 +02:00
based 583f786d74 finish mistral frontend integration + apikey status check 2023-12-16 07:15:57 +10:00
based 041957975a add mistral completion source to UI 2023-12-16 06:08:41 +10:00
LenAnderson 279b731f64 use isFalseBoolean in while and times 2023-12-15 19:48:25 +00:00
LenAnderson 74d0ef5572 make MAX_LOOPS module wide 2023-12-15 19:47:40 +00:00
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
valadaptive d735b12399 Refactor event stream parsing
I was really overcomplicating this before; this is simpler and faster.
Passes my existing test suite.
2023-12-08 15:05:57 -05:00
valadaptive 699c369443 Remove ignoreBOM
Apparently the ignoreBOM option actually means "include the BOM". I've
added a test for this in my own repository, and will also be submitting
a pull request to MDN to clarify this in their documentation.
2023-12-07 23:15:55 -05:00
Cohee b0e7b73a32 Fix streaming processor error handler hooks 2023-12-08 02:01:08 +02:00
valadaptive 5569a63595 Remove legacy_streaming setting
This was a workaround for older versions of Slaude that implemented SSE
improperly. This was fixed in Slaude 7 months ago, so the workaround can
be removed.
2023-12-07 18:00:36 -05:00
valadaptive cdcd913805 Don't stream events if the API returned a 4xx code 2023-12-07 18:00:36 -05:00
valadaptive 5540c165cf Refactor server-sent events parsing
Create one server-sent events stream class which implements the entire
spec (different line endings, chunking, etc) and use it in all the
streaming generators.
2023-12-07 18:00:36 -05:00
Cohee 6f610204d6
Merge pull request #1488 from LenAnderson/add-index-argument-to-setvar-/-setglobalvar
Add index argument to setvar / setglobalvar
2023-12-08 00:40:14 +02:00
Cohee 2607e787ff Put comment command on hold 2023-12-08 00:38:13 +02:00
Cohee e2f886d796 Revert pipe caching 2023-12-08 00:33:27 +02:00
Cohee 7f7ad6f523 Merge branch 'staging' into backgrounds-endpoint 2023-12-07 23:16:33 +02:00
Cohee 404b1562e5
Merge pull request #1491 from valadaptive/stats-endpoint
Move stats endpoints into their own module
2023-12-07 23:11:12 +02:00
valadaptive 2367f4f38f Rename backgrounds API endpoints 2023-12-07 15:17:19 -05:00
LenAnderson 65f2cc1952 add a comment slash commend /#
for commenting longer ST scripts
2023-12-07 18:29:28 +00:00
LenAnderson d52b5fb947 pass prev pipeResult through if result undefined 2023-12-07 18:28:58 +00:00
LenAnderson 5a719d635a use isArray instead of instanceof 2023-12-07 18:27:11 +00:00
LenAnderson 7bfed3fca1 /addvar on array to push 2023-12-07 18:12:05 +00:00
Cohee c84b6a5101 Add WI inclusion groups 2023-12-07 20:06:06 +02:00
valadaptive 26ebb417f4 Rename stats API endpoints 2023-12-07 13:00:34 -05:00
Cohee e804f27368 Convert value to string for echo. Fix return value 2023-12-07 19:37:55 +02:00
LenAnderson 2ee57afe2a add helpString for index in setvar 2023-12-07 16:51:45 +00:00
LenAnderson db6f782e0f add index to /setvar and /setglobalvar 2023-12-07 16:48:24 +00:00
Cohee b1f68d886c Fix WI field access for UID = 0 2023-12-07 18:45:34 +02:00
Cohee 72adb4c8aa Fix window.ai streaming 2023-12-07 17:42:06 +02:00
Cohee 990f958f4f #1484 Consolidate chat name template 2023-12-07 16:59:53 +02:00
Cohee 2417ae9d87 #1484 Display version on close chat 2023-12-07 16:57:47 +02:00
Cohee 785be22e51 Merge branch 'staging' into st-object-vars 2023-12-07 16:46:02 +02:00
Cohee e9a49b7997
Merge pull request #1485 from LenAnderson/qr-expand-editor
Add expand button to QR textareas
2023-12-07 15:31:01 +02:00
Cohee b506a17260 Fix expand after drag 2023-12-07 15:29:40 +02:00
LenAnderson afd32d1f4d better handling of array / object vars 2023-12-07 12:56:28 +00:00
LenAnderson 0290916035 stop expanding textarea 2023-12-07 12:29:00 +00:00
LenAnderson a1bfca78b3 add custom titles (tooltips) to QR buttons 2023-12-07 12:20:02 +00:00
LenAnderson d62ef8badc add expand button for QR textareas 2023-12-07 12:04:39 +00:00
Cohee 75abc6101a /input input => /input default 2023-12-07 13:44:49 +02:00
Cohee 0e6802c9d9 Too much lint 2023-12-07 13:35:48 +02:00
Cohee 25db4b6fde Merge branch 'staging' into feat/slash-commands-missing-args 2023-12-07 13:19:15 +02:00
Cohee 8082144c5a Merge branch 'staging' into worldinfo-endpoint 2023-12-07 12:58:57 +02:00
Cohee 0138008031 Merge branch 'staging' into groups-endpoint 2023-12-07 12:50:24 +02:00
Cohee c0fb5a4787
Merge pull request #1473 from valadaptive/chats-endpoint
Move chat endpoints into their own module
2023-12-07 12:36:43 +02:00
Cohee 9b7a0f3d35 Hide loader before displaying blocking error message 2023-12-07 12:29:12 +02:00
Cohee bd1f09c644 Add loader for chat renaming 2023-12-07 12:27:18 +02:00
Cohee 698890ae0f Fix /delchat slash command 2023-12-07 12:20:33 +02:00
RossAscends c51a821b1e fix zen slider rep pen range value transfer 2023-12-07 11:52:10 +09:00
SrJuggernaut d6d0371459 add missing args to some slash commands 2023-12-06 19:26:29 -06:00
valadaptive c746e6a426 Rename worldinfo API endpoints 2023-12-06 20:00:51 -05:00
valadaptive 8027372fc2 Rename group API endpoints 2023-12-06 19:59:58 -05:00
valadaptive 6efe95f4f1 Rename chat API endpoints 2023-12-06 19:58:24 -05:00
Cohee 55d7bd6a87 Return last evaluation of random 2023-12-07 02:45:35 +02:00
Cohee f575e0d61d Add {{currentSwipeId}} / {{lastSwipeId}} macros 2023-12-07 02:35:24 +02:00