6.6 KiB
| stage | group | info | description |
|---|---|---|---|
| Create | Code Creation | Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review. | Code Suggestions documentation for developers interested in contributing features or bugfixes. |
Code Suggestions development guidelines
Code Suggestions development setup
The recommended setup for locally developing and debugging Code Suggestions is to have all 3 different components running:
- IDE Extension (e.g. VS Code Extension).
- Main application configured correctly (e.g. GDK).
- AI Gateway.
This should enable everyone to see locally any change in an IDE being sent to the main application transformed to a prompt which is then sent to the respective model.
Setup instructions
-
Install and run locally the VS Code Extension:
- Add the
"gitlab.debug": trueinfo to the Code Suggestions development config:- In VS Code, go to the Extensions page and find "GitLab Workflow" in the list.
- Open the extension settings by clicking a small cog icon and select "Extension Settings" option.
- Check a "GitLab: Debug" checkbox.
- If you'd like to test code suggestions are working from inside the VS Code Extension, then follow the steps to set up a personal access token with your GDK inside the new window of VS Code that pops up when you run the "Run and Debug" command.
- Once you complete the steps below, to test you are hitting your local
/code_suggestions/completionsendpoint and not production, follow these steps:- Inside the new window, in the built in terminal select the "Output" tab then "GitLab Language Server" from the drop down menu on the right.
- Open a new file inside of this VS Code window and begin typing to see code suggestions in action.
- You will see completion request URLs being fetched that match the Git remote URL for your GDK.
- Once you complete the steps below, to test you are hitting your local
- Add the
-
Main Application (GDK):
- Install the GitLab Development Kit.
- Enable Feature Flag
ai_duo_code_suggestions_switch:- In your terminal, go to your
gitlab-development-kit>gitlabdirectory. - Run
gdk rails consoleorbundle exec rails cto start a Rails console. - Enable the Feature Flag for the code suggestions tokens API by calling
Feature.enable(:ai_duo_code_suggestions_switch)from the console.
- In your terminal, go to your
-
Set up AI Gateway. You can do this in two ways:
- Run the AI Gateway as part of your GDK.
- Run the AI Gateway externally:
-
Uncomment or add the following variables in the
.envfile for all debugging insights. You may need to adjust the filepath (remove..) for this log to show in theai-assistroot directory.AIGW_LOGGING__LEVEL=debug AIGW_LOGGING__FORMAT_JSON=false AIGW_LOGGING__TO_FILE=../modelgateway_debug.log -
Watch the new log file
modelgateway_debug.log.tail -f modelgateway_debug.log | fblog -a prefix -a suffix -a current_file_name -a suggestion -a language -a input -a parameters -a score -a exception
-
Update the main application (GDK) to reference the AI Gateway URL.
- Set the
AI_GATEWAY_URLenvironment variable.- If you set up the AI Gateway externally, run
export AI_GATEWAY_URL=http://localhost:5052. - If you set up the AI Gateway through GDK, you can get the AI Gateway URL by running
gdk status, afterwards runexport AI_GATEWAY_URL=<the address set by gdk>.
- If you set up the AI Gateway externally, run
- Start or restart GDK (
gdk startorgdk restart).
- Set the
Setup instructions to use staging AI Gateway
When testing interactions with the AI Gateway, you might want to integrate your local GDK with the deployed staging AI Gateway. To do this:
-
You need a cloud staging license that has the Code Suggestions add-on, because add-ons are enabled on staging. Drop a note in the
#s_fulfillmentors_fulfillment_engineeringinternal Slack channel to request an add-on to your license. See this handbook page for how to request a license for local development. -
Set environment variables to point customers-dot to staging, and the AI Gateway to staging:
export GITLAB_LICENSE_MODE=test export CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com export AI_GATEWAY_URL=https://cloud.staging.gitlab.com/ai -
Restart the GDK.
-
Ensure you followed the necessary steps to enable the Code Suggestions feature.
-
Test out the Code Suggestions feature by opening the Web IDE for a project.
Setup instructions to use GDK with the Code Suggestions Add-on
On February 15, 2023 we will require the code suggestions add-on subscription to be able to use code suggestions. To set up your GDK for local development using the add-on, please follow these steps:
-
Drop a note in the
#s_fulfillmentors_fulfillment_engineeringinternal Slack channel to request an activation code with the Code Suggestions add-on. -
Someone will reach out to you with a code.
-
Follow the activation instructions:
- Set environment variables.
export GITLAB_LICENSE_MODE=test export CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com export GITLAB_SIMULATE_SAAS=0- Restart your GDK.
- Go to
/admin/subscription. - Remove any active license.
- Add the new activation code.
-
Inside your GDK, navigate to Admin Area > GitLab Duo Pro, go to
/admin/code_suggestions -
Filter users to find
rootand click the toggle to assign a GitLab Duo Pro add-on seat to the root user