Skip to content

Commit 45de402

Browse files
committed
fix: Make sure AI docs are up-to-date and do some cleanup
Signed-off-by: Marcel Klehr <[email protected]>
1 parent 83a672d commit 45de402

File tree

9 files changed

+192
-82
lines changed

9 files changed

+192
-82
lines changed

admin_manual/ai/app_assistant.rst

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,8 @@ These apps currently implement the following Assistant Tasks:
7474
* *Summarize* (Tested with OpenAI GPT-3.5 and Llama 3.1 8B)
7575
* *Generate headline* (Tested with OpenAI GPT-3.5 and Llama 3.1 8B)
7676
* *Extract topics* (Tested with OpenAI GPT-3.5 and Llama 3.1 8B)
77-
78-
Additionally, *integration_openai* also implements the following Assistant Tasks:
79-
80-
* *Context write* (Tested with OpenAI GPT-3.5)
81-
* *Reformulate text* (Tested with OpenAI GPT-3.5)
77+
* *Context write* (Tested with OpenAI GPT-3.5 and Llama 3.1 8B)
78+
* *Reformulate text* (Tested with OpenAI GPT-3.5 and Llama 3.1 8B)
8279

8380
These tasks may work with other models, but we can give no guarantees.
8481

@@ -98,7 +95,7 @@ In order to make use of our special Context Chat feature, offering in-context in
9895

9996
* :ref:`context_chat + context_chat_backend<ai-app-context_chat>` - (Customer support available upon request)
10097

101-
You will also need a text processing provider as specified above (ie. llm2 or integration_openai).
98+
You will also need a text processing provider as specified above (ie. llm2, integration_openai or integration_watsonx).
10299

103100
Context Agent
104101
~~~~~~~~~~~~~
@@ -117,6 +114,7 @@ Text-To-Speech
117114
In order to make use of Text-To-Speech, you will need an app that provides a Text-To-Speech backend:
118115

119116
* *integration_openai* - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
117+
* *text2speech_kokoro* - Runs a local model
120118

121119
Configuration
122120
-------------

admin_manual/ai/app_context_agent.rst

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ Currently implemented tools:
2222

2323
* Example prompt: *"List the latest messages in my conversation with Andrew"*
2424

25+
* Send a message to a talk conversation
26+
27+
* Example prompt: *"Can you send a joke to Andrew in talk?"*
28+
29+
* Create a public talk conversation
30+
31+
* Example prompt: *"Can you create a new public talk conversation titled 'Press conference'?"*
32+
2533
* Find a person in the user's contacts
2634

2735
* Example prompt: *"What is Andrew's Email address?"*
@@ -34,21 +42,39 @@ Currently implemented tools:
3442

3543
* Example prompt: *"What is the company's sick leave process?"*
3644

45+
* Transcribe a media file
46+
47+
* Example prompt: *"Can you transcribe the following file? https://mycloud.com/f/9825679"* (Can be selected via smart picker.)
48+
49+
* Generate documents
50+
51+
* Example prompt: *"Can you generate me a slide deck for my presentation about cats?"*
52+
* Example prompt: *"Can you generate me a spreadsheet with some plausible numbers for countries and their population count?"*
53+
* Example prompt: *"Can you generate me a pdf with an outline about what to see in Berlin?"*
54+
55+
* Generate images
56+
57+
* Example prompt: *"Can you generate me an image of a cartoon drawing of a roman soldier typing something on a laptop?"*
58+
3759
* Get coordinates for an Address from Open Street Maps Nomatim
3860

39-
* Example prompt: *"List my calendars"*
61+
* Example prompt: *"What are the coordinates for Berlin, Germany?"*
62+
63+
* Get the URL for a map of a location using Open Street Maps
64+
65+
* Example prompt: *"Can you show me a map of New York, please"*
4066

4167
* Get the current weather at a location
4268

4369
* Example prompt: *"How is the weather in Berlin?"*
4470

4571
* Schedule an event in the user's calendar
4672

47-
* Example prompt: *"Make schedule an event with Andrew tomorrow at noon."*
73+
* Example prompt: *"Schedule an event with Andrew tomorrow at noon."*
4874

49-
* Send a message to a talk conversation
75+
* Find free times in users' calendar
5076

51-
* Example prompt: *"Can you send a joke to Andrew in talk?"*
77+
* Example prompt: *"Find a free 1-hour slot for a meeting with me and Marco next week."*
5278

5379
* Create a deck card
5480

@@ -66,10 +92,42 @@ Currently implemented tools:
6692

6793
* Example prompt: *"Show me the youtube video of the Nextcloud hub 10 launch."*
6894

95+
* Search Duckduckgo
96+
97+
* Example prompt: *"Show me search results for quick pasta recipes, please."*
98+
6999
* Send an email via Nextcloud Mail
70100

71-
* Example prompt *"Send a test email from [email protected] to [email protected] from my account with id 12"*
72-
* (The account ID will soon be irrelevant)
101+
* Example prompt: *"Send a test email from my [email protected] account to [email protected]"*
102+
103+
* Get contents of a file
104+
105+
* Example prompt: *"Can you summarize the following file in my documents? Design/Planning.md"*
106+
107+
* Generate a public share link for a file
108+
109+
* Example prompt: *"Can create a share link for the following file in my documents? Design/Planning.md"*
110+
111+
* Get the folder tree of the user's files
112+
113+
* Example prompt: *"Can you show me the folder tree of my files?"*
114+
115+
* Determine public transport routes
116+
117+
* Example prompt: *"How can I get from Würzburg Hauptbahnhof to Berlin Hauptbahnhof?"*
118+
119+
* List all projects in OpenProject
120+
121+
* Example prompt: *"List all my projects in OpenProject, please"*
122+
123+
* List all available assignees of a project in OpenProject
124+
125+
* Example prompt: *"List all available assignees for the 'Product launch' project in OpenProject"*
126+
127+
* Create a new work package in a given project in OpenProject
128+
129+
* Example prompt: *"Create a work package called 'Publish release video' in the 'Product launch' project in OpenProject"*
130+
73131

74132
These tools can also be combined by the agent to fulfil tasks like the following:
75133

admin_manual/ai/app_context_chat.rst

Lines changed: 6 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Context Chat is an :ref:`assistant<ai-app-assistant>` feature that is implemente
99
* the *context_chat* app, written purely in PHP
1010
* the *context_chat_backend* ExternalApp written in Python
1111

12-
Together they provide the ContextChat text processing tasks accessible via the :ref:`Nextcloud Assistant app<ai-app-assistant>`.
12+
Together they provide the ContextChat *text processing* and *search* tasks accessible via the :ref:`Nextcloud Assistant app<ai-app-assistant>`.
1313

1414
The *context_chat* and *context_chat_backend* 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.
1515

@@ -37,7 +37,7 @@ Requirements
3737
* At least 12GB of system RAM
3838
* 2 GB + additional 500MB for each request made to the backend if the Free text-to-text provider is not on the same machine
3939
* 8 GB is recommended in the above case for the default settings
40-
* This app makes use of the configured free text-to-text task processing provider instead of running its own language model by default, you will thus need 4+ cores for the embedding model only (backed configuration needs changes to make use of the extra cores, refer to `Configuration Options (Backend)`_)
40+
* This app makes use of the configured free text-to-text task processing provider instead of running its own language model by default, you will thus need 4+ cores for the embedding model only
4141

4242
* A dedicated machine is recommended
4343

@@ -139,8 +139,8 @@ The options for each command can be found like this, using scan as example: ``co
139139
| These file and ownership changes are synced with the backed through this actions queue.
140140
141141

142-
Configuration Options (OCC)
143-
---------------------------
142+
Configuration Options
143+
---------------------
144144

145145
* ``auto_indexing`` boolean (default: true)
146146
To allow/disallow the IndexerJob from running in the background
@@ -149,64 +149,11 @@ Configuration Options (OCC)
149149
150150
occ config:app:set context_chat auto_indexing --value=true --type=boolean
151151
152-
* ``indexing_batch_size`` integer (default: 5000)
153-
The number of files to index per run of the indexer background job (this is limited by `indexing_max_time`)
154-
155-
.. code-block::
156-
157-
occ config:app:set context_chat indexing_batch_size --value=100 --type=integer
158-
159-
* ``indexing_job_interval`` integer (default: 1800)
160-
The interval at which the indexer jobs run in seconds
161-
162-
.. code-block::
163-
164-
occ config:app:set context_chat indexing_job_interval --value=1800 --type=integer
165-
166-
* ``indexing_max_time`` integer (default: 1800)
167-
The number of seconds to index files for per run, regardless of batch size
168-
169-
.. code-block::
170-
171-
occ config:app:set context_chat indexing_max_time --value=1800 --type=integer
172-
173-
* ``request_timeout`` integer (default: 3000)
174-
Request timeout in seconds for all requests made to the Context chat backend (the external app in AppAPI).
175-
If a docker socket proxy is used, the ``TIMEOUT_SERVER`` environment variable should be set to a value higher than ``request_timeout``.
176-
177-
.. code-block::
178-
179-
occ config:app:set context_chat request_timeout --value=3 --type=integer
180-
181-
182-
Configuration Options (Backend)
183-
-------------------------------
184-
185-
Refer to `the Configuration head <https://github.com/nextcloud/context_chat_backend?tab=readme-ov-file#configuration>`_ in the backend's readme.
186-
187152
188153
Logs
189154
----
190155

191-
Logs for the ``context_chat`` PHP app can be found in the Nextcloud log file, which is usually located in the Nextcloud data directory. The log file is named ``nextcloud.log``.
192-
Diagnostic logs can be found in the Nextcloud data directory in ``context_chat.log`` file.
193-
194-
| For the backend, warning and error logs can be found in the docker container logs ``docker logs -f -n 200 nc_app_context_chat_backend``, and the complete logs can be found in ``logs/`` directory in the persistent storage of the docker container.
195-
| That will be ``/nc_app_context_chat_backend/logs/`` in the docker container.
196-
197-
This command can be used to view the detailed logs in real-time:
198-
199-
.. code-block::
200-
201-
docker exec nc_app_context_chat_backend tail -f /nc_app_context_chat_backend/logs/ccb.log
202-
203-
Same for the embedding server:
204-
205-
.. code-block::
206-
207-
docker exec nc_app_context_chat_backend tail -f /nc_app_context_chat_backend/logs/embedding_server_*.log``
208-
209-
See `the Logs head <https://github.com/nextcloud/context_chat_backend?tab=readme-ov-file#logs>`_ in the backend's readme for more information.
156+
Logs for both the ``context_chat`` PHP app and the ``context_chat_backend`` ExApp can be found in the admin settings of your Nextcloud GUI as well as in the Context Chat log file, which is usually located in the Nextcloud data directory. The log file is named ``context_chat.log``.
210157

211158
Troubleshooting
212159
---------------
@@ -215,12 +162,6 @@ Troubleshooting
215162
2. Look for issues in the diagnostic logs, the server logs and the docker container ``nc_app_context_chat_container`` logs. If unsure, open an issue in either of the repositories.
216163
3. Check "Admin settings -> Context Chat" for statistics and information about the indexing process.
217164

218-
Possibility of Data Leak
219-
------------------------
220-
221-
| It is possible that some users who had access to certain files/folders (and have later have been denied this access) still have access to the content of those files/folders through the Context Chat app. We're working on a solution for this.
222-
| The users who never had access to a particular file/folder will NOT be able to see those contents in any way.
223-
224165
File access control rules not supported
225166
---------------------------------------
226167

@@ -236,5 +177,5 @@ Known Limitations
236177

237178
* 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 and make sure whether it meets your use-case's quality requirements.
238179
* 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).
239-
* Large files are not supported in "Selective context" in the Assistant UI if they have not been indexed before. Use ``occ context_chat:scan <user_id> -d <directory_path>`` to index the desired directory synchronously and then use the Selective context option. "Large files" could mean differently for different users. It depends on the amount of text inside the documents in question and the hardware on which the indexer is running. Generally 20 MB should be large for a CPU-backed setup and 100 MB for a GPU-backed system.
180+
* Files larger than 100MB are not supported
240181
* Password protected PDFs or any other files are not supported. There will be error logs mentioning cryptography and AES in the docker container when such files are encountered but it is nothing to worry about, they will be simply ignored and the system will continue to function normally.

admin_manual/ai/app_llm2.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ Scaling
109109
-------
110110

111111
It is currently not possible to scale this app, 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.
112+
If you would like to scale up your language model usage, we recommend using an :ref:`AI as a Service provider<ai-ai_as_a_service>` or hosting a service compatible with the OpenAI API yourself that can be scaled up and connecting nextcloud to it via *integration_openai*.
112113

113114
App store
114115
---------

admin_manual/ai/app_stt_whisper2.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,3 @@ Known Limitations
7777
* Make sure to test the language model you are using it for whether it meets the use-case's quality requirements
7878
* Language models notoriously have a high energy consumption, if you want to reduce load on your server you can choose smaller models or quantized models in exchange for lower accuracy
7979
* 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)
80-
* Due to technical limitations that we are in the process of mitigating, each task currently incurs a time cost of between 0 and 5 minutes in addition to the actual processing time
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
==============================================
2+
App: Local Text-To-Speech (text2speech_kokoro)
3+
==============================================
4+
5+
.. _ai-app-text2speech_kokoro:
6+
7+
The *text2speech_kokoro* app is one of the apps that provide Text-To-Speech functionality in Nextcloud and act as a speech generation backend for the :ref:`Nextcloud Assistant app<ai-app-assistant>` and :ref:`other apps making use of the core `Text-To-Speech Task type<t2s-consumer-apps>`. The *text2speech_kokoro* app specifically runs only open source models and does so entirely on-premises. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.
8+
9+
This app uses `Kokoro <https://github.com/hexgrad/kokoro>`_ under the hood.
10+
11+
The used model supports the following languages:
12+
13+
* American English
14+
* British English
15+
* Spanish
16+
* French
17+
* Italian
18+
* Hindi
19+
* Portuguese
20+
* Japanese
21+
* Mandarin
22+
23+
Requirements
24+
------------
25+
26+
* Minimal Nextcloud version: 31
27+
* This app is built as an External App and thus depends on AppAPI v2.3.0
28+
* Nextcloud AIO is supported
29+
* We currently support x86_64 CPUs
30+
* We do not support GPUs
31+
32+
* CPU Sizing
33+
34+
* The more cores you have and the more powerful the CPU the better, we recommend around 10 cores
35+
* The app will hog all cores by default, so it is usually better to run it on a separate machine
36+
* 800MB RAM
37+
38+
Installation
39+
------------
40+
41+
0. Make sure the :ref:`Nextcloud Assistant app<ai-app-assistant>` is installed
42+
1. :ref:`Install AppAPI and setup a Deploy Demon<ai-app_api>`
43+
2. Install the *text2speech_kokoro* "Local Text-To-Speech" ExApp via the "Apps" page in the Nextcloud web admin user interface
44+
45+
46+
Scaling
47+
-------
48+
49+
It is currently not possible to scale this app, we are working on this. Based on our calculations an instance has a rough capacity of 4h of transcription throughput per minute (measured with 8 CPU threads on an Intel(R) Xeon(R) Gold 6226R). It is unclear how close to real-world usage this number is, so we do appreciate real-world feedback on this.
50+
51+
App store
52+
---------
53+
54+
You can also find this app in our app store, where you can write a review: `<https://apps.nextcloud.com/apps/text2speech_kokoro>`_
55+
56+
Repository
57+
----------
58+
59+
You can find the app's code repository on GitHub where you can report bugs and contribute fixes and features: `<https://github.com/nextcloud/text2speech_kokoro>`_
60+
61+
Nextcloud customers should file bugs directly with our customer support.
62+
63+
Known Limitations
64+
-----------------
65+
66+
* We currently only support languages supported by the underlying Kokoro model
67+
* The Kokoro models perform unevenly across languages, and may show lower accuracy on low-resource and/or low-discoverability languages or languages where there was less training data available.
68+
* Make sure to test the language model you are using it for whether it meets the use-case's quality requirements
69+
* 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)

admin_manual/ai/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ Artificial Intelligence
1515
app_context_chat
1616
app_context_agent
1717
app_summary_bot
18+
app_text2speech_kokoro
1819
ai_as_a_service

0 commit comments

Comments
 (0)