• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
koboldlink

Plugins + Scripts koboldlink

Download [<1 MB]
Hello!
I think I finally fixed this issue in the latest version (v18). At least, I tested it for a while, but this issue didn't reoccur. It seems the problem was that I was trying to play audio in an async request handler, which is not a good idea in Unity (nor is invoking atom triggers in those handlers). This could lead to errors such as "mono.dll caused an Access Violation" and "Read from location XXX caused an access violation". Now I moved the audio playback to the Update() function and that helped.
...I'm not sure how optimal this solution is, although. If anyone knows how to threat it in a correct way, I'd be happy to receive advice 😄
dunno why but with this update the ui dosent show up and i get this error
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
!> Exception during LateRestore of plugin#12_KoboldLink.KoboldLink: System.NullReferenceException: Object reference not set to an instance of an object
at KoboldLink.KoboldLink.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at Atom.LateRestore (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean restoreCore, Boolean isSubSceneRestore, Boolean setMissingToDefault, Boolean isTheSubSceneAtom) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle vecterror.ColorCorrect.1:/Custom/Assets/colorcorrect.assetbundle. Not valid
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
 
dunno why but with this update the ui dosent show up and i get this error
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
!> Exception during LateRestore of plugin#12_KoboldLink.KoboldLink: System.NullReferenceException: Object reference not set to an instance of an object
at KoboldLink.KoboldLink.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at Atom.LateRestore (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean restoreCore, Boolean isSubSceneRestore, Boolean setMissingToDefault, Boolean isTheSubSceneAtom) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle vecterror.ColorCorrect.1:/Custom/Assets/colorcorrect.assetbundle. Not valid
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
!> Exception during plugin script Init: System.InvalidCastException: Cannot cast from source type to destination type.
at KoboldLink.KoboldLink.AtomNameReplace1 (SimpleJSON.JSONClass json_proc) [0x00000] in <filename unknown>:0
at KoboldLink.KoboldLink.Init () [0x00000] in <filename unknown>:0
at MVRPluginManager.CreateScriptController (.MVRPlugin mvrp, DynamicCSharp.ScriptType type) [0x00000] in <filename unknown>:0
Thank you for testing it.
This initialization error may be due to the plugin attempting to use configuration files remaining from older versions of the plugin, or because other information from older versions of the plugin remains in the scene.
Can you, please, try deleting all files from the [VaM location]/Custom/PluginData/koboldlink folder and restarting the plugin?
You can also try running the plugin in a new scene that did not use previous versions of the plugin.
 
Last edited:
Thank you for testing it.
This initialization error may be due to the plugin attempting to use configuration files remaining from older versions of the plugin, or because other information from older versions of the plugin remains in the scene.
Can you, please, try deleting all files from the [VaM location]/Custom/PluginData/koboldlink folder and restarting the plugin?
You can also try running the plugin in a new scene that did not use previous versions of the plugin.
thank you its working now no problems
 
Hi. Great asset! But I have a question. Is it possible to use STT with Koboldcpp TTS? I see that Koboldcpp has STT using whisper. But the record mic in VAM plugin UI gives me an error.
 
Hi. Great asset! But I have a question. Is it possible to use STT with Koboldcpp TTS? I see that Koboldcpp has STT using whisper. But the record mic in VAM plugin UI gives me an error.
Hello!
Thank you for trying it!
Unfortunately, in the current version (v18), STT (speech-to-text) only works with TextAudioTool (which also uses Whisper):
But thanks for your suggestion, I will try to add Koboldcpp STT support in the next version.
 
Function calling is not working for me for some reason.
First I get an error in Koboldcpp:
Code:
Body Err: b'{"max_context_length": 4096, "max_length": 18,"memory":"", "prompt":"\\n### Instruction:\\nGiven the dialog between Master and Lizi, determine the best available function from the list that Lizi should execute.If none of the available functions match, choose \'fn.noop()\'. Your response should only contain the name of the function and nothing else.\n\nBased on the following, determine which function to call from the list:\n\nMaster:\nPlease sit on your knees\nLizi:\nI like that Master it feels so nic\n\nThe list of functions available to Lizi:\n- \'fn.noop()\': None of the other functions matching the reply\n- \'fn.sitdown1()\': when Master asks Lizi to sit on her knees\n\n\nPlease do not introduce your own new functions. Select only functions from the list above.\n\n\\n### Response:\\n", "quiet":"true", "stop_sequence":["### Instruction:", "### Response:"], "rep_pen": 1.1, "rep_pen_range": 256, "rep_pen_slope": 1, "temperature": 0.5, "tfs": 1, "top_a": 0, "top_k": 100, "top_p": 0.9, "typical": 1, "function_calling":"true"}'

Second according to this output in Kobold it see my button fn.sitdown1() with a condition "when Master asks Lizi to sit on her knees", and I have input exactly that "Please sit on your knees", but it says that this function is not matching the reply.

How am I supposed to use this to activate actions with prompts?
 
Function calling is not working for me for some reason.
First I get an error in Koboldcpp:
Code:
Body Err: b'{"max_context_length": 4096, "max_length": 18,"memory":"", "prompt":"\\n### Instruction:\\nGiven the dialog between Master and Lizi, determine the best available function from the list that Lizi should execute.If none of the available functions match, choose \'fn.noop()\'. Your response should only contain the name of the function and nothing else.\n\nBased on the following, determine which function to call from the list:\n\nMaster:\nPlease sit on your knees\nLizi:\nI like that Master it feels so nic\n\nThe list of functions available to Lizi:\n- \'fn.noop()\': None of the other functions matching the reply\n- \'fn.sitdown1()\': when Master asks Lizi to sit on her knees\n\n\nPlease do not introduce your own new functions. Select only functions from the list above.\n\n\\n### Response:\\n", "quiet":"true", "stop_sequence":["### Instruction:", "### Response:"], "rep_pen": 1.1, "rep_pen_range": 256, "rep_pen_slope": 1, "temperature": 0.5, "tfs": 1, "top_a": 0, "top_k": 100, "top_p": 0.9, "typical": 1, "function_calling":"true"}'

Second according to this output in Kobold it see my button fn.sitdown1() with a condition "when Master asks Lizi to sit on her knees", and I have input exactly that "Please sit on your knees", but it says that this function is not matching the reply.

How am I supposed to use this to activate actions with prompts?
Thank you for testing it and reporting the error.
It looks like it is my mistake. I only tested this part with the horde. It seems the local koboldcpp does not accept the single quote character ( ' ) in the prompt, while the horde is okay with this prompt.
I think I should test any new functionality with both the local kobold and the horde.
I will fix it soon.
 
bot1789 updated koboldlink with a new update entry:

version 19

Fixes:
- Fixed an initialization error that occurred when using an incomplete preferences file (for example, one created by an older version of the plugin). If the pref.json file is incomplete, preferences that are not defined in it will be set to default values, and messages about it will appear in the log;
- Fixed inability to use function calling with a local koboldcpp;
- Other stability and text processing fixes.

Read the rest of this update entry...
 
Function calling is not working for me for some reason.
First I get an error in Koboldcpp:
Code:
Body Err: b'{"max_context_length": 4096, "max_length": 18,"memory":"", "prompt":"\\n### Instruction:\\nGiven the dialog between Master and Lizi, determine the best available function from the list that Lizi should execute.If none of the available functions match, choose \'fn.noop()\'. Your response should only contain the name of the function and nothing else.\n\nBased on the following, determine which function to call from the list:\n\nMaster:\nPlease sit on your knees\nLizi:\nI like that Master it feels so nic\n\nThe list of functions available to Lizi:\n- \'fn.noop()\': None of the other functions matching the reply\n- \'fn.sitdown1()\': when Master asks Lizi to sit on her knees\n\n\nPlease do not introduce your own new functions. Select only functions from the list above.\n\n\\n### Response:\\n", "quiet":"true", "stop_sequence":["### Instruction:", "### Response:"], "rep_pen": 1.1, "rep_pen_range": 256, "rep_pen_slope": 1, "temperature": 0.5, "tfs": 1, "top_a": 0, "top_k": 100, "top_p": 0.9, "typical": 1, "function_calling":"true"}'

Second according to this output in Kobold it see my button fn.sitdown1() with a condition "when Master asks Lizi to sit on her knees", and I have input exactly that "Please sit on your knees", but it says that this function is not matching the reply.

How am I supposed to use this to activate actions with prompts?
I think I have managed to fix this bug in the latest version. Although the problem was not with single quote symbols (koboldcpp seems to have no problem with those), but some variants of line breaks. I just forgot to replace them with acceptable symbols in some cases.
 
I think I have managed to fix this bug in the latest version. Although the problem was not with single quote symbols (koboldcpp seems to have no problem with those), but some variants of line breaks. I just forgot to replace them with acceptable symbols in some cases.
Great! Thank you! Will go and try it out.) And thanks for a great asset for VaM!
 
Great! Thank you! Will go and try it out.) And thanks for a great asset for VaM!
Thank you for using the plugin. If the error is not fixed or if you find any other errors, please let me know.
 
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
) . What do I do? How do I fix this?
 
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
) . What do I do? How do I fix this?
Some problem with the Koboldcpp server.
This error typically occurs when Koboldcpp is not running at the specified URL. Ensure the KoboldCpp with an LLM is running.
Are you using a local KoboldCPP server (you need to use the URL http://localhost:5001/api/v1/generate to connect to it)?
 
Some problem with the Koboldcpp server.
This error typically occurs when Koboldcpp is not running at the specified URL. Ensure the KoboldCpp with an LLM is running.
Are you using a local KoboldCPP server (you need to use the URL http://localhost:5001/api/v1/generate to connect to it)?

!> No entry AudiofilePath_ST in pref.json; setting default value: SillyTavernExtras/
!> No entry max_context_length in pref.json; setting default value: 2048
!> No entry max_length in pref.json; setting default value: 100
!> No entry FunctionCalling_max_length in pref.json; setting default value: 18
!> No entry KoboldURL2 in pref.json; setting default value: http://127.0.0.1:7069/horde_generate
!> No entry AILaunchTriggersOn in pref.json; setting default value: true
!> No entry EventPromptOn in pref.json; setting default value: false
!> No entry SearchWord_send in pref.json; setting default value: $AI_send
!> No entry SearchWord_uitext in pref.json; setting default value: AI_text
!> No entry SearchWord_uitext2 in pref.json; setting default value: AI_resp
!> No entry SearchWord_sent_uitext in pref.json; setting default value: $AI_senti
!> No entry SearchWord_STT_result in pref.json; setting default value: $AI_STT
!> No entry VoiceName_SAPI in pref.json; setting default value: Microsoft Zira Desktop - English (United States)
!> No entry VoiceName_ST_Silero in pref.json; setting default value: en_12
!> No entry VoiceName_Koboldcpp in pref.json; setting default value: cheery
!> No entry SpeechOn in pref.json; setting default value: true
!> No entry SpeechBubbleOn in pref.json; setting default value: true
!> No entry RemoveIncompleteSentenceOn in pref.json; setting default value: true
!> No entry CustomTriggerOn in pref.json; setting default value: false
!> No entry SentimentHandlingOn in pref.json; setting default value: false
!> No entry SpeechBubbleDuration, s in pref.json; setting default value: 30
!> No entry LipSynchOn in pref.json; setting default value: true
!> No entry LipSynchVolMultiplier in pref.json; setting default value: 3
!> No entry TextAudioToolSTT_URL in pref.json; setting default value: http://127.0.0.1:7069/listen-whisper
!> No entry KoboldSTT_URL in pref.json; setting default value: http://localhost:5001/api/extra/transcribe
!> No entry default_STT_provider in pref.json; setting default value: TextAudioTool
!> No entry default_TTS_provider in pref.json; setting default value: TextAudioTool
!> No entry TextAudioTool_URL in pref.json; setting default value: http://127.0.0.1:7069/speak
!> No entry SillyTavernExtras_URL in pref.json; setting default value: http://localhost:5100/api/tts/generate
!> No entry KoboldTTS_URL in pref.json; setting default value: http://localhost:5001/api/extra/tts
!> No entry Classify_URL in pref.json; setting default value: http://127.0.0.1:7069/classify
!> No entry Classify_URL_ST in pref.json; setting default value: http://localhost:5100/api/classify
!> No entry default_Classify_provider in pref.json; setting default value: TextAudioTool
!> No entry Classify_URL in pref.json; setting default value: http://127.0.0.1:7069/classify
!> No entry FunctionCallingOn in pref.json; setting default value: false
!> No entry Function calling chatdepth in pref.json; setting default value: 1
!> No entry Function calling delay in pref.json; setting default value: 0
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
)
!> Kobold result upload error_: Error: ConnectFailure (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
)
!> Kobold result upload error_: Error: ConnectFailure (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
)
!> Kobold result upload error_: Error: ConnectFailure (No connection could be made because the target machine actively refused it.
) I tried what you said, plus I played around with with the other connection options like horde. With same results. I also doubled checked my firewall, but there's no record in the logs that it blocked anything. I'd love to try this out anything else I can do to get it work Ty for your time.
 
I tried what you said, plus I played around with with the other connection options like horde. With same results. I also doubled checked my firewall, but there's no record in the logs that it blocked anything. I'd love to try this out anything else I can do to get it work Ty for your time.

I'm feel sad that the plugin isn't working for you, although I still cannot figure out the reason.
"No entry..." errors are usually caused by an old pref.json file (from a previous version of the plugin) in the [VAM Root Directory]\Custom\PluginData\koboldlink\files folder. Try deleting this file, and the plugin will write a new, compatible file when you reload it.
Please note that the Horde option will only work when using the koboldlink-tools proxy (please read the plugin description).

By the way, what version of koboldcpp and which LLM are you using? Are you running it on the same PC as VaM? Does it respond to requests from the Kobold Lite browser app?
 
bot1789 updated koboldlink with a new update entry:

version 21

Update:
- voice input (STT) using koboldcpp is available (tested with whisper-base.en-q5_1.bin model);
- more variables are available for in-game triggers and other plugins (for example, you can use such plugins as 14mhz.UIBinder and HAL9001.LogicBricks2.UI_Sync to display the values of these variables in the scene);
- minor UI udates.


Read the rest of this update entry...
 
Hey @bot1789!
I am so glad to see you still cook this project! There really is nothing like this out there, but AI is such a big step for vam. Actually I cant imagine using scenes without your plugin anymore..
Though I have to admit I use a bit differently then you might originally planned so most of the newer functionalities are less interesting. As such I am still on version 8, cuz I got used to that gui, but I give a try every now and then for the newer versions.
So actually I would like to ask something a bit technical if you dont mind.
I tuned a bit the original prompts for memory and the other 2 (I dont remember their names) to let the AI not only write spoken answers but describe internal feelings, reactions and a minimal story development. I found that 70b llm models are very good at staying coherent even with long conversations. The speech bubble is also just enough format for this. I tried voicing early on, but quality output is either slow or very expensive, also for this kind of useage less fitting. The textaudiotool was also a weak point that broke many times. So it is simply more reliable skipping altogether.
So my question would be that if it is possible to craft the api calling to koboldcpp? I mean I already found in the package the relevant lines and made some adjustments, and it works seemingly good enough (longer context size, parameter modifications, some more added so on) but I am not exactly sure if it works as intended. I mean I dont know if there is a vam limit of outgoing call definition length, or conversation history length or anything like that. Also I am not an engineer so do not exactly understand how kobold works, but as I assume when I fire up a pod in runpod the the initial values for llm load are only for its own gui, I mean when you hit it with api calls from your plugin the llm will behave according to the customized parameters declared there, right? Or they should be aligned?
I am asking this because the current favourite model is the Shakuden and Electra R1 70b from steelskull and they work exceptionally well, but they have some recommended parameter settings for best output and I would like to know if it is achievable via this plugin.

There is another less important thing I wondered for some time if the plugin can be used without a person atom to display the text answers? As far I tried speech bubbles dont work (may be its vam restriction), I am yet thinking to try if a textbox attached would work, but it would stay there and not disappear and thats not very nice..
It would be handy for multiperson scenes, without the added computational overhead in the scene (I tried adding person atom, then making invisible and turning off physics and collision, then anchor to a CUA object of the same size, but it is still a messy workaround). In this regard if it could be somehow available that different plugins could use the same chat history with different character names would be awesome. I think a bit bigger llm models could handle such complexities without problem.
 
Hey @bot1789!
I am so glad to see you still cook this project! There really is nothing like this out there, but AI is such a big step for vam. Actually I cant imagine using scenes without your plugin anymore..
Though I have to admit I use a bit differently then you might originally planned so most of the newer functionalities are less interesting. As such I am still on version 8, cuz I got used to that gui, but I give a try every now and then for the newer versions.
So actually I would like to ask something a bit technical if you dont mind.
I tuned a bit the original prompts for memory and the other 2 (I dont remember their names) to let the AI not only write spoken answers but describe internal feelings, reactions and a minimal story development. I found that 70b llm models are very good at staying coherent even with long conversations. The speech bubble is also just enough format for this. I tried voicing early on, but quality output is either slow or very expensive, also for this kind of useage less fitting. The textaudiotool was also a weak point that broke many times. So it is simply more reliable skipping altogether.
So my question would be that if it is possible to craft the api calling to koboldcpp? I mean I already found in the package the relevant lines and made some adjustments, and it works seemingly good enough (longer context size, parameter modifications, some more added so on) but I am not exactly sure if it works as intended. I mean I dont know if there is a vam limit of outgoing call definition length, or conversation history length or anything like that. Also I am not an engineer so do not exactly understand how kobold works, but as I assume when I fire up a pod in runpod the the initial values for llm load are only for its own gui, I mean when you hit it with api calls from your plugin the llm will behave according to the customized parameters declared there, right? Or they should be aligned?
I am asking this because the current favourite model is the Shakuden and Electra R1 70b from steelskull and they work exceptionally well, but they have some recommended parameter settings for best output and I would like to know if it is achievable via this plugin.

There is another less important thing I wondered for some time if the plugin can be used without a person atom to display the text answers? As far I tried speech bubbles dont work (may be its vam restriction), I am yet thinking to try if a textbox attached would work, but it would stay there and not disappear and thats not very nice..
It would be handy for multiperson scenes, without the added computational overhead in the scene (I tried adding person atom, then making invisible and turning off physics and collision, then anchor to a CUA object of the same size, but it is still a messy workaround). In this regard if it could be somehow available that different plugins could use the same chat history with different character names would be awesome. I think a bit bigger llm models could handle such complexities without problem.
Hello, mostvanvege!
I'm glad that you use my plugin.
1) Regarding the Koboldсpp settings, yes, indeed, in the current version the plugin cannot configure all the settings. I'll pay attention to this in the next version. Can you tell me which settings and for which LLMs you'd like to be able to configure? Something like temperature, repetition penalty, etc.?
2) The difficulty is in the fact that only person atoms have the speech bubble. I'll check if there's a way to attach the speech bubble to an audio source atom as well. In the current plugin version, you can also use a UItext atom and hide it after a set time using the MacGruber.LogicBricks.Delay plugin (see the video explanation in the attachment).
 

Attachments

  • UItext_hiding_delay.mp4
    15.3 MB
Hello, mostvanvege!
I'm glad that you use my plugin.
1) Regarding the Koboldсpp settings, yes, indeed, in the current version the plugin cannot configure all the settings. I'll pay attention to this in the next version. Can you tell me which settings and for which LLMs you'd like to be able to configure? Something like temperature, repetition penalty, etc.?
2) The difficulty is in the fact that only person atoms have the speech bubble. I'll check if there's a way to attach the speech bubble to an audio source atom as well. In the current plugin version, you can also use a UItext atom and hide it after a set time using the MacGruber.LogicBricks.Delay plugin (see the video explanation in the attachment).
Hi!
I will try definitely this text brick timing!
Best would be if somehow speechbubble could work, but it also seems a more lightweight workaround, thanks!

Regarding additional kobold parameters, I found these at their huggingface pages:

- static temperature
- min p
- dry multiplier/base/length

I found a sillytavern json template if it helps:
{
"temp": 0.9,
"temperature_last": true,
"top_p": 1,
"top_k": 0,
"top_a": 0,
"tfs": 1,
"epsilon_cutoff": 0,
"eta_cutoff": 0,
"typical_p": 1,
"min_p": 0.05,
"rep_pen": 1.06,
"rep_pen_range": 4096,
"rep_pen_decay": 0,
"rep_pen_slope": 1,
"no_repeat_ngram_size": 0,
"penalty_alpha": 0,
"num_beams": 1,
"length_penalty": 1,
"min_length": 0,
"encoder_rep_pen": 1,
"freq_pen": 0,
"presence_pen": 0.1,
"skew": 0,
"do_sample": true,
"early_stopping": false,
"dynatemp": false,
"min_temp": 0.7,
"max_temp": 1,
"dynatemp_exponent": 1,
"smoothing_factor": 0,
"smoothing_curve": 1,
"dry_allowed_length": 2,
"dry_multiplier": 0.6,
"dry_base": 1.8,
"dry_sequence_breakers": "[\"\\n\", \":\", \"\\\"\", \"*\"]",
"dry_penalty_last_n": 0,
"add_bos_token": true,
"ban_eos_token": false,
"skip_special_tokens": false,
"mirostat_mode": 0,
"mirostat_tau": 2,
"mirostat_eta": 0.1,
"guidance_scale": 1,
"negative_prompt": "",
"grammar_string": "",
"json_schema": {},
"banned_tokens": "",
"sampler_priority": [
"repetition_penalty",
"dry",
"presence_penalty",
"top_k",
"top_p",
"typical_p",
"epsilon_cutoff",
"eta_cutoff",
"tfs",
"top_a",
"min_p",
"mirostat",
"quadratic_sampling",
"dynamic_temperature",
"frequency_penalty",
"temperature",
"xtc",
"encoder_repetition_penalty",
"no_repeat_ngram"
],
"samplers": [
"dry",
"top_k",
"tfs_z",
"typical_p",
"top_p",
"min_p",
"xtc",
"temperature"
],
"samplers_priorities": [
"dry",
"penalties",
"no_repeat_ngram",
"temperature",
"top_nsigma",
"top_p_top_k",
"top_a",
"min_p",
"tfs",
"eta_cutoff",
"epsilon_cutoff",
"typical_p",
"quadratic",
"xtc"
],
"ignore_eos_token": false,
"spaces_between_special_tokens": true,
"speculative_ngram": false,
"sampler_order": [
6,
0,
1,
3,
4,
2,
5
],
"logit_bias": [],
"xtc_threshold": 0,
"xtc_probability": 0,
"nsigma": 0,
"ignore_eos_token_aphrodite": false,
"spaces_between_special_tokens_aphrodite": true,
"rep_pen_size": 0,
"genamt": 750,
"max_length": 15360
}

If I assume correctly your plugin does something similar with koboldcpp like sillytavern. I am not sure however, if vam has length restrictions in the callings, I mean one should focus on the absolute necessary or it gets braking down..
If no problem I think a couple sec more for an answer is well worth the quality improvement.
One more thing is that I noticed longer history somehow disappears from the plugin after a time (hence I ask if there is a vam restraint probably). I like “slow burn” scenes, which ends up in bigger chat history and for this reason I set context length to 32768. However I am not sure when but the plugin regularly lost keeping track in the history panel. May be the panel has some limitation. The chat file continues to update if I open in notepad, and the LLMs also seem to continue work well, so… Its just that it keeps me wondering what else might brake in the callings in the meantime what I do not notice.

I tried the latest v21 and I like it! I see context length has been added for easy modification. I found the newer UI now more handy clicking back and forth on panels if I need to delete a last reply.
However if someone writing mainly like me, I think the manual message testing, last AI response deleting, AI response reappearing and chat history would make sense in one page. But as I said, its quite okay as it is too.
 
Hi!
I will try definitely this text brick timing!
Best would be if somehow speechbubble could work, but it also seems a more lightweight workaround, thanks!

Regarding additional kobold parameters, I found these at their huggingface pages:
...
I got your point about Koboldcpp parameters. The problem is that there really are a lot of them. I'll think about how to conveniently implement their input.
Yes, you are right that this plugin is just trying to be a small a counterpart to SillyTavern: to support the prompt preparation, it needs to implement the same features as SillyTavern (so we can also consider this plugin as a "tavern"). Why can't I adapt these features directly from SillyTavern? Because, as far as I know, the SillyTavern browser part, which implements the prompt generation, does not have an API.
As for the issue with history disappearing from the history panel, I haven't encountered it yet. Although I haven't tried playing a roleplaying session for as long as you describe. I'll check it out. Thank you for reporting this issue.
I also plan to implement a chat summarization feature ("Summarize"), like in SillyTavern.
Thank you also for trying the last version! I think your suggestion on UI rearragment has a point. I will think how to make it more convinient.
 
Back
Top Bottom