Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: feat(amazonq): AI code gen % for Q features #5215

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

leigaol
Copy link
Contributor

@leigaol leigaol commented Dec 19, 2024

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Description

With the release of many Q features(Inline Suggestion, chat, inline chat, /dev, /test, /doc, /review, /transform), we need to know the % code written by all Q features. This requires calculating and reporting the user written code. The reporting of the code contribution of each Q features was already implemented.

% Code Written by Q = Code Written by Q / ( Code Written by Q + Code Written by User)

Ref: aws/aws-toolkit-vscode#5991

Calculate and report the user written code for each language by listening to document change events while Q is not making changes to the editor.

We add flags to know whether Q is making temporary changes for suggestion rendering or Q suggestion is accepted, by doing so, the document change events are coming from the user.

We ignore certain document changes when their length of new characters exceeds 50. Previous data driven research has shown that user tend to copy a huge file from one place to another, making the user written code count skyrocketing but that is actually some existing code not written by the user.

We plan to first collect data from IDEs and let it run in the background in shadow mode before we finish the service side aggregation, fix possible bugs and eventually present the AI code written % to the customers.

Checklist

  • My code follows the code style of this project
  • I have added tests to cover my changes
  • A short description of the change has been added to the CHANGELOG if the change is customer-facing in the IDE.
  • I have added metrics for my changes (if required)

License

I confirm that my contribution is made under the terms of the Apache 2.0 license.

@leigaol leigaol requested review from a team as code owners December 19, 2024 22:42
@leigaol leigaol marked this pull request as draft December 19, 2024 22:42
@leigaol leigaol changed the title feat(amazonq): AI code gen % for Q features WIP: feat(amazonq): AI code gen % for Q features Dec 19, 2024

private fun isTelemetryEnabled(): Boolean = AwsSettings.getInstance().isTelemetryEnabled

fun onQFeatureInvoked() {

Check warning

Code scanning / QDJVMC

Unused symbol Warning

Function "onQFeatureInvoked" is never used
qInvocationCount.incrementAndGet()
}

fun onQStartsMakingEdits() {

Check warning

Code scanning / QDJVMC

Unused symbol Warning

Function "onQStartsMakingEdits" is never used
isQMakingEdits.set(true)
}

fun onQFinishesMakingEdits() {

Check warning

Code scanning / QDJVMC

Unused symbol Warning

Function "onQFinishesMakingEdits" is never used
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant