LogoLogo
Tabnine websiteContact Sales
  • 👋Welcome
    • Overview
      • Architecture
        • Deployment options
      • Security
      • Privacy
      • Protection
        • Provenance and Attribution
      • Personalization
        • Tabnine’s Personalization in Depth
        • Connection: Global Codebase Awareness
      • AI Models
        • Tabnine's private and protected Universal models
        • Tabnine's fine-tuned AI models
      • Integrations
        • Atlassian Jira
      • System Requirements
      • Supported Languages
      • Supported IDEs
      • Tabnine Subscription Plans
        • Dev Preview
        • Dev
        • Pro
        • Enterprise (SaaS)
        • Enterprise (private installation)
    • Support & Feedback
  • 🚀Getting started
    • Install
      • Client setup (SaaS)
        • VS Code
          • Install Tabnine in VS Code
          • Activate Tabnine in VS Code
        • JetBrains IDEs
          • Install Tabnine in a JetBrains IDE
          • Activate Tabnine in a JetBrains IDE
        • Visual Studio
          • Install Tabnine in Visual Studio 2022
          • Activate Tabnine in Visual Studio 2022
        • Eclipse
          • Install Tabnine in Eclipse
          • Activate Tabnine in Eclipse
        • Sign in
          • Using an email
          • Using an authentication token
      • Client setup (private installation)
        • Join your team (private installation)
        • VS Code (private installation)
        • JetBrains IDEs (private installation)
        • Visual Studio (private installation)
        • Eclipse (private installation)
    • Quickstart Guide
      • Menus and Icons
    • Getting the Most from Tabnine Code Completions
      • Pause (snooze)
    • Getting the Most from Inline Actions
    • Getting the Most from Tabnine Chat
      • Launching Tabnine Chat
      • Interacting with Tabnine Chat
      • Reviewing suggestions
      • Writing prompts
      • Chat Context
        • Understanding Context
        • Jira Connection
        • Context Scoping
      • Conversing with Tabnine Chat
      • Switching between chat AI models
      • Image Prompts
      • Tabnine's Prompting Guide
        • Getting Started
        • Basic Prompting
          • Be specific and clear
          • Define the context
          • Start a fresh conversation as appropriate
          • Include necessary details
          • Ask for examples
          • Be concise but complete
  • 💪Software Development with Tabnine
    • Overview
    • Plan
    • Create
    • Test
      • Intro to the Test Agent
      • Test Agent Workflow
      • Custom Commands
      • Generate Test Files with @Mentions
    • Review
    • Fix
    • Document
    • Explain
    • Maintain
  • 🏭Administering Tabnine
    • Start a team
    • Manage a team
    • SaaS
      • Tabnine Pro team admin
        • Purchase Tabnine Pro
        • Adding and inviting users to Tabnine Pro
        • Assigning an admin role to a team member
        • Removing a team member
        • Tabnine Pro: Manage subscription and billing
        • Tabnine Pro - Change your payment method
        • Tabnine Pro - Change plan from monthly to annual
        • Unsubscribe from Tabnine Pro plan
      • Joining a Tabnine Pro team
      • Enterprise (SaaS) team admin
        • Set up a Tabnine Enterprise (SaaS) account
        • Invite team members
        • Manage your team
        • AI models for Chat (Enterprise SaaS)
      • Enterprise (SaaS) team member
        • Join your Tabnine team by invitation email (team member)
        • Join Tabnine team by link (member)
    • Private installation
      • Server setup guide
        • Kubernetes (MicroK8s) Installation guide
        • Deployment guide
          • Tabnine update guide
        • Air-gapped deployment guide
      • Admin guide
        • Monitoring Tabnine
        • Prometheus Operator install
        • Audit logs
      • Managing your team
        • Tabnine teams
        • Roles in an enterprise
        • Inviting users to your team
        • Deactivating and reactivating users
        • Deleting PII data of a deactivated user
        • Reset user's password
        • Usage reports
          • Reports Glossary
          • CSV-based reports (V2)
            • Configuring scheduled CSV reports
            • CSV-based reports V1 (Depracted since version 5.7.0
          • Usage API
        • Settings
          • General
          • Single Sign-On (SSO)
          • Personalization (f.k.a. Workspace)
            • Connecting to Remote Repositories
          • Email
          • License
          • Models
          • Access Tokens
        • IdP Sync
      • Release Notes
  • 📣Product Updates
    • What's new?
      • What's new? (August 2024)
      • What's new? (July 2024)
      • What's new? (June 2024)
      • What's new? (May 2024)
      • What's new? (April 2024)
      • What's new? (March 2024)
      • What's new? (February 2024)
      • What's new? (January 2024)
Powered by GitBook
On this page
  • Code privacy
  • Querying the Tabnine AI model for AI coding assistance
  • Personalization
  • Data plane in self-hosted / air-gapped deployment
  • Tabnine cluster
  • Tabnine client

Was this helpful?

  1. Welcome
  2. Overview

Privacy

Tabnine AI code assistant: Privacy

Code privacy

When using Tabnine models, your code remains private. Tabnine NEVER retains or shares any of your code with third parties.

With Tabnine models (the code completion model and the Tabnine Protected and Tabnine + Mistral chat models), Tabnine uses ephemeral processing whenever dealing with user code. This means that user code is only retained on the server for the duration of computing the desired result (i.e., completions and embeddings) and is never persisted.

With Tabnine Chat, you have the option of using third-party models. The privacy policies and the protection offered by these third-party models may be different from the Tabnine models.

Querying the Tabnine AI model for AI coding assistance

As you code, the Tabnine client (plugin) requests AI assistance from the Tabnine cluster.

For code suggestions, the process occurs in the background as you code. For chat, this request process occurs once the user asks a question.

These requests include some code from the local project as context (the “context window” as described below) to allow Tabnine to return the most relevant and accurate answers. This context window may include elements from your local environment, such as:

  • Chat history (for chat)

  • Lines of code

  • Variables

  • Type declarations

  • Functions

  • Objects

  • Related imports from the current file

  • Related files

  • Syntactic and semantic error reports

This context is deleted immediately after the server returns the answer to the client.

Tabnine doesn’t retain any user code beyond the immediate time frame required for inferencing the model. This is what we call ephemeral processing.

The sole purpose of the context window is to facilitate the most accurate answers possible. The moment that output is generated, the code is discarded and is never stored.

With Tabnine models, your code is not shared with third parties

We develop our AI models based on our own pioneering experience and the best-of-breed, permissive, open source technologies in the market.

No third-party APIs are used.

Tabnine does not train its models on your code

Tabnine’s code completion model and Tabnine Protected chat model are only trained on open source code with permissive licenses.

Private fine-tuned AI models are pretrained on private code by Tabnine and are only accessible by your team members and stored on your private setup.

Clarification regarding the Magic Moments feature

The code completion examples in the Tabnine Hub (in the IDE) under the Magic Moments tab are saved locally on the user's machine and never leave the computer.

Personalization

  • Your code remains private; Tabnine never stores your code.

  • Tabnine does not share any of your code with third parties.

  • Tabnine does not train on your code.

Data plane in self-hosted / air-gapped deployment

The Tabnine cluster collects operational metrics and logs to ensure system health and quality of service.

In an air-gapped deployment, metrics can be sent to a Prometheus server and logs can be sent to your log aggregator. In a self-hosted deployment, the Tabnine cluster sends operational metrics and logs to Tabnine’s servers to allow improved support when required. No code or PII data is ever sent to Tabnine’s servers.

Tabnine cluster

The Tabnine cluster sends operational metrics and logs (every 1 second) to Tabnine’s servers. Metrics and logs data are retained for a week. This includes:

  • GPU and CPU utilization

  • GPU and CPU memory

  • Server throughput

  • Server latency

Tabnine client

The Tabnine client sends telemetry to Tabnine’s self-hosted server (which is then streamed to Tabnine’s servers) on various user interactions. This includes:

  • Plugin and binary configurations

  • User machine details, including CPU type, available processors, and memory

  • One-way hashed, nonidentifiable data, including user email, hostname, and IP

  • IDE details, including type and version

  • Statistical data: Aggregated number of suggestions/completions per programming language

Last updated 1 year ago

Was this helpful?

This is true even for private deployment options (on-premises and VPC).

Learn more about .

Tabnine's personalization capabilities — including context through local code awareness and connection to software repository for global code awareness — require creating a RAG index of your code. The computation for vector embeddings for the chat requires a lot of resources, and cannot be done locally without stressing the user’s machine. Tabnine performs this computation on the server GPU while keeping the same principles:

👋
Tabnine Enterprise’s
Tabnine’s AI models
Learn more
RAG index