%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/core/doc/admin/ai/ |
Current File : //www/varak.net/nextcloud.varak.net/core/doc/admin/ai/app_context_chat.html |
<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="../"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>App: Context Chat — Nextcloud latest Administration Manual latest documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" /> <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" /> <link rel="stylesheet" type="text/css" href="../_static/dark_mode_css/general.css?v=c0a7eb24" /> <link rel="stylesheet" type="text/css" href="../_static/dark_mode_css/dark.css?v=70edf1c7" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <!--[if lt IE 9]> <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> <script src="../_static/jquery.js?v=5d32c60e"></script> <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script> <script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/clipboard.min.js?v=a7894cd8"></script> <script src="../_static/copybutton.js?v=f281be69"></script> <script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script> <script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="App: Summary Bot (Talk chat summarize bot)" href="app_summary_bot.html" /> <link rel="prev" title="App: Recognize" href="app_recognize.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="../contents.html"> <img src="../_static/logo-white.png" class="logo" alt="Logo"/> </a> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li> <li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li> <li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration_server/index.html">Nextcloud configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li> <li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li> <li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li> <li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li> <li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">Artificial Intelligence</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="overview.html">Overview</a></li> <li class="toctree-l2"><a class="reference internal" href="app_assistant.html">Nextcloud Assistant</a></li> <li class="toctree-l2"><a class="reference internal" href="app_translate2.html">App: Local Machine translation 2 (translate2)</a></li> <li class="toctree-l2"><a class="reference internal" href="app_llm2.html">App: Local large language model (llm2)</a></li> <li class="toctree-l2"><a class="reference internal" href="app_stt_whisper2.html">App: Local Whisper Speech-To-Text (stt_whisper2)</a></li> <li class="toctree-l2"><a class="reference internal" href="app_recognize.html">App: Recognize</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">App: Context Chat</a><ul> <li class="toctree-l3"><a class="reference internal" href="#requirements">Requirements</a><ul> <li class="toctree-l4"><a class="reference internal" href="#space-usage">Space usage</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#installation">Installation</a></li> <li class="toctree-l3"><a class="reference internal" href="#initial-loading-of-data">Initial loading of data</a></li> <li class="toctree-l3"><a class="reference internal" href="#scaling">Scaling</a></li> <li class="toctree-l3"><a class="reference internal" href="#app-store">App store</a></li> <li class="toctree-l3"><a class="reference internal" href="#repository">Repository</a></li> <li class="toctree-l3"><a class="reference internal" href="#known-limitations">Known Limitations</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="app_summary_bot.html">App: Summary Bot (Talk chat summarize bot)</a></li> <li class="toctree-l2"><a class="reference internal" href="app_api_and_external_apps.html">AppAPI and External Apps</a></li> <li class="toctree-l2"><a class="reference internal" href="ai_as_a_service.html">AI as a Service</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../webhook_listeners/index.html">Webhook Listeners</a></li> <li class="toctree-l1"><a class="reference internal" href="../windmill_workflows/index.html">Windmill Workflows</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li> <li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li> <li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li> <li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../contents.html">Nextcloud latest Administration Manual</a> </nav> <div class="wy-nav-content"> <div class="rst-content style-external-links"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li> <li class="breadcrumb-item"><a href="index.html">Artificial Intelligence</a></li> <li class="breadcrumb-item active">App: Context Chat</li> <li class="wy-breadcrumbs-aside"> <a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/ai/app_context_chat.rst" class="fa fa-github"> Edit on GitHub</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="app-context-chat"> <h1>App: Context Chat<a class="headerlink" href="#app-context-chat" title="Link to this heading"></a></h1> <p id="ai-app-context-chat">Context Chat is an <a class="reference internal" href="app_assistant.html#ai-app-assistant"><span class="std std-ref">assistant</span></a> feature that is implemented via an ensemble of two apps:</p> <blockquote> <div><ul class="simple"> <li><p>the <em>context_chat</em> app, written purely in PHP</p></li> <li><p>the <em>context_chat_backend</em> ExternalApp written in Python</p></li> </ul> </div></blockquote> <p>Together they provide the ContextChat text processing tasks accessible via the <a class="reference internal" href="app_assistant.html#ai-app-assistant"><span class="std std-ref">Nextcloud Assistant app</span></a>.</p> <p>The <em>context_chat</em> and <em>context_chat_backend</em> apps will use the Free text to text task processing providers like OpenAI integration, LLM2, etc. and such a provider is required on a fresh install, or it can be configured to run open source models entirely on-premises. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.</p> <p>This app supports input and output mainly in English, other languages may work if the language model supports the language, but are currently not guaranteed to produce good results.</p> <section id="requirements"> <h2>Requirements<a class="headerlink" href="#requirements" title="Link to this heading"></a></h2> <ul> <li><p>Minimal Nextcloud version: 30</p></li> <li><p>The <em>context_chat_backend</em> app is built as an External App and thus depends on AppAPI >= 2.7.0</p></li> <li><p>Nextcloud AIO is supported</p></li> <li><p>We currently support NVIDIA GPUs and x86_64 CPUs</p></li> <li><p>CUDA >= v12.2 on your host system</p></li> <li><p>GPU Sizing</p> <blockquote> <div><ul class="simple"> <li><p>A NVIDIA GPU with at least 8GB VRAM</p></li> <li><p>At least 12GB of system RAM</p></li> </ul> </div></blockquote> </li> <li><p>CPU Sizing</p> <blockquote> <div><ul class="simple"> <li><p>At least 12GB of system RAM</p></li> <li><p>This app makes use of the configured Text To Text Free prompt provider instead of running its own Language model, you will thus need only 4-8 cores for the embedding model</p></li> </ul> </div></blockquote> </li> <li><p>A dedicated machine is recommended</p></li> </ul> <section id="space-usage"> <h3>Space usage<a class="headerlink" href="#space-usage" title="Link to this heading"></a></h3> <p>This app employs a bundled Vector DB called <cite>Chroma<https://github.com/chroma-core/chroma></cite>. All the users’ textual data is duplicated, chunked and stored on disk in this vector DB along with semantic embedding vectors for the content.</p> <p>Assuming no shared files between users you can calculate with roughly the amount of textual data in user files (e.g. for PDFs, only the text counts, no images are kept). Any shared files will be duplicated per user, however, so, assuming all files are shared with all users you need to calculate with “the amount of textual data in user files * number of users”. The reality will lie between these two estimates, of course.</p> </section> </section> <section id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Link to this heading"></a></h2> <ol class="arabic simple" start="0"> <li><p>Make sure the <a class="reference internal" href="app_assistant.html#ai-app-assistant"><span class="std std-ref">Nextcloud Assistant app</span></a> is installed</p></li> <li><p><a class="reference internal" href="app_api_and_external_apps.html#ai-app-api"><span class="std std-ref">Install AppAPI and setup a Deploy Demon</span></a></p></li> <li><p>Install the <em>context_chat_backend</em> ExApp via the “External Apps” admin page in Nextcloud, or by executing</p></li> </ol> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">app_api</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="n">register</span> <span class="n">context_chat_backend</span> </pre></div> </div> <ol class="arabic simple" start="3"> <li><p>Install the <em>context_chat</em> app via the “Apps” page in Nextcloud, or by executing</p></li> </ol> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">context_chat</span> </pre></div> </div> <ol class="arabic simple" start="4"> <li><p>Install a text generation backend like <em>llm2</em> (via the “External Apps” page in Nextcloud) or <em>integration_openai</em> (via the “Apps” page in Nextcloud), or by executing</p></li> </ol> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">app_api</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="n">register</span> <span class="n">llm2</span> </pre></div> </div> <p>or</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">integration_openai</span> </pre></div> </div> <ol class="arabic simple" start="5"> <li><p>Optionally but recommended, setup background workers for faster pickup of tasks. See <a class="reference internal" href="overview.html#ai-overview-improve-ai-task-pickup-speed"><span class="std std-ref">the relevant section in AI Overview</span></a> for more information.</p></li> </ol> <p><strong>Note</strong>: Both apps need to be installed and both major version and minor version of the two apps must match for the functionality to work (ie. “v1.3.4” and “v1.3.1”; but not “v1.3.4” and “v2.1.6”; and not “v1.3.4” and “v1.4.5”). Keep this in mind when updating.</p> </section> <section id="initial-loading-of-data"> <h2>Initial loading of data<a class="headerlink" href="#initial-loading-of-data" title="Link to this heading"></a></h2> <p>Context chat will automatically load user data into the Vector DB using background jobs. To speed this up, you can set up multiple background job workers (possibly on dedicated machines) and run the following occ commands as daemons in parallel on each:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="o">-</span><span class="n">e</span><span class="p">;</span> <span class="k">while</span> <span class="n">true</span><span class="p">;</span> <span class="n">do</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">occ</span> <span class="n">background</span><span class="o">-</span><span class="n">job</span><span class="p">:</span><span class="n">worker</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">t</span> <span class="mi">60</span> <span class="s2">"OCA\ContextChat\BackgroundJobs\StorageCrawlJob"</span><span class="p">;</span> <span class="n">done</span> </pre></div> </div> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="o">-</span><span class="n">e</span><span class="p">;</span> <span class="k">while</span> <span class="n">true</span><span class="p">;</span> <span class="n">do</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">occ</span> <span class="n">background</span><span class="o">-</span><span class="n">job</span><span class="p">:</span><span class="n">worker</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">t</span> <span class="mi">60</span> <span class="s2">"OCA\ContextChat\BackgroundJobs\IndexerJob"</span><span class="p">;</span> <span class="n">done</span> </pre></div> </div> <p>This will ensure that the necessary background jobs are run as often as possible: <code class="docutils literal notranslate"><span class="pre">StorageCrawlJob</span></code> will crawl Nextcloud storages and put files that it finds into a queue and <code class="docutils literal notranslate"><span class="pre">IndexerJob</span></code> will iterate over the queue and load the file content into the Vector DB.</p> <p>See <a class="reference internal" href="overview.html#ai-overview-improve-ai-task-pickup-speed"><span class="std std-ref">the task speedup section in AI Overview</span></a> to know better ways to run these jobs.</p> </section> <section id="scaling"> <h2>Scaling<a class="headerlink" href="#scaling" title="Link to this heading"></a></h2> <p>It is currently not possible to scale ExApps like Context Chat, we are working on this. Based on our calculations an instance has a rough capacity of 1000 user requests per hour. However, this number is based on theory and we do appreciate real-world feedback on this.</p> </section> <section id="app-store"> <h2>App store<a class="headerlink" href="#app-store" title="Link to this heading"></a></h2> <p>You can also find the <em>context_chat</em> app in our app store, where you can write a review: <a class="reference external" href="https://apps.nextcloud.com/apps/context_chat">https://apps.nextcloud.com/apps/context_chat</a></p> </section> <section id="repository"> <h2>Repository<a class="headerlink" href="#repository" title="Link to this heading"></a></h2> <p>You can find the app’s code repository on GitHub where you can report bugs and contribute fixes and features: <a class="reference external" href="https://github.com/nextcloud/context_chat">https://github.com/nextcloud/context_chat</a> and <a class="reference external" href="https://github.com/nextcloud/context_chat_backend">https://github.com/nextcloud/context_chat_backend</a></p> <p>Nextcloud customers should file bugs directly with our Customer Support.</p> </section> <section id="known-limitations"> <h2>Known Limitations<a class="headerlink" href="#known-limitations" title="Link to this heading"></a></h2> <ul class="simple"> <li><p>Language models are likely to generate false information and should thus only be used in situations that are not critical. It’s recommended to only use AI at the beginning of a creation process and not at the end, so that outputs of AI serve as a draft for example and not as final product. Always check the output of language models before using it.</p></li> <li><p>Context Chat is not integrated into the Chat UI of assistant app, at the moment, but has it’s own interface in the assistant modal</p></li> <li><p>Make sure to test this app for whether it meets your use-case’s quality requirements</p></li> <li><p>Customer support is available upon request, however we can’t solve false or problematic output, most performance issues, or other problems caused by the underlying model. Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI)</p></li> <li><p>Nextcloud usernames can be only 56 characters long. This is a limitation of the vector database we use (Chroma DB) and will be fixed soon.</p></li> </ul> </section> </section> </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="app_recognize.html" class="btn btn-neutral float-left" title="App: Recognize" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="app_summary_bot.html" class="btn btn-neutral float-right" title="App: Summary Bot (Talk chat summarize bot)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> <div role="contentinfo"> <p>© Copyright 2024 Nextcloud GmbH.</p> </div> </footer> </div> </div> </section> </div> <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions"> <span class="rst-current-version" data-toggle="rst-current-version"> <span class="fa fa-book"> Read the Docs</span> v: latest <span class="fa fa-caret-down"></span> </span> <div class="rst-other-versions"> <dl> <dt>Versions</dt> <dd><a href="https://docs.nextcloud.com/server/28/admin_manual">28</a></dd> <dd><a href="https://docs.nextcloud.com/server/29/admin_manual">29</a></dd> <dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd> <dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd> </dl> <dl> <dt>Downloads</dt> </dl> <dl> <dt>On Read the Docs</dt> <dd> <a href="///projects//?fromdocs=">Project Home</a> </dd> <dd> <a href="///builds//?fromdocs=">Builds</a> </dd> </dl> </div> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>