Home / Blog /
Introducing new, more highly personalized AI software recommendations
//

Introducing new, more highly personalized AI software recommendations

//
Tabnine Team /
5 minutes /
February 22, 2024

We’re excited to announce another leap forward in the performance and capability of the Tabnine AI coding assistant: highly personalized recommendations for every developer through local code awareness, and recommendations tailored to engineering teams through integrations with their global codebase. 

Tabnine can now use the context of our users and enterprise customers to deliver more precise and more personalized recommendations for code generation, code explanations, and guidance, and for test and documentation generation. Starting today, you can increase Tabnine’s contextual awareness by enabling it to become aware of your environment — from a developer’s local IDE to the entire code base — and receive code completions, explanations and documentation that are specifically tailored to you and your engineering team.

Notably, Tabnine continues to stay true to our values and delivers these highly personalized recommendations without compromising our customers’ privacy. We continue to commit to advanced encryption and zero data retention for our SaaS users and offer company codebase awareness within our private, customer-deployed product. By significantly improving the quality of the output, these updates will help engineering teams further accelerate and simplify software development without sacrificing the security of legal compliance.

What can you do with code awareness?

With code awareness, Tabnine takes into account the relevant parts of your project (e.g., existing APIs, frameworks, and patterns) and provides results that are more accurate and more specific to you.

Ask Tabnine questions in natural language and get answers that are tailored to you

For example, Tabnine will tell you how to connect to a database in a way that’s used for your project instead of connecting to any available database or connecting to a database in a different or generalized way.

  • “How do I connect to the database?”
  • “How do I cache the user details?”
  • “How do I encrypt users’ passwords?”

Ask Tabnine to generate code that deals with your business application domain using your project-specific elements

For example, if you have an app to book flights, you can ask Tabnine to generate code that validates the flight data based on the logic within that specific app.

Ask Tabine to adhere to the syntax, semantics, and style of your project

Generate code that aligns with the syntax and semantics of elements in your project, thus reducing potential hallucinations. Check code relative to project-specific logic. Be consistent with style and coding patterns when generating or completing code.

Use elements of your code to ask more specific questions

Generate a test for function X using the structure, style, and syntax used for the test of function Y.

 

Why do we need context awareness?

In the past few years, AI coding assistants have gone from a “nice to have”’ for savvy developers to a “must have,” being implemented by engineering managers across their teams as they’ve proven to increase developers’ productivity, efficiency, and satisfaction. Early results from adopting AI software development tools have been promising, but there’s still significant room to improve, especially when it comes to continuing to improve the quality of the responses in the context of what the user is asking.

The LLMs that each of the AI coding assistants uses have some inherent limitations (even an engineered-for-purpose coding model like Tabnine’s). By design, these LLMs are universal; although they’ve been trained on vast amounts of data and contain billions of parameters, they’re not generally aware of the specific code and distinctive patterns of an individual organization. This lack of context and domain-specific knowledge likens their recommendations more to a skilled software engineer off the street rather than a deeply experienced engineer who is familiar with how an organization works. The result is that the recommendations from AI coding assistants, while accurate, often aren’t specifically tailored to an individual developer’s needs. 

Just like you need context to intelligently answer questions in real life, coding assistants also need context to intelligently answer questions. Contextual awareness augments the LLMs by providing the subtle nuances that make a developer and organization unique. Tabnine achieves this context awareness in two ways: 

  • Context through local code awareness: Tabnine can access locally available data in a developer’s IDE to provide more accurate and relevant results. This includes variable types used by the developer near the completion point in the code, comments they’ve added, open files they’ve interacted with, imported packages and libraries, and open projects. Tabnine automatically identifies the information that is relevant, and uses it as context to provide personalized results. Additionally, developers can help Tabnine focus on specific elements in the workspace through “mentions” — simply use the @ symbol to tag unopened files, classes, or methods directly into Tabnine Chat.
  • Connection to your software repository for global code awareness: The context in the local IDE is valuable for an individual developer, but the most valuable context for an engineering team typically exists beyond just what’s available in the developer’s IDE. This is especially true for enterprises where teams of thousands of developers collaborate on a variety of projects. Tabnine administrators can connect Tabnine to their organization’s code repositories, significantly increasing the context that Tabnine uses to provide code recommendations, explain code, and generate tests and documentation. This capability is currently in Private Preview for Tabnine Enterprise customers with on-premises or VPC deployments. 

In addition to the personalization of the AI assistant through the new capabilities, Tabnine continues to offer model customization to further enrich the capability and quality of the output. Enterprise engineering teams can benefit from a custom “Tabnine + You” model that fine-tunes our universal model with a customer’s own code. 

Personalized results without sacrificing privacy 

The personalized recommendations from Tabnine don’t come at the expense of giving away access or control over your proprietary code and user data. 

To achieve personalization, Tabnine uses retrieval-augmented generation (RAG) to provide the Tabnine AI coding assistant with knowledge of your organization’s specific characteristics and code. RAG is widely used to improve AI performance and not only reduces LLM hallucinations but also helps to overcome the inherent limitations of training data. Continuing to honor our commitment to your privacy, any information Tabnine uses to support RAG remains exclusively yours. Tabnine commits to zero retention or sharing of any customer data, ensuring your privacy at all times. 

Here’s a brief description of how we handle data and maintain privacy. 

  • Local code awareness: Tabnine uses a combination of our unique LLM and RAG to generate a response to a developer prompt. RAG retrieves the information from your local IDE and combines it with the prompt. This augmented prompt is then fed to the Tabnine model that generates the personalized response. Whether you use Tabnine SaaS or self-deploy Tabnine Enterprise, this information is encrypted in transit and is stored only in memory while the response is generated. Tabnine doesn’t retain any information retrieved by RAG and doesn’t train our models on any customer data. 

  • Global code awareness: Once Tabnine is connected to your organization’s code repos, RAG retrieves the information from the code repositories as well as your developers’ local environment and combines it with the user prompt, which is then fed to the model to get a personalized response. No data is shared outside of your organization as Tabnine is deployed on-premises or in a VPC.

Check out the Docs for more details on our data privacy standards. 

How to take advantage of the new highly personalized recommendations

There’s no additional cost to get these new personalized results from Tabnine. Every Tabnine Pro user is already benefiting from local code awareness. Tabnine Enterprise users can follow these instructions to activate local code awareness for their teams and can request access to the private preview of global code awareness by contacting their sales representative or our support team. 

Sign up for our webinar to see this new level of personalization in action or check out the Docs to learn more. If you’re not yet a customer, you can sign up for Tabnine Pro today – it’s free for 90 days.