{"id":1026,"date":"2024-02-11T20:35:57","date_gmt":"2024-02-11T20:35:57","guid":{"rendered":"https:\/\/sparkonelabs.com\/home\/?p=1026"},"modified":"2024-02-28T15:22:34","modified_gmt":"2024-02-28T15:22:34","slug":"basic-openvoice-and-llm-request-script","status":"publish","type":"post","link":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/","title":{"rendered":"Rudimentary Chat Bot &#8211; OpenVoice, Whisper &#038; LLM"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"796\" src=\"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?resize=1024%2C796&#038;ssl=1\" alt=\"\" class=\"wp-image-1051\" srcset=\"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?resize=1024%2C796&amp;ssl=1 1024w, https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?resize=300%2C233&amp;ssl=1 300w, https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?resize=768%2C597&amp;ssl=1 768w, https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?w=1152&amp;ssl=1 1152w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Using ollama, and the dolphin-2.5-mixtral-8x7b model a simple script to test TTS and requests from Ollama server is being constructed. These are some reference notes.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/stackoverflow.com\/questions\/17657103\/play-wav-file-in-python\">https:\/\/stackoverflow.com\/questions\/17657103\/play-wav-file-in-python<\/a> &#8212; Playing Audio in Python<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/moez-62905.medium.com\/the-ultimate-guide-to-command-line-arguments-in-python-scripts-61c49c90e0b3#:~:text=In%20Python%2C%20command%2Dline%20arguments,arguments%20passed%20to%20the%20script.\">https:\/\/moez-62905.medium.com\/the-ultimate-guide-to-command-line-arguments-in-python-scripts-61c49c90e0b3#:~:text=In%20Python%2C%20command%2Dline%20arguments,arguments%20passed%20to%20the%20script.<\/a> &#8212; Using command line arguments within python script.<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/ioflood.com\/blog\/python-run-shell-command\/\">https:\/\/ioflood.com\/blog\/python-run-shell-command\/<\/a> &#8212; Running shell command in python using subprocess.<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/www.youtube.com\/watch?v=1NonzlRr6JA\">https:\/\/www.youtube.com\/watch?v=1NonzlRr6JA<\/a> &#8212; Robot vocals<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Okay this was successful and resulted in a script called <code>askbot.py<\/code> which is run from a shell script called <code>askbot.sh<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Recording Audio for an undetermined time<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This is the next obvious step, recording audio for an undetermined amount of time&#8230; specifically until the user signals that the audio is done being inputted, or preferably when silence is detected from the microphone. To that end, some research was conducted resulting in the following code:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/stackoverflow.com\/questions\/18406570\/python-record-audio-on-detected-sound\">https:\/\/stackoverflow.com\/questions\/18406570\/python-record-audio-on-detected-sound<\/a> &#8212; stackoverflow result for user defined recording interval<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Okay, with a few minor changes, (Noise threshold to 30db and changing the recording path to <code>\/home\/sparkone\/sdb\/projects\/python\/OpenVoice\/recordings<\/code>) this script appears to be functioning quite nicely.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Passing audio files to whisper for speech-to-text transcription<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">With the audio recording functioning as desired, the next step is getting the recorded audio transcribed into text. Checking for a stop, quit or goodbye type keyword would should suffice for ending the script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For this task, we can use <code>whisper<\/code>, or <code>faster-whisper<\/code> to transcribe the audio offline.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/openai\/whisper\">https:\/\/github.com\/openai\/whisper<\/a> &#8212; whisper project on github<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/github.com\/SYSTRAN\/faster-whisper\">https:\/\/github.com\/SYSTRAN\/faster-whisper<\/a> &#8212; faster-whisper project on github<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/github.com\/huggingface\/distil-whisper\">https:\/\/github.com\/huggingface\/distil-whisper<\/a> &#8212; dustil-whisper<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In order to facilitate functionality of this project, a simple script which takes audio files in will be used initially, then incorporated into the main project. So far we have <code>askbot.py<\/code> and <code>record_3.py<\/code> (3rd attempt at generating a recording script).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update<\/strong>: This worked, as a script. Final iteration of script <code>askbot_3.py<\/code>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTES:<\/strong> CUDA memory erros and segmentation faults are resulting from allocation of VRAM outside scopes of reservation. A potential solution is to delegate tasks to separate GPUs. Also upgrading GPU has become important due to this and latency issues. Ideally, a Quadro p8000 would be desired as it offers parallel memory sharing options in the current z series architecture I am using, however cost is prohibitive and a more economical option which does not offer parallel memory sharing in the z series architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE<\/strong>: See Neural Network Research Post for specific details regarding PyTorch, Ollama and CUDA<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Segmentation faults seem to be occurring less, after adjusting model parameters and introducing garbage collection to the script. Additional measures include deleting local variables after use and cleaning cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It has become apparent that while the recorded audio is being processed, it is still picking up voice audio on the microphone, the recording stream needs to be closed before calling the ollama query and playback function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In order to work around repeat answers and to speed up response time, perhaps utilizing the JSON stream approach would be a practical solution. <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/ollama\/ollama\/blob\/main\/docs\/api.md\">https:\/\/github.com\/ollama\/ollama\/blob\/main\/docs\/api.md<\/a> &#8212; Ollama docs<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/www.w3schools.com\/python\/python_json.asp#:~:text=Parse%20JSON%20%2D%20Convert%20from%20JSON,will%20be%20a%20Python%20dictionary.\">https:\/\/www.w3schools.com\/python\/python_json.asp#:~:text=Parse%20JSON%20%2D%20Convert%20from%20JSON,will%20be%20a%20Python%20dictionary.<\/a> &#8212; Convert JSON to Python Dictionary<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Request:<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"curl http:\/\/localhost:11434\/api\/generate -d '{\n  &quot;model&quot;: &quot;llama2&quot;,\n  &quot;prompt&quot;: &quot;Why is the sky blue?&quot;\n}'\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">http:\/\/localhost:11434\/api\/generate<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-d<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  &quot;model&quot;: &quot;llama2&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  &quot;prompt&quot;: &quot;Why is the sky blue?&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">}<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Response (Stream of JSON objects):<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;model&quot;: &quot;llama2&quot;,\n  &quot;created_at&quot;: &quot;2023-08-04T08:52:19.385406455-07:00&quot;,\n  &quot;response&quot;: &quot;The&quot;,\n  &quot;done&quot;: false\n}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;model&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">llama2<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;created_at&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">2023-08-04T08:52:19.385406455-07:00<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;response&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">The<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;done&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">false<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">See the above docs page for more options, such as runtime parameters and showing a model list.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Using GPTQ models<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Using GPTQ models requires a bit more work than simply downloading and creating a model file as with .gguf. See the following reference:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/ollama\/ollama\/blob\/main\/docs\/import.md\">https:\/\/github.com\/ollama\/ollama\/blob\/main\/docs\/import.md<\/a> &#8212; Installing and quantizing gptq models<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Apparently this just makes another CPU model out of a GPTQ model. The intention here to fully utilize an NVidia RTX Titan and it&#8217;s 25gb VRAM. Trying something else&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This looks like it must be run in python, see below reference for a starting point:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/www.reddit.com\/r\/LocalLLaMA\/comments\/13b3s4f\/how_to_run_starcodergptq4bit128g\/\">https:\/\/www.reddit.com\/r\/LocalLLaMA\/comments\/13b3s4f\/how_to_run_starcodergptq4bit128g\/<\/a> &#8212; Run .gptq locally?<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/huggingface.co\/TheBloke\/medalpaca-13B-GPTQ\/discussions\/3#:~:text=To%20load%20GPTQ%20models%20from,have%20the%20CUDA%20toolkit%20installed.\">https:\/\/huggingface.co\/TheBloke\/medalpaca-13B-GPTQ\/discussions\/3#:~:text=To%20load%20GPTQ%20models%20from,have%20the%20CUDA%20toolkit%20installed.<\/a> &#8212; Run GPTQ models locally (theBloke).<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/github.com\/oobabooga\/text-generation-webui\">https:\/\/github.com\/oobabooga\/text-generation-webui<\/a> &#8212; Oobabooga runs GPTQ<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Okay so the <code>oobabooga\/web-ui<\/code> works for running models fast in the GPU. The issue of extensions is a WIP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Oobabooga\/text-generation-webui Extensions List<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/oobabooga\/text-generation-webui-extensions\">https:\/\/github.com\/oobabooga\/text-generation-webui-extensions<\/a> &#8212; List of extensions available<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Superbooga (SuperboogaV2)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Getting the following errors when attempting to load extension <code>superbooga<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"01:45:50-406664 ERROR    Failed to load the extension &quot;superbooga&quot;.                                                                                                                                                                          \nTraceback (most recent call last):\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/modules\/extensions.py&quot;, line 36, in load_extensions\n    exec(f&quot;import extensions.{name}.script&quot;)\n  File &quot;&lt;string&gt;&quot;, line 1, in &lt;module&gt;\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/extensions\/superbooga\/script.py&quot;, line 10, in &lt;module&gt;\n    from .chromadb import add_chunks_to_collector, make_collector\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/extensions\/superbooga\/chromadb.py&quot;, line 1, in &lt;module&gt;\n    import chromadb\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/chromadb\/__init__.py&quot;, line 1, in &lt;module&gt;\n    import chromadb.config\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/chromadb\/config.py&quot;, line 1, in &lt;module&gt;\n    from pydantic import BaseSettings\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/pydantic\/__init__.py&quot;, line 374, in __getattr__\n    return _getattr_migration(attr_name)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File &quot;\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/pydantic\/_migration.py&quot;, line 296, in wrapper\n    raise PydanticImportError(\npydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package. See https:\/\/docs.pydantic.dev\/2.6\/migration\/#basesettings-has-moved-to-pydantic-settings for more details.\n\nFor further information visit https:\/\/errors.pydantic.dev\/2.6\/u\/import-error\n\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">01:45:50-406664<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">ERROR<\/span><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #A3BE8C\">Failed<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">load<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">extension<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">superbooga<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">.<\/span><span style=\"color: #D8DEE9FF\">                                                                                                                                                                          <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">Traceback<\/span><span style=\"color: #D8DEE9FF\"> (most <\/span><span style=\"color: #A3BE8C\">recent<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">call<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">last<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/modules\/extensions.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">36<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">load_extensions<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">exec<\/span><span style=\"color: #D8DEE9FF\">(f<\/span><span style=\"color: #88C0D0\">&quot;import extensions.{name}.script&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&lt;string&gt;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">modul<\/span><span style=\"color: #D8DEE9FF\">e<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/extensions\/superbooga\/script.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">modul<\/span><span style=\"color: #D8DEE9FF\">e<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.chromadb<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">add_chunks_to_collector,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">make_collector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/extensions\/superbooga\/chromadb.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">modul<\/span><span style=\"color: #D8DEE9FF\">e<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">chromadb<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/chromadb\/__init__.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">modul<\/span><span style=\"color: #D8DEE9FF\">e<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">chromadb.config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/chromadb\/config.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">modul<\/span><span style=\"color: #D8DEE9FF\">e<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pydantic<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">BaseSettings<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/pydantic\/__init__.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">374<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">__getattr__<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">_getattr_migration<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">attr_name<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #88C0D0\">^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">File<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\/home\/sparkone\/sdb\/projects\/python\/text-generation-webui\/installer_files\/env\/lib\/python3.11\/site-packages\/pydantic\/_migration.py<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">296<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">wrapper<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">raise<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">PydanticImportError<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">pydantic.errors.PydanticImportError:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #88C0D0\">BaseSettings<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">has<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">been<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">moved<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #88C0D0\">pydantic-settings<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">package.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">See<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/docs.pydantic.dev\/2.6\/migration\/#basesettings-has-moved-to-pydantic-settings<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">more<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">details.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">For<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">further<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">information<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">visit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/errors.pydantic.dev\/2.6\/u\/import-error<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This error is apparently common on the user install regardless of the operating system used. The following version corrections worked:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\".\/cmd_linux.sh ## Load the conda environment to select the correct pip\npip install chromadb==0.3.18 ## Select the compatible version of chromadb for superbooga\npip install pydantic==1.10.14 ## Select the compatible version of pydantic for superbooga\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">.\/cmd_linux.sh<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">## Load the conda environment to select the correct pip<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">pip<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">chromadb==<\/span><span style=\"color: #B48EAD\">0.3<\/span><span style=\"color: #A3BE8C\">.18<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">## Select the compatible version of chromadb for superbooga<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">pip<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pydantic==<\/span><span style=\"color: #B48EAD\">1.10<\/span><span style=\"color: #A3BE8C\">.14<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">## Select the compatible version of pydantic for superbooga<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE<\/strong>: To use ingested data as context, the notebook mode must be utilized and the following tags employed:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;There is technically documentation for it, but you are right that it&#8217;s not super obvious. Right under the superbooga header there is a thin pane with the text &#8220;Click for more information&#8230;&#8221; if you click on that it will expand and give you a somewhat detailed explanation of how superbooga works.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>But I can summarize the key information. For one, superbooga operates differently depending on whether you are using the chat interface or the notebook\/default interface. In the chat interface it does not actually use the information you submit to the database, instead it automatically inserts old messages into the database and automatically retrieves them based on your current chat message.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>To query information you have submitted you need to change to the notebook\/default interface. In those modes you can insert the following three special tokens:&#8221;<\/em><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"&lt;|begin-user-input|&gt;\n&lt;|end-user-input|&gt;\n&lt;|injection-point|&gt;\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">&lt;|<\/span><span style=\"color: #88C0D0\">begin-user-input<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;|<\/span><span style=\"color: #D8DEE9FF\">end-user-input<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;|<\/span><span style=\"color: #88C0D0\">injection-point<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/oobabooga\/text-generation-webui\/issues\/2824\">https:\/\/github.com\/oobabooga\/text-generation-webui\/issues\/2824<\/a> &#8212; Reference for superbooga data injection.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">EmotiVoice (Decent Latency)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">See:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/yhyu13\/Emotivoice_TTS\">https:\/\/github.com\/yhyu13\/Emotivoice_TTS<\/a> &#8212; Installation instructions, after downloading the model using the UI<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">It looks like this one uses some sort of remote access, it would be preferable to use OpenVoice locally&#8230; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TODO<\/strong>: Find or write extension for OpenVoice, as it has decent latency as well<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">LucidWebSearch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is an interesting extension which can use OCR models (e.g; <code>nougat<\/code>) to retrieve and utilize web resources and optionally parse\/generate markup containing mathematical expressions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">See:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/RandomInternetPreson\/LucidWebSearch?tab=readme-ov-file\">https:\/\/github.com\/RandomInternetPreson\/LucidWebSearch?tab=readme-ov-file<\/a> &#8212; Web Search and Math Search Extension<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">OpenVoice Extension<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After using <code>OpenVoice<\/code> in a script testing listening and STT\/TTS around an ollama GGUF model, I desired to implement a custom extension utilizing it as well for <code>oobabooga\/text-generation-webui<\/code>. However I encountered the following errors after <code>pip install -r requirements<\/code> in <code>extensions\/OpenVoice<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"INFO: pip is looking at multiple versions of wavmark to determine which version is compatible with other requirements. This could take a while.\nERROR: Ignored the following yanked versions: 2.0.0\nERROR: Ignored the following versions that require a different python version: 1.21.2 Requires-Python &gt;=3.7,&lt;3.11; 1.21.3 Requires-Python &gt;=3.7,&lt;3.11; 1.21.4 Requires-Python &gt;=3.7,&lt;3.11; 1.21.5 Requires-Python &gt;=3.7,&lt;3.11; 1.21.6 Requires-Python &gt;=3.7,&lt;3.11\nERROR: Could not find a version that satisfies the requirement torchaudio&lt;2.0 (from wavmark) (from versions: 2.0.1, 2.0.2, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 2.2.1)\nERROR: No matching distribution found for torchaudio&lt;2.0\n\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">INFO:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pip<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">is<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">looking<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">at<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">multiple<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">versions<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">of<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">wavmark<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">determine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">which<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">version<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">is<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">compatible<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">other<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">requirements.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">This<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">could<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">take<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">a<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">while.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">ERROR:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Ignored<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">following<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">yanked<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">versions:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.0<\/span><span style=\"color: #A3BE8C\">.0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">ERROR:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Ignored<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">following<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">versions<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">that<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">a<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">different<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">version:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1.21<\/span><span style=\"color: #A3BE8C\">.2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Requires-Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #B48EAD\">3.7<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">3.11<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">1.21.3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Requires-Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #B48EAD\">3.7<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">3.11<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">1.21.4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Requires-Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #B48EAD\">3.7<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">3.11<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">1.21.5<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Requires-Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #B48EAD\">3.7<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">3.11<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">1.21.6<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Requires-Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #B48EAD\">3.7<\/span><span style=\"color: #A3BE8C\">,<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">3.11<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">ERROR:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Could<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">not<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">find<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">a<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">version<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">that<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">satisfies<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">requirement<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">torchaudio<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">2.0<\/span><span style=\"color: #D8DEE9FF\"> (from <\/span><span style=\"color: #A3BE8C\">wavmark<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">versions:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.0<\/span><span style=\"color: #A3BE8C\">.1,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.0<\/span><span style=\"color: #A3BE8C\">.2,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.1<\/span><span style=\"color: #A3BE8C\">.0,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.1<\/span><span style=\"color: #A3BE8C\">.1,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.1<\/span><span style=\"color: #A3BE8C\">.2,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.2<\/span><span style=\"color: #A3BE8C\">.0,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2.2<\/span><span style=\"color: #A3BE8C\">.1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">ERROR:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">No<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">matching<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">distribution<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">found<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">torchaudio<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #A3BE8C\">2.0<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Not sure how to proceed from here&#8230; Is it possible to use 2 different virtual environments in the same running instance of the webui?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TODO<\/strong>: Check and determine whether this is possible\/practical.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Context Window Research and Methods<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The context window size is an important factor in the practical application of models, and to that end various articles are included as reference for research notes.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/medium.com\/@ddxzzx\/why-and-how-to-achieve-longer-context-windows-for-llms-5f76f8656ea9#:~:text=Once%20we%20have%20efficiently%20incorporated,fit%20the%20new%20context%20length.\">https:\/\/medium.com\/@ddxzzx\/why-and-how-to-achieve-longer-context-windows-for-llms-5f76f8656ea9#:~:text=Once%20we%20have%20efficiently%20incorporated,fit%20the%20new%20context%20length.<\/a> &#8212; Article on RoPE and other context enlargement methods<\/li>\n<\/ol>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Research References<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/DeepSpeed\">https:\/\/en.wikipedia.org\/wiki\/DeepSpeed<\/a> &#8212; DeepSpeed Wiki<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Using ollama, and the dolphin-2.5-mixtral-8x7b model a simple script to test TTS and requests from Ollama server is being constructed. These are some reference notes. Okay this was successful and resulted in a script called askbot.py which is run from a shell script called askbot.sh. Recording Audio for an undetermined time This is the next<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1026","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rudimentary Chat Bot - OpenVoice, Whisper &amp; LLM - SparkOne() Labs Official Site<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rudimentary Chat Bot - OpenVoice, Whisper &amp; LLM - SparkOne() Labs Official Site\" \/>\n<meta property=\"og:description\" content=\"Using ollama, and the dolphin-2.5-mixtral-8x7b model a simple script to test TTS and requests from Ollama server is being constructed. These are some reference notes. Okay this was successful and resulted in a script called askbot.py which is run from a shell script called askbot.sh. Recording Audio for an undetermined time This is the next\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/\" \/>\n<meta property=\"og:site_name\" content=\"SparkOne() Labs Official Site\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61551444286908\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-11T20:35:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-28T15:22:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0-1024x796.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sparkonelabs\" \/>\n<meta name=\"twitter:site\" content=\"@sparkonelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/person\\\/ee3bd21f007818ac04abf178e749642c\"},\"headline\":\"Rudimentary Chat Bot &#8211; OpenVoice, Whisper &#038; LLM\",\"datePublished\":\"2024-02-11T20:35:57+00:00\",\"dateModified\":\"2024-02-28T15:22:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/\"},\"wordCount\":1195,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/brain_electric_0-0-1024x796.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/\",\"name\":\"Rudimentary Chat Bot - OpenVoice, Whisper & LLM - SparkOne() Labs Official Site\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/brain_electric_0-0-1024x796.png\",\"datePublished\":\"2024-02-11T20:35:57+00:00\",\"dateModified\":\"2024-02-28T15:22:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/brain_electric_0-0.png?fit=1152%2C896&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/brain_electric_0-0.png?fit=1152%2C896&ssl=1\",\"width\":1152,\"height\":896},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/02\\\/11\\\/basic-openvoice-and-llm-request-script\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rudimentary Chat Bot &#8211; OpenVoice, Whisper &#038; LLM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#website\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\",\"name\":\"SparkOne() Labs Official Site\",\"description\":\"SparkOne Labs is a Science, Art and Technology blog. Email: sparkonelabs@sparkonelabs.com\",\"publisher\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\"},\"alternateName\":\"SparkOne Labs\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\",\"name\":\"SparkOne() Labs\",\"alternateName\":\"SparkOne Labs\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo_sparkone_12.png\",\"contentUrl\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo_sparkone_12.png\",\"width\":1152,\"height\":896,\"caption\":\"SparkOne() Labs\"},\"image\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61551444286908\",\"https:\\\/\\\/x.com\\\/sparkonelabs\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/person\\\/ee3bd21f007818ac04abf178e749642c\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\"],\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rudimentary Chat Bot - OpenVoice, Whisper & LLM - SparkOne() Labs Official Site","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/","og_locale":"en_US","og_type":"article","og_title":"Rudimentary Chat Bot - OpenVoice, Whisper & LLM - SparkOne() Labs Official Site","og_description":"Using ollama, and the dolphin-2.5-mixtral-8x7b model a simple script to test TTS and requests from Ollama server is being constructed. These are some reference notes. Okay this was successful and resulted in a script called askbot.py which is run from a shell script called askbot.sh. Recording Audio for an undetermined time This is the next","og_url":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/","og_site_name":"SparkOne() Labs Official Site","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61551444286908","article_published_time":"2024-02-11T20:35:57+00:00","article_modified_time":"2024-02-28T15:22:34+00:00","og_image":[{"url":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0-1024x796.png","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@sparkonelabs","twitter_site":"@sparkonelabs","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#article","isPartOf":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/"},"author":{"name":"admin","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/person\/ee3bd21f007818ac04abf178e749642c"},"headline":"Rudimentary Chat Bot &#8211; OpenVoice, Whisper &#038; LLM","datePublished":"2024-02-11T20:35:57+00:00","dateModified":"2024-02-28T15:22:34+00:00","mainEntityOfPage":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/"},"wordCount":1195,"commentCount":0,"publisher":{"@id":"https:\/\/sparkonelabs.com\/home\/#organization"},"image":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#primaryimage"},"thumbnailUrl":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0-1024x796.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/","url":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/","name":"Rudimentary Chat Bot - OpenVoice, Whisper & LLM - SparkOne() Labs Official Site","isPartOf":{"@id":"https:\/\/sparkonelabs.com\/home\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#primaryimage"},"image":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#primaryimage"},"thumbnailUrl":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0-1024x796.png","datePublished":"2024-02-11T20:35:57+00:00","dateModified":"2024-02-28T15:22:34+00:00","breadcrumb":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#primaryimage","url":"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?fit=1152%2C896&ssl=1","contentUrl":"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/02\/brain_electric_0-0.png?fit=1152%2C896&ssl=1","width":1152,"height":896},{"@type":"BreadcrumbList","@id":"https:\/\/sparkonelabs.com\/home\/2024\/02\/11\/basic-openvoice-and-llm-request-script\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sparkonelabs.com\/home\/"},{"@type":"ListItem","position":2,"name":"Rudimentary Chat Bot &#8211; OpenVoice, Whisper &#038; LLM"}]},{"@type":"WebSite","@id":"https:\/\/sparkonelabs.com\/home\/#website","url":"https:\/\/sparkonelabs.com\/home\/","name":"SparkOne() Labs Official Site","description":"SparkOne Labs is a Science, Art and Technology blog. Email: sparkonelabs@sparkonelabs.com","publisher":{"@id":"https:\/\/sparkonelabs.com\/home\/#organization"},"alternateName":"SparkOne Labs","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sparkonelabs.com\/home\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sparkonelabs.com\/home\/#organization","name":"SparkOne() Labs","alternateName":"SparkOne Labs","url":"https:\/\/sparkonelabs.com\/home\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/logo\/image\/","url":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png","contentUrl":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png","width":1152,"height":896,"caption":"SparkOne() Labs"},"image":{"@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61551444286908","https:\/\/x.com\/sparkonelabs"]},{"@type":"Person","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/person\/ee3bd21f007818ac04abf178e749642c","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/sparkonelabs.com\/home"],"url":"https:\/\/sparkonelabs.com\/home\/author\/admin\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/comments?post=1026"}],"version-history":[{"count":4,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1026\/revisions"}],"predecessor-version":[{"id":1119,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1026\/revisions\/1119"}],"wp:attachment":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/media?parent=1026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/categories?post=1026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/tags?post=1026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}