TL;DR:
- JetBrains updates AI Assistant, introducing enhanced controls for code sharing.
- New “.noai” file empowers organizations to fully disable AI Assistant within projects.
- Code sharing with LLM providers balanced with privacy concerns and product improvement.
- Telemetry for product enhancement captures user interactions without third-party sharing.
- AI Assistant receives custom prompt capabilities and “explain runtime error” feature.
- “Explain RegExp/SQL/Cron” aids comprehension of complex programming elements.
- AI Assistant remains in limited preview with a waitlist; pricing for wider availability is pending.
Main AI News:
In a stride towards addressing the concerns of enterprises aiming to safeguard their proprietary code, JetBrains has unveiled a noteworthy update to its AI Assistant, currently in its preview phase. This update introduces a novel mechanism enabling organizations to exercise greater control over code sharing with third-party entities, particularly Large Language Model (LLM) providers.
Dmitry Jemerov, Head of the IntelliJ ML team at JetBrains, shared insights into this enhancement, stating, “When we initially introduced the AI Assistant, several of our clients emphasized the need for mechanisms to limit its application. This requirement stemmed from corporate policies that bar the dissemination of source code to external parties.” In response to this feedback, the JetBrains team has introduced the concept of a ‘.noai’ file, which can be placed in the root directory of a project. The presence of this file would lead to a complete deactivation of all AI Assistant functionalities within the project.
Jemerov further assured stakeholders, “Our commitment to addressing these concerns doesn’t stop here. We are committed to exploring further avenues that empower organizations with precise controls over the utilization of the AI Assistant.”
The strategy employed by the AI Assistant in managing code sharing comprises two distinct aspects. Primarily, there exists a requisite level of code sharing to facilitate the functionality of the LLM provider. According to the documentation, engaging AI features entails the transmission of requests and code segments to the LLM provider. These transmissions encompass not only the prompts entered by users but also supplementary details, including code excerpts, file formats, employed frameworks, and contextual information vital for the LLM’s comprehension. While the prevailing LLM provider is currently OpenAI, leveraging the GPT-4 and GPT-3.5 models, this landscape might evolve in the future.
Secondly, an optional telemetry feature for refining product performance comes into play. This telemetry involves capturing “complete interactions between users and the LLM, encompassing both textual inputs and code fragments.” JetBrains utilizes this data for internal enhancement purposes but refrains from sharing it with external entities or utilizing it for model training. This data-sharing facet is solely operational in preview iterations of the JetBrains Integrated Development Environments (IDEs). Users retain the ability to disable this feature through settings, and the captured data is retained for a maximum period of one year. This element of data comprehension and user interaction is pivotal in refining the product’s efficacy.
Although the precise approach by which the LLM provider handles shared code remains undisclosed by JetBrains, it is emphasized that such processing adheres to the prescribed data collection and utilization policies. OpenAI, for instance, emphasizes that API inputs and outputs are not incorporated into training data without explicit consent from users. Addressing comparisons with GitHub Copilot, Jemerov noted, “Both Copilot and AI Assistant employ a similar code sharing mechanism. They channel your code to an LLM, with neither tool repurposing your code for training code generation models.”
Further enhancements to the AI Assistant entail the incorporation of personalized prompts for interactions with the AI chat, complete with limited contextual information. Additionally, a novel “explain runtime error” feature is introduced, catering to Java and Python programming domains.
Another noteworthy feature is the “Explain RegExp/SQL/Cron” functionality, catering to languages that are often perplexing, especially for novices. Regular Expressions find utility in pattern identification within text, SQL (Structured Query Language) is the cornerstone of database querying and manipulation, and Cron facilitates task scheduling on Unix-like systems.
A distinct observation during testing included the Explain RegExp feature, which exhibited minor variations in responses while evaluating identical expressions, although the accuracy remained consistent. The AI Assistant occasionally offers a detailed step-by-step elucidation of the expression and alternates with more concise summaries.
Conclusion:
The latest updates to JetBrains’ AI Assistant showcase a strategic alignment with corporate needs for controlled code management. The introduction of a “.noai” file and privacy-conscious telemetry indicates a commitment to address data privacy concerns. Additionally, the incorporation of custom prompts, error explanations, and assistance in deciphering intricate programming languages highlights the assistant’s evolving versatility. As the AI Assistant remains in preview, these advancements signify a progressive step towards providing businesses with a controlled and supportive coding environment, ensuring privacy while harnessing the power of AI technology.