Commit Graph
12762 Commits
Author SHA1 Message Date
KCaverly 05ae978cb7 move OpenAICompletionProvider to providers location 2023-10-22 13:57:13 +02:00
KCaverly 3712794e56 move OpenAILanguageModel to providers folder 2023-10-22 13:47:28 +02:00
KCaverly a62baf34f2 rename templates to prompts in ai crate 2023-10-22 13:46:49 +02:00
KCaverly 0b57ab7303 cleaned up truncate vs truncate start 2023-10-22 13:34:22 +02:00
Kyle Caverly 9c49191031 decrease temperature for inline assist on code content (#3145)
"Temperature" is a parameter in OpenAI GPT models, to control for
randomess in the generated content. To decrease the probability of
either escaping the markdown blocks and creating invalid code, we
decreased temperature for all Non-Prose files. For Markdown or Plain
Text, in which more creativity may be a good thing, we increase the
temperature to allow for more randomness. Along with this, we ask the
generate inline prompt to include only the code and not markdown blocks,
as it appears that lower temperature may decrease the probability of
introducing random markdown blocks.

Release Notes (Internal Only):
- Decrease temperature for inline assist on code content.
2023-10-19 16:11:29 -04:00
KCaverly 71fb23f769 decrease temperature for inline assist on code content 2023-10-19 15:44:49 -04:00
Kyle Caverly e45491d2f8 Introduction of PromptTemplate and PromptChains (#3139)
(This PR was written 100% by the Inline Assistant)

This PR brings in new components into our ai and assistant crates namely
PromptTemplate and PromptChains. They offer a new way to generate
prompts that allow for a more flexible and dynamic approach than before.

Release Notes:
- Introduced PromptTemplate: an abstract base for individual parts of
the prompt.
- Added PromptChains: manage multiple PromptTemplates, sort them based
on priority and regulate the output size based on tokens.
- Provided new PromptArguments structure to encapsulate arguments needed
for PromptTemplate.
    - Extended repository_context to include PromptCodeSnippet.
2023-10-19 14:44:43 -04:00
KCaverly 19c2df4822 outlined when truncation is taking place in the prompt 2023-10-19 14:33:52 -04:00
Kirill Bulatov 999e9c3d5d Sort hint request ranges before asserting to avoid flackiness (#3142) 2023-10-19 11:11:47 +03:00
Kirill Bulatov 40104c06e2 Sort hint request ranges before asserting to avoid flackiness 2023-10-19 11:05:47 +03:00
KCaverly 178a84bcf6 progress on smarter truncation strategy for file context 2023-10-18 17:56:59 -04:00
KCaverly 587fd707ba added smarter error handling for file_context prompts without provided buffers 2023-10-18 16:40:09 -04:00
KCaverly f59f2eccd5 added dumb truncation strategies to file_context and generate 2023-10-18 16:32:14 -04:00
KCaverly a0e01e075d fix for error when truncating a length less than the string length 2023-10-18 16:31:29 -04:00
KCaverly 32853c2044 added initial placeholder for truncation without a valid strategy 2023-10-18 16:23:53 -04:00
KCaverly 473067db31 update PromptPriority to accomodate for both Mandatory and Ordered prompts 2023-10-18 15:56:39 -04:00
Max Brunsfeld 199740902a Fix possibility of infinite loop in selections_with_autoclose_regions (#3138)
Previously, that method could loop forever if the editor's autoclose
regions had unexpected selection ids.

Something must have changed recently that allowed this invariant to be
violated, but regardless, this code should not have relied on that
invariant to terminate like this.
2023-10-18 11:34:35 -07:00
KCaverly aa1825681c update the assistant panel to use new prompt templates 2023-10-18 14:20:12 -04:00
Max BrunsfeldandPiotr 655c9ece2d Fix possibility of infinite loop in selections_with_autoclose_regions
Previously, that method could loop forever if the editor's autoclose
regions had unexpected selection ids.

Co-authored-by: Piotr <piotr@zed.dev>
2023-10-18 11:16:14 -07:00
Joseph T. Lyons 4e68b588be collab 0.25.0 2023-10-18 13:17:17 -04:00
KCaverly b9bb27512c fix template ordering during prompt chain generation 2023-10-18 13:10:31 -04:00
KCaverly fa61c1b9c1 add prompt template for generate inline content 2023-10-18 13:03:11 -04:00
Joseph T. Lyons cf429ba284 v0.110.x dev 2023-10-18 12:31:12 -04:00
KCaverly 178a79fc47 added prompt template for file context without truncation 2023-10-18 12:29:10 -04:00
Piotr Osiewicz 99121ad5cd buffer_search: Discard empty search suggestions. (#3136)
Now when buffer_search::Deploy action is triggered (with cmd-f), we'll
keep the previous query in query_editor (if there was one) instead of
replacing it with empty query.

This addresses this bit of feedback from Jose:
> If no text is selected, `cmd + f` should not delete the text in the
search bar when refocusing

Release Notes:
- Improved buffer search by not clearing out query editor when no text
is selected and "buffer search: deploy" (default keybind: cmd-f) is
triggered.
2023-10-18 18:05:13 +02:00
KCaverly 4b8771f3e2 Merge branch 'main' of github.com:zed-industries/zed into prompt_template 2023-10-18 10:42:16 -04:00
Kyle Caverly fea6d70d4d return code inside a markdown block during inline assist (#3137)
Reverted prior small change in inline prompting.
We should now only return code in a markdown block during inline
assists.
2023-10-18 10:40:53 -04:00
KCaverly ed8a2c8793 revert change to return only the text and inside return all text inside markdown blocks 2023-10-18 10:35:11 -04:00
KCaverly 02853bbd60 added prompt template for repository context 2023-10-17 17:29:07 -04:00
KCaverly a874a09b7e added openai language model tokenizer and LanguageModel trait 2023-10-17 16:21:03 -04:00
Joseph T. Lyons 13c7bbbac6 Shorten GitHub release message 2023-10-17 15:47:17 -04:00
Conrad Irwin cc390ba862 Start writing role to database (#3120)
Scaffolding for guest members in channels

Release notes:
- You can now set channels to "public" which will allow anyone to join
and become a member. In a future release guests joining public channels
will have reduced permissions.
2023-10-17 13:40:58 -06:00
Conrad Irwin 04a28fe831 Fix lint errors 2023-10-17 13:32:08 -06:00
Conrad Irwin 1c5e07f4a2 update sidebar for public channels 2023-10-17 13:30:09 -06:00
Kyle Caverly 2795091f0c Introduce Context Retrieval in Inline Assistant (#3097)
This PR introduces a new Inline Assistant feature "Retrieve Context", to
dynamically fill the content in your generation prompt based on relevant
results returned from the Semantic Search for the Prompt.

Release Notes:

- Introduce "Retrieve Context" button in Inline Assistant
2023-10-17 15:04:36 -04:00
Kirill Bulatov c380d437c6 Cap every language server logs (#3134)
* on opening a language server's logs, a new editor for server logs is
now created from `\n`-joined `VecDeque` elements instead of a buffer, as
before
* every `VecDeque` entry is a log line we receiver out of stderr or LSP
server, and their general amount is capped with `let
MAX_STORED_LOG_ENTRIES: usize = 2000;`
* currently opened editor with logs (`Editor::multi_line`) keeps getting
log lines appended and may get over this cap, but only last stored 2000
entries will be restored on reopen
* similarly, cap rpc message logs

Release Notes:

- Improved memory usage by storing less language LSP server and rpc logs
2023-10-17 21:51:21 +03:00
Kirill Bulatov a95cce9a60 Reduce max log lines, clean log buffers better 2023-10-17 21:47:21 +03:00
Kirill Bulatov 08af830fd7 Do not create buffers for rpc logs 2023-10-17 21:43:34 +03:00
Kirill Bulatov c872c86c4a Remove another needless log buffer 2023-10-17 21:43:34 +03:00
Kirill Bulatov ba5c188630 Update editor with current buffer logs 2023-10-17 21:43:34 +03:00
Kirill Bulatov 5a4161d293 Do not detach subscriptions 2023-10-17 21:43:34 +03:00
Kirill Bulatov 33296802fb Add a rough prototype 2023-10-17 21:43:34 +03:00
Nate Butler 8db389313b Add link & public icons 2023-10-17 13:34:51 -04:00
Piotr Osiewicz 31241f48be workspace: Do not scan for .gitignore files if a .git directory is encountered along the way (#3135)
Partially fixes zed-industries/community#575

This PR will see one more fix to the case I've spotted while working on
this: namely, if a project has several nested repositories, e.g for a
structure:
/a
/a/.git/
/a/.gitignore
/a/b/
/a/b/.git/
/a/b/.gitignore

/b/ should not account for a's .gitignore at all - which is sort of
similar to the fix in commit #c416fbb, but for the paths in the project.

The release note is kinda bad, I'll try to reword it too.
- [ ] Improve release note.
- [x] Address the same bug for project files.

Release Notes:
- Fixed .gitignore files beyond the first .git directory being respected
by the worktree (zed-industries/community#575).
2023-10-17 18:56:03 +02:00
Conrad Irwin 5b39fc8123 Temporarily join public channels as a member 2023-10-17 10:29:43 -06:00
Conrad Irwin 3412becfc5 Fix some tests 2023-10-17 10:15:20 -06:00
Conrad Irwin 2456c077f6 Fix channel test ordering 2023-10-17 10:01:31 -06:00
KCaverly ad92fe49c7 implement initial concept of prompt chain 2023-10-17 11:58:45 -04:00
Conrad Irwin 9cc55f895c Merge branch 'main' into guests 2023-10-17 09:54:17 -06:00
Conrad Irwin 851701cb6f Fix get_most_public_ancestor 2023-10-17 09:41:34 -06:00