ZIm/crates
Kyle Kelley 4cb8d6f40e
Ollama Provider for Assistant (#12902)
Closes #4424.

A few design decisions that may need some rethinking or later PRs:

* Other providers have a check for authentication. I use this
opportunity to fetch the models which doubles as a way of finding out if
the Ollama server is running.
* Ollama has _no_ API for getting the max tokens per model
* Ollama has _no_ API for getting the current token count
https://github.com/ollama/ollama/issues/1716
* Ollama does allow setting the `num_ctx` so I've defaulted this to
4096. It can be overridden in settings.
* Ollama models will be "slow" to start inference because they're
loading the model into memory. It's faster after that. There's no UI
affordance to show that the model is being loaded.

Release Notes:

- Added an Ollama Provider for the assistant. If you have
[Ollama](https://ollama.com/) running locally on your machine, you can
enable it in your settings under:

```jsonc
"assistant": {
    "version": "1",
    "provider": {
      "name": "ollama",
      // Recommended setting to allow for model startup
      "low_speed_timeout_in_seconds": 30,
    }
}
```

Chat like usual

<img width="1840" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/4e0af266-4c4f-4d9e-9d74-1a91f76a12fe">

Interact with any model from the [Ollama
Library](https://ollama.com/library)

<img width="587" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/87433ac6-bf87-4a99-89e1-96a93bf8de8a">

Open up the terminal to download new models via `ollama pull`:


![image](https://github.com/zed-industries/zed/assets/836375/af7ec411-76bf-41c7-ba81-64bbaeea98a8)
2024-06-11 17:35:27 -07:00
..
activity_indicator Rename workspace::Restart action into workspace::Reload (#12672) 2024-06-08 13:23:59 +03:00
anthropic Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
assets Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
assistant Ollama Provider for Assistant (#12902) 2024-06-11 17:35:27 -07:00
assistant_slash_command Autocomplete commands that don't require access to workspace in prompt library (#12674) 2024-06-05 10:07:43 +02:00
assistant_tooling Bring the Tool Calling README up to date (#11683) 2024-05-12 04:47:19 -07:00
audio Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
auto_update Auto updater disabler (#12660) 2024-06-04 15:56:18 -07:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call Don't show backtraces in prompts (#12699) 2024-06-05 15:00:23 -06:00
channel Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
cli Auto updater disabler (#12660) 2024-06-04 15:56:18 -07:00
client Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
collab_ui Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Remove dependencies from the Worktree crate and make it more focused (#12747) 2024-06-06 11:16:58 -07:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
dev_server_projects Allow ssh connection for setting up zed (#12063) 2024-05-21 22:39:16 -06:00
diagnostics Check validity of new.range too (#12781) 2024-06-07 11:48:23 -06:00
editor Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
extension Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
extension_api Block publishing of zed_extension_api v0.0.7 (#12784) 2024-06-07 14:16:21 -04:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Show extension download counts with thousands separators (#12857) 2024-06-10 14:19:17 -04:00
feature_flags Make prompt library icon in context panel staff-only for now (#12457) 2024-05-29 16:53:45 -06:00
feedback Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
file_finder Tidy up the code (#12116) 2024-05-22 14:36:15 +03:00
file_icons Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
fs linux watcher (#12615) 2024-06-03 22:17:10 -06:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
git_hosting_providers Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
go_to_line Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
google_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui Fix alt key getting stuck when tabbing on linux (#12912) 2024-06-11 15:14:01 -07:00
gpui_macros Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
headless Make reconnects smoother for dev servers (#12223) 2024-05-23 21:11:14 -06:00
html_to_markdown Add tag handler for collecting crate items from rustdoc output (#12903) 2024-06-11 15:56:37 -04:00
http zed_extension_api: Add github_release_by_tag_name (#12172) 2024-05-22 20:40:31 -04:00
image_viewer Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
inline_completion_button Supermaven (#10788) 2024-05-03 12:50:42 -07:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
language lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769) 2024-06-11 15:52:38 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
languages Add auto-completion support for package.json files (#12792) 2024-06-08 13:33:29 +03:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
markdown Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
markdown_preview markdown preview: Break up list items into individual blocks (#10852) 2024-04-26 21:34:45 +02:00
media Revert "Revert "Revert dependency updates in #9836 (#10089)"" 2024-04-02 13:12:38 -06:00
menu Fix the linux keymap (#9829) 2024-03-26 16:10:09 -07:00
multi_buffer Search in selections (#10831) 2024-06-05 13:42:51 -06:00
node_runtime node_runtime: Restrict the windows dependency to the Windows target (#12284) 2024-05-25 11:04:22 -04:00
notifications Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847) 2024-04-02 20:40:00 -06:00
ollama Ollama Provider for Assistant (#12902) 2024-06-11 17:35:27 -07:00
open_ai Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
outline Start on a database-backed prompt library (#12468) 2024-06-03 15:58:43 +02:00
picker Update prompt library styles (#12689) 2024-06-05 22:10:02 -04:00
prettier Use language settings' prettier parsers as a fallback for files with no path (#12273) 2024-05-25 10:50:53 +03:00
project Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
project_panel project_panel: Don't show file icon during rename when file icons are otherwise hidden (#12910) 2024-06-11 19:45:47 -04:00
project_symbols Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
proto lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769) 2024-06-11 15:52:38 +02:00
quick_action_bar Do not show tooltip for editor controls if clicked (#10679) 2024-04-17 13:20:47 +02:00
recent_projects Reconnect button for remote projects (#12669) 2024-06-10 18:09:47 -06:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
rich_text New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
rope Indent guides (#11503) 2024-05-23 15:50:59 +02:00
rpc Extract a proto crate out of rpc (#12852) 2024-06-10 12:49:53 -06:00
search Search in selections (#10831) 2024-06-05 13:42:51 -06:00
semantic_index Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
snippet html: Add support for autoclosing of tags (#11761) 2024-05-20 17:00:27 +02:00
sqlez Rename RemoteProject -> DevServerProject (#11301) 2024-05-02 11:00:08 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
sum_tree Introduce Editor::insert_flaps and Editor::remove_flaps (#12096) 2024-05-21 20:23:37 +02:00
supermaven Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
supermaven_api Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
tab_switcher Introduce recent files ambient context for assistant (#11791) 2024-05-14 13:48:36 +02:00
task task: Add re-run task button to terminal title (#12379) 2024-05-29 11:40:43 +02:00
tasks_ui task: Rebind UseSelectedQuery in modal to F2 (#12601) 2024-06-03 12:52:44 +02:00
telemetry_events Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
terminal Bump alacritty to fix some file descriptor yuck (#12687) 2024-06-05 09:12:05 -06:00
terminal_view Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
text Remove headers from prompt library picker (#12889) 2024-06-11 15:59:30 +02:00
theme Hoist indexmap to workspace level (#12901) 2024-06-11 15:31:55 -04:00
theme_importer Hoist indexmap to workspace level (#12901) 2024-06-11 15:31:55 -04:00
theme_selector Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui Overhaul inline assistant (#12846) 2024-06-11 12:39:45 +02:00
ui_text_field Allow UI font weight to be assigned in settings (#12333) 2024-05-26 23:06:58 -06:00
util Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
vcs_menu vcs_menu: Fix header taking up too much space (#12646) 2024-06-04 19:13:21 +02:00
vim Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
welcome Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
workspace Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
worktree Refactor: Make it possible to share a remote worktree (#12775) 2024-06-07 12:53:01 -07:00
zed Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869) 2024-06-11 11:43:12 -07:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00