enso-org / enso

Enso Analytics is a self-service data prep and analysis platform designed for data teams.
https://ensoanalytics.com
Apache License 2.0
7.36k stars 322 forks source link

Language Server API for AI #9656

Closed 4e6 closed 6 months ago

4e6 commented 6 months ago

Update the language server API to support the conversational style of interaction with AI

TODO

The currently supported ai/complete method makes a single request to AI, expecting a code snippet in response The new method should support the case when AI may ask for auxiliary information by requesting to evaluate an expression. The client should receive notifications to see the progress of the conversation with the AI happening under the hood.

JaroslavTulach commented 6 months ago

I'd like to point out the potential similarity of this task with

Also in the Table.join case the computation of dynamic drop downs wants to access additional values. In the current PoC

case such an access is achieved by a builtin that exposes runtime cache content and allows the Enso code computing dynamic drop down content to find value of any Table.join argument via sharing its UUIDs out.

I am convinced there shall be no special AI support in the language server protocol. Whatever IDE needs shall be achieved by IDE invoking an Enso library method, just like visualizations do and widgets do. If we need additional support (to report pending progress for example), we should design a generic language protocol mechanism.

I know that historically the AI support involves special modifications to language server. However that shall ultimately be eliminated - please keep this in mind when designing a new solution. Make sure new features are moving us closer to such "IDE invokes an Enso method" goal and not further.

enso-bot[bot] commented 6 months ago

Dmitry Bushev reports a new STANDUP for yesterday (2024-04-29):

Progress: Finished the AI handler functionality. Added Visualization.AI.print method. Updated the system prompt to use the new printing method. Created the PR It should be finished by 2024-05-04.

Next Day: Next day I will be working on the #9656 task. Continue working on the task

enso-bot[bot] commented 6 months ago

Dmitry Bushev reports a new STANDUP for today (2024-04-30):

Progress: Returning to the ydoc project. Implemented the ability to customize the ydoc rul in the gui. Started working on running the script using the module path. It should be finished by 2024-05-04.

Next Day: Next day I will be working on the #9656 task. Continue working on the task

enso-bot[bot] commented 6 months ago

Dmitry Bushev reports a new STANDUP for yesterday (2024-05-01):

Progress: Finishing the the ydoc project. Fixed the last remaining issues. Fixed the linter errors. Addressed the review comments. It should be finished by 2024-05-04.

Next Day: Next day I will be working on the #9656 task. Continue working on the task

enso-bot[bot] commented 6 months ago

Dmitry Bushev reports a new STANDUP for today (2024-05-02):

Progress: Finishing the the ai task. Addressed the review comments. Improved error handling. Tested in Chrome browser session. Updated the PR It should be finished by 2024-05-04.

Next Day: Next day I will be working on the #9656 task. Continue working on the task

enso-bot[bot] commented 6 months ago

Dmitry Bushev reports a new STANDUP for today (2024-05-03):

Progress: Finished the the ai task. Fixed an issue with the polyglot.data.Tree JSON serialization. Started working on running Ydoc as a part of the language server. Created a draft PR. It should be finished by 2024-05-04.

Next Day: Next day I will be working on the #9656 task. Continue working on the task