strings rename kobold lite to koboldai lite

This commit is contained in:
Concedo 2024-06-13 20:00:28 +08:00
parent a8db72eca0
commit e69da9c9d8
5 changed files with 22 additions and 22 deletions

View file

@ -23,4 +23,4 @@ SOFTWARE.
=================================== ===================================
Note that the above license applies ONLY to the GGML library and llama.cpp by ggerganov which are licensed under the MIT License Note that the above license applies ONLY to the GGML library and llama.cpp by ggerganov which are licensed under the MIT License
Kobold Lite by Concedo and the provided python ctypes bindings in koboldcpp dlls are licensed under the AGPL v3.0 License KoboldAI Lite by Concedo and the provided python ctypes bindings in koboldcpp dlls are licensed under the AGPL v3.0 License

View file

@ -1,6 +1,6 @@
# koboldcpp # koboldcpp
KoboldCpp is an easy-to-use AI text-generation software for GGML and GGUF models. It's a single self contained distributable from Concedo, that builds off llama.cpp, and adds a versatile Kobold API endpoint, additional format support, Stable Diffusion image generation, backward compatibility, as well as a fancy UI with persistent stories, editing tools, save formats, memory, world info, author's note, characters, scenarios and everything Kobold and Kobold Lite have to offer. KoboldCpp is an easy-to-use AI text-generation software for GGML and GGUF models. It's a single self contained distributable from Concedo, that builds off llama.cpp, and adds a versatile Kobold API endpoint, additional format support, Stable Diffusion image generation, backward compatibility, as well as a fancy UI with persistent stories, editing tools, save formats, memory, world info, author's note, characters, scenarios and everything KoboldAI and KoboldAI Lite have to offer.
![Preview](media/preview.png) ![Preview](media/preview.png)
![Preview](media/preview2.png) ![Preview](media/preview2.png)
@ -20,7 +20,7 @@ KoboldCpp is an easy-to-use AI text-generation software for GGML and GGUF models
- **(Nvidia Only) GPU Acceleration**: If you're on Windows with an Nvidia GPU you can get CUDA support out of the box using the `--usecublas` flag, make sure you select the correct .exe with CUDA support. - **(Nvidia Only) GPU Acceleration**: If you're on Windows with an Nvidia GPU you can get CUDA support out of the box using the `--usecublas` flag, make sure you select the correct .exe with CUDA support.
- **Any GPU Acceleration**: As a slightly slower alternative, try CLBlast with `--useclblast` flags for a slightly slower but more GPU compatible speedup. - **Any GPU Acceleration**: As a slightly slower alternative, try CLBlast with `--useclblast` flags for a slightly slower but more GPU compatible speedup.
- **GPU Layer Offloading**: Want even more speedup? Combine one of the above GPU flags with `--gpulayers` to offload entire layers to the GPU! **Much faster, but uses more VRAM**. Experiment to determine number of layers to offload, and reduce by a few if you run out of memory. - **GPU Layer Offloading**: Want even more speedup? Combine one of the above GPU flags with `--gpulayers` to offload entire layers to the GPU! **Much faster, but uses more VRAM**. Experiment to determine number of layers to offload, and reduce by a few if you run out of memory.
- **Increasing Context Size**: Try `--contextsize 4096` to 2x your context size! without much perplexity gain. Note that you'll have to increase the max context in the Kobold Lite UI as well (click and edit the number text field). - **Increasing Context Size**: Try `--contextsize 4096` to 2x your context size! without much perplexity gain. Note that you'll have to increase the max context in the KoboldAI Lite UI as well (click and edit the number text field).
- If you are having crashes or issues, you can try turning off BLAS with the `--noblas` flag. You can also try running in a non-avx2 compatibility mode with `--noavx2`. Lastly, you can try turning off mmap with `--nommap`. - If you are having crashes or issues, you can try turning off BLAS with the `--noblas` flag. You can also try running in a non-avx2 compatibility mode with `--noavx2`. Lastly, you can try turning off mmap with `--nommap`.
For more information, be sure to run the program with the `--help` flag, or [check the wiki](https://github.com/LostRuins/koboldcpp/wiki). For more information, be sure to run the program with the `--help` flag, or [check the wiki](https://github.com/LostRuins/koboldcpp/wiki).
@ -122,7 +122,7 @@ There are some community made AUR packages available: [CUBLAS](https://aur.archl
## License ## License
- The original GGML library and llama.cpp by ggerganov are licensed under the MIT License - The original GGML library and llama.cpp by ggerganov are licensed under the MIT License
- However, Kobold Lite is licensed under the AGPL v3.0 License - However, KoboldAI Lite is licensed under the AGPL v3.0 License
- The other files are also under the AGPL v3.0 License unless otherwise stated - The other files are also under the AGPL v3.0 License unless otherwise stated
## Notes ## Notes

View file

@ -607,7 +607,7 @@
"description": "Successful request" "description": "Successful request"
} }
}, },
"description": "Retrieves the KoboldCpp preloaded story, --preloadstory configures a prepared story json save file to be hosted on the server, which frontends (such as Kobold Lite) can access over the API.", "description": "Retrieves the KoboldCpp preloaded story, --preloadstory configures a prepared story json save file to be hosted on the server, which frontends (such as KoboldAI Lite) can access over the API.",
"summary": "Retrieves the KoboldCpp preloaded story", "summary": "Retrieves the KoboldCpp preloaded story",
"tags": [ "tags": [
"api/extra" "api/extra"

View file

@ -1,12 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<!-- <!--
Kobold Lite WebUI is a standalone WebUI for use with KoboldAI United, AI Horde, or koboldcpp. KoboldAI Lite WebUI is a standalone WebUI for use with KoboldAI United, AI Horde, or koboldcpp.
It requires no dependencies, installation or setup. It requires no dependencies, installation or setup.
Just copy this single static HTML file anywhere and open it in a browser, or from a webserver. Just copy this single static HTML file anywhere and open it in a browser, or from a webserver.
Please go to https://github.com/LostRuins/lite.koboldai.net for updates on Kobold Lite. Please go to https://github.com/LostRuins/lite.koboldai.net for updates on KoboldAI Lite.
If you are submitting a pull request for Lite, PLEASE use the above repo, not the KoboldCpp one. If you are submitting a pull request for Lite, PLEASE use the above repo, not the KoboldCpp one.
Kobold Lite is under the AGPL v3.0 License unless otherwise exempted. Please do not remove this line. KoboldAI Lite is under the AGPL v3.0 License unless otherwise exempted. Please do not remove this line.
Current version: 146 Current version: 146
-Concedo -Concedo
--> -->
@ -3400,7 +3400,7 @@ Current version: 146
if ("Notification" in window) { if ("Notification" in window) {
// Request permission to show notifications // Request permission to show notifications
if (Notification.permission === "granted" || notify_allowed) { if (Notification.permission === "granted" || notify_allowed) {
var notification = new Notification("Kobold Lite", { var notification = new Notification("KoboldAI Lite", {
body: "Text Generation Completed!" body: "Text Generation Completed!"
}); });
} else { } else {
@ -4295,7 +4295,7 @@ Current version: 146
document.getElementById("customkoboldendpoint").value = protocol + localmodehost + ":" + localmodeport + sublocalpathname; document.getElementById("customkoboldendpoint").value = protocol + localmodehost + ":" + localmodeport + sublocalpathname;
connect_custom_endpoint(); connect_custom_endpoint();
document.getElementById("lastreq").innerHTML = document.getElementById("lastreq2").innerHTML = document.getElementById("lastreq").innerHTML = document.getElementById("lastreq2").innerHTML =
`<span class=color_gray>You're using Kobold Lite Embedded.</span>`; `<span class=color_gray>You're using KoboldAI Lite Embedded.</span>`;
read_url_params_data(); read_url_params_data();
} }
@ -4605,7 +4605,7 @@ Current version: 146
function set_dalle_key() function set_dalle_key()
{ {
inputBox("Enter DALL-E API Key.\n\nNote: DALL-E is known to rephrase and rewrite submitted image prompts before generating, for censorship purposes. There is nothing Kobold Lite can do about that. ","DALL-E API Key",localsettings.saved_dalle_key,"Input DALL-E API Key", ()=>{ inputBox("Enter DALL-E API Key.\n\nNote: DALL-E is known to rephrase and rewrite submitted image prompts before generating, for censorship purposes. There is nothing KoboldAI Lite can do about that. ","DALL-E API Key",localsettings.saved_dalle_key,"Input DALL-E API Key", ()=>{
let userinput = getInputBoxValue(); let userinput = getInputBoxValue();
userinput = userinput.trim(); userinput = userinput.trim();
if (userinput != null && userinput!="") { if (userinput != null && userinput!="") {
@ -4615,7 +4615,7 @@ Current version: 146
} }
function set_dalle_url() function set_dalle_url()
{ {
inputBox("Enter DALL-E API URL.\n\nNote: DALL-E is known to rephrase and rewrite submitted image prompts before generating, for censorship purposes. There is nothing Kobold Lite can do about that. ","DALL-E API URL",localsettings.saved_dalle_url,"Input DALL-E API URL", ()=>{ inputBox("Enter DALL-E API URL.\n\nNote: DALL-E is known to rephrase and rewrite submitted image prompts before generating, for censorship purposes. There is nothing KoboldAI Lite can do about that. ","DALL-E API URL",localsettings.saved_dalle_url,"Input DALL-E API URL", ()=>{
let userinput = getInputBoxValue(); let userinput = getInputBoxValue();
userinput = userinput.trim(); userinput = userinput.trim();
if (userinput != null && userinput!="") { if (userinput != null && userinput!="") {
@ -15400,7 +15400,7 @@ Current version: 146
<div class="layer-bottom gamescreenbgnormal normal_viewport_height" id="gamescreen"> <div class="layer-bottom gamescreenbgnormal normal_viewport_height" id="gamescreen">
<span id="gametext" contenteditable="false" onclick="click_gametext()" onblur="merge_edit_field()"> <span id="gametext" contenteditable="false" onclick="click_gametext()" onblur="merge_edit_field()">
<p id="tempgtloadtxt">Loading...</p> <p id="tempgtloadtxt">Loading...</p>
<noscript><style>#tempgtloadtxt { display: none; } #gametext { white-space: normal!important; }</style><p>Sorry, Kobold Lite requires Javascript to function.</p></noscript> <noscript><style>#tempgtloadtxt { display: none; } #gametext { white-space: normal!important; }</style><p>Sorry, KoboldAI Lite requires Javascript to function.</p></noscript>
</span> </span>
<div class="hidden" id="wimenu"> <div class="hidden" id="wimenu">
</div> </div>
@ -16404,7 +16404,7 @@ Current version: 146
</div> </div>
<div class="settinglabel"> <div class="settinglabel">
<div class="justifyleft settingsmall">Run In Background <span class="helpicon">?<span <div class="justifyleft settingsmall">Run In Background <span class="helpicon">?<span
class="helptext">Prevents the browser from suspending Kobold Lite by playing a silent audio track. This setting cannot be saved.</span></span></div> class="helptext">Prevents the browser from suspending KoboldAI Lite by playing a silent audio track. This setting cannot be saved.</span></span></div>
<input type="checkbox" id="run_in_background" style="margin:0px 0px 0px auto;"> <input type="checkbox" id="run_in_background" style="margin:0px 0px 0px auto;">
</div> </div>
</div> </div>

View file

@ -6,7 +6,7 @@
# and adds a versatile Kobold API endpoint, additional format support, # and adds a versatile Kobold API endpoint, additional format support,
# backward compatibility, as well as a fancy UI with persistent stories, # backward compatibility, as well as a fancy UI with persistent stories,
# editing tools, save formats, memory, world info, author's note, characters, # editing tools, save formats, memory, world info, author's note, characters,
# scenarios and everything Kobold and Kobold Lite have to offer. # scenarios and everything Kobold and KoboldAI Lite have to offer.
import ctypes import ctypes
import os, math, re import os, math, re
@ -1165,7 +1165,7 @@ class ServerRequestHandler(http.server.SimpleHTTPRequestHandler):
<h2>KoboldCpp NoScript Mode</h2> <h2>KoboldCpp NoScript Mode</h2>
<div> <div>
<p>KoboldCpp can be used without Javascript enabled, however this is not recommended. <p>KoboldCpp can be used without Javascript enabled, however this is not recommended.
<br>If you have Javascript, please use <a href="/">Kobold Lite WebUI</a> instead.</p><hr> <br>If you have Javascript, please use <a href="/">KoboldAI Lite WebUI</a> instead.</p><hr>
<form action="/noscript"> <form action="/noscript">
Enter Prompt:<br> Enter Prompt:<br>
<textarea name="prompt" cols="60" rows="8" wrap="soft" placeholder="Enter Prompt Here">{prompt}</textarea> <textarea name="prompt" cols="60" rows="8" wrap="soft" placeholder="Enter Prompt Here">{prompt}</textarea>
@ -1201,7 +1201,7 @@ Enter Prompt:<br>
if self.path in ["", "/?"] or self.path.startswith(('/?','?')): #it's possible for the root url to have ?params without / if self.path in ["", "/?"] or self.path.startswith(('/?','?')): #it's possible for the root url to have ?params without /
content_type = 'text/html' content_type = 'text/html'
if embedded_kailite is None: if embedded_kailite is None:
response_body = (f"Embedded Kobold Lite is not found.<br>You will have to connect via the main KoboldAI client, or <a href='https://lite.koboldai.net?local=1&port={self.port}'>use this URL</a> to connect.").encode() response_body = (f"Embedded KoboldAI Lite is not found.<br>You will have to connect via the main KoboldAI client, or <a href='https://lite.koboldai.net?local=1&port={self.port}'>use this URL</a> to connect.").encode()
else: else:
response_body = embedded_kailite response_body = embedded_kailite
@ -3478,14 +3478,14 @@ def main(launch_args,start_server=True):
with open(os.path.join(basepath, "klite.embd"), mode='rb') as f: with open(os.path.join(basepath, "klite.embd"), mode='rb') as f:
embedded_kailite = f.read() embedded_kailite = f.read()
# patch it with extra stuff # patch it with extra stuff
origStr = "Sorry, Kobold Lite requires Javascript to function." origStr = "Sorry, KoboldAI Lite requires Javascript to function."
patchedStr = "Sorry, Kobold Lite requires Javascript to function.<br>You can use <a class=\"color_blueurl\" href=\"/noscript\">KoboldCpp NoScript mode</a> instead." patchedStr = "Sorry, KoboldAI Lite requires Javascript to function.<br>You can use <a class=\"color_blueurl\" href=\"/noscript\">KoboldCpp NoScript mode</a> instead."
embedded_kailite = embedded_kailite.decode("UTF-8","ignore") embedded_kailite = embedded_kailite.decode("UTF-8","ignore")
embedded_kailite = embedded_kailite.replace(origStr, patchedStr) embedded_kailite = embedded_kailite.replace(origStr, patchedStr)
embedded_kailite = embedded_kailite.encode() embedded_kailite = embedded_kailite.encode()
print("Embedded Kobold Lite loaded.") print("Embedded KoboldAI Lite loaded.")
except Exception as e: except Exception as e:
print("Could not find Kobold Lite. Embedded Kobold Lite will not be available.") print("Could not find KoboldAI Lite. Embedded KoboldAI Lite will not be available.")
try: try:
basepath = os.path.abspath(os.path.dirname(__file__)) basepath = os.path.abspath(os.path.dirname(__file__))
@ -3698,7 +3698,7 @@ if __name__ == '__main__':
advparser.add_argument("--remotetunnel", help="Uses Cloudflare to create a remote tunnel, allowing you to access koboldcpp remotely over the internet even behind a firewall.", action='store_true') advparser.add_argument("--remotetunnel", help="Uses Cloudflare to create a remote tunnel, allowing you to access koboldcpp remotely over the internet even behind a firewall.", action='store_true')
advparser.add_argument("--highpriority", help="Experimental flag. If set, increases the process CPU priority, potentially speeding up generation. Use caution.", action='store_true') advparser.add_argument("--highpriority", help="Experimental flag. If set, increases the process CPU priority, potentially speeding up generation. Use caution.", action='store_true')
advparser.add_argument("--foreground", help="Windows only. Sends the terminal to the foreground every time a new prompt is generated. This helps avoid some idle slowdown issues.", action='store_true') advparser.add_argument("--foreground", help="Windows only. Sends the terminal to the foreground every time a new prompt is generated. This helps avoid some idle slowdown issues.", action='store_true')
advparser.add_argument("--preloadstory", help="Configures a prepared story json save file to be hosted on the server, which frontends (such as Kobold Lite) can access over the API.", default="") advparser.add_argument("--preloadstory", help="Configures a prepared story json save file to be hosted on the server, which frontends (such as KoboldAI Lite) can access over the API.", default="")
advparser.add_argument("--quiet", help="Enable quiet mode, which hides generation inputs and outputs in the terminal. Quiet mode is automatically enabled when running a horde worker.", action='store_true') advparser.add_argument("--quiet", help="Enable quiet mode, which hides generation inputs and outputs in the terminal. Quiet mode is automatically enabled when running a horde worker.", action='store_true')
advparser.add_argument("--ssl", help="Allows all content to be served over SSL instead. A valid UNENCRYPTED SSL cert and key .pem files must be provided", metavar=('[cert_pem]', '[key_pem]'), nargs='+') advparser.add_argument("--ssl", help="Allows all content to be served over SSL instead. A valid UNENCRYPTED SSL cert and key .pem files must be provided", metavar=('[cert_pem]', '[key_pem]'), nargs='+')
advparser.add_argument("--nocertify", help="Allows insecure SSL connections. Use this if you have cert errors and need to bypass certificate restrictions.", action='store_true') advparser.add_argument("--nocertify", help="Allows insecure SSL connections. Use this if you have cert errors and need to bypass certificate restrictions.", action='store_true')