Updated components

JHubi1 2024-09-14 14:40:57 +02:00
parent d97ff8669f
commit 65d0388bf1
No known key found for this signature in database
GPG Key ID: 7BF82570CBBBD050
2 changed files with 44 additions and 32 deletions

@ -17,7 +17,7 @@ Editing a message is almost as simple. After enabling message editing in [Interf
|-|
> [!TIP]
> Messages (almost) fully support markdown syntax. That means the AI will be able to recieve and send back the message in markdown.
> Messages (almost) fully support markdown syntax. That means the AI will be able to receive and send back the message in markdown.
### Multimodal Input
@ -43,19 +43,26 @@ This will display all the models currently installed on your Ollama server insta
The models with a star next to them are recommended models. They have been selected by me (hehe) to be listed as that. Read more under [Custom Builds](https://github.com/JHubi1/ollama-app/wiki/Contributing#custom-builds).
The `Add` button does nothing at the moment, it just opens a snack bar listing steps on how to add a model to an instance. For safety reasons, I didn't add the ability to add a model directly via name in the app.
Models supporting [Multimodal Input](#multimodal-input) are marked with an image icon next to their name, like `llava` in the image above.
### Adding models
| ![add model menu](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_22.png)| ![confirmation dialog](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_38.png) | ![download progressing](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_40.png) |
|-|-|-|
At the end of the model list, you can find a button with the text 'Add'. Pressing it will open an input field in which you have to put a model name. You can put any model here, you're able to find on the [official list](https://ollama.com/library). Model tags have to be separated by a colon.
Ollama App will then check if the model exists. If it does, it'll ask you again if you want to install it. If you press 'Add', it'll download the model to your host. Keep the app open to continue the download. If you accidentally closed it, just reenter the exact model name in the add dialog and confirm the action again; the process will be resumed.
## Side Menu
| ![side menu](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_26.png)| ![menu with chat](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_33.png) | ![dialog of chat](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_20.png) |
|-|-|-|
The button on the top left opens the menu. In it, you have two options: `New Chat` and `Settings`. The first option creates a new chat, and the second one opens the [Settings,](#settings) where you can change how everything works.
Below that are all the chats. To delete one, swipe it from left to right. To rename the chat tab and hold it until a popup dialog appears. In it, you can change the title or tab the sparkle icon to let AI find one for you. This is not affected by the "generate title" setting.
| ![side menu](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_26.png)| ![https://github.com/JHubi1/ollama-app/raw/main/side menu with chat](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_33.png) | ![https://github.com/JHubi1/ollama-app/raw/main/rename dialog of chat](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_20.png) |
|-|-|-|
> [!NOTE]
> The button on the top right corner deletes the chat. It has the same effect as swiping the chat in the sidebar.
@ -92,74 +99,79 @@ Ollama App supports adding custom headers. This can be useful in case you want t
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_06.png" alt="settings screen" height="720" /> |
|-|
The behavior settings include settings connected to the system prompt. They won't be applied until you create a new chat.
The behavior settings include settings connected to the system prompt.
The system prompt is sent to the assistant at the start of the conversation. It leads the assistant in a direction, and it'll talk like you told him to in this message. To reset the system prompt to default, empty its value, click the save icon and close the screen.
The toggle to disable system messages is useful if you're model has a system prompt added through its Modelfile. Ollama App in this case won't send the system prompt and the result will be as expected.
The option to disable markdown is not safe, and the assistant can still potentially add markdown to its response.
### Interface
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_07.png" alt="settings screen" height="720" /> |
|-|
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_07.png" alt="settings screen" height="720" /> | <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_08.png" alt="settings screen" height="720" /> |
|-|-|
The interface settings are focused, as the name might imply, on the interface of the Ollama App. The following list will document all options
1. Targeted at the [Model Selector](#model-selector).
1. Show model tags in the model selector. This can be useful if you have multiple versions of the same model installed
2. Clear the chat if the model is changed. This is highly recommended, disabling this option could lead to unintended behavior
2. The model will be pinged on select, so it can be loaded into the host's memory and be used directly
3. Clear the chat if the model is changed. This is highly recommended, disabling this option could lead to unintended behavior
2. Used in the [Chat View](#chat-view)
1. Set the request mode. Streaming is recommended, but sometimes it's not available, then select "Request"
2. Whether to generate titles of chats with the Ollama AI or not. Could higher potential quota costs
2. Whether to generate titles of chats with the host's AI or not. Could higher potential quota costs
3. Whether long-pressing messages opens the edit dialog or not
4. Whether to ask before deletion of chats. Useful if important data is potentially stored in chats or not
5. Whether to show tips in the main sidebar
5. Whether to show tips in the main sidebar or not
3. Backend loading options
1. Keep model always loaded (`keep_alive` to `-1`)
2. Never keep model (`keep_alive` to `0`)
3. Time to keep models alive
4. Appearance settings
3. Time to keep models alive, will overwrite the above options
4. Timeout multiplier
- A multiplier applied to all instances when a web request is made. This can be useful with a slow host or internet connection
5. Appearance settings
1. Whether to enable haptic feedback or not
2. Whether to start windows maximized (only desktop)
3. Theme of app
3. Brightness of the app
4. Follow the device theme/color
6. Temporary fixed
- Solution to problems that currently have no good way to be solve. These will be removed once the proper fix can be implemented
- Issues might occur, use only if needed!
### Voice
> [!WARNING]
> This is still an experimental feature! Some functions may not work as intended. The documentation will be extended once this feature leaves experimental stage.
> This is still an experimental feature! Some functions may not work as intended. If you come across any errors, please create a new [issue report](https://github.com/JHubi1/ollama-app/issues/new/choose).
| ![no permissions](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_09.png) | ![enabled](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_11.png) | ![language dialog](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_12.png) |
| ![no permissions](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_09.png) | ![language dialog](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_11.png) | ![enabled](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_12.png) |
|-|-|-|
Tap the "Permissions not granted" button to allow the needed permissions. They're needed to allow Speech To Text to function.
If the "Permission not granted" text appears, you have to allow the app a few crucial permissions for voice mode to work. To give them, simply tap on the information, it'll lead you through the needed steps.
After that, enable Voice Mode by switching the toggle. To bring it to work, you now have to press "No language selected" and select a language in the language dialog. That's it.
After you enabled it, you can enable Voice Mode by pressing the big "Enable Voice Mode" toggle. Then, select a language in the language dialog and you're good to go.
Then, press the button on the spot where the attachment icon would be with a multimodal model, or press the photo icon and the "Voice" button.
| ![voice mode button](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_42.png) | ![voice mode in media drawer](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_29.png) | ![voice mode](https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_37.png) |
|-|-|-|
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_29.png" alt="settings screen" height="720" /> |
|-|
To use voice mode, open a new chat (or an existing one) and press the headphone icon. If you have a multimodal model selected, you'll have to press the attachment button, and then select "Voice" in the media drawer.
If the model is multimodal, so it could get images as input, the normal button will appear, and the Voice Mode button will be moved in the multimodal drawer.
This will launch Voice Mode. Just start chatting, have fun!
### Export
> [!WARNING]
> The import functionallity deletes all currently saved chats from disk and replaces them with the ones from the file. This cannot be undone.
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_13.png" alt="settings screen" height="720" /> |
|-|
The export function allows you to export and save all chats to a file. This can be very useful if you want to back up your data or want to sync it between devices.
The export function allows you to export and save all chats to a file. This can be very useful if you want to back up your data or want to sync it between devices. Settings won't be included in the file.
The import functionality deletes all currently saved chats from disk and replaces them with the ones from the file. This cannot be undone.
### About (and Updates)
| <img src="https://github.com/JHubi1/ollama-app/raw/main/assets/screenshots/flutter_14.png" alt="settings screen" height="720" /> |
|-|
The About screen holds a lot of useful information.
The About screen holds a lot of useful information, like the current app version or all licenses associated with Ollama App. It also allows you to directly create an issue.
You can access the GitHub repository or the issue page of the app directly from this screen.
One more useful thing is the update checker. It looks for updates in the repo and will prompt you to download them directly from GitHub. Be careful, though, the used GitHub API has a rate limit. You can only send a few requests before the rate limit kicks in.
This screen is also home to the update tracker. You can check for the latest version by pressing the update text. If there's any update available, it'll lead you to the GitHub release page to download the latest release.

@ -36,7 +36,7 @@ Wait for it to finish processing. Then go to `build/.output`. There you'll find
### Custom Builds
> [!WARNING]
> "Secrets", or not so publicly known host for example, entered in these options could possibly be retriefed by scanning through the code. Nothing on the client can be seen as secured. To make retrieving sensitive information more difficult, you should follow the steps in the section [Hiding Secrets](#hiding-secrets) as well.
> "Secrets", or not so publicly known host for example, entered in these options could possibly be retrieved by scanning through the code. Nothing on the client can be seen as secured. To make retrieving sensitive information more difficult, you should follow the steps in the section [Hiding Secrets](#hiding-secrets) as well.
Now it's going to get interesting. Ollama App is built in a way that you can easily create custom-builds with custom properties and behavior. The configuration values can be found at the top of `lib/main.dart`. Currently, these are available: