Skip to content

Commit

Permalink
JFrog CLI AI assistant documentation and terms (#159)
Browse files Browse the repository at this point in the history
  • Loading branch information
sverdlov93 authored Sep 24, 2024
1 parent a0da383 commit 2ebf6fa
Show file tree
Hide file tree
Showing 5 changed files with 198 additions and 1 deletion.
Binary file added jfrog-applications/.gitbook/assets/cli-ai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions jfrog-applications/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
* [Configurations](jfrog-cli/get-started/configurations/README.md)
* [JFrog Platform Configuration](jfrog-cli/get-started/configurations/jfrog-platform-configuration.md)
* [Proxy Support](jfrog-cli/get-started/configurations/proxy-support.md)
* [CLI AI Assistant](jfrog-cli/cli-ai/README.md)
* [AI Terms and Conditions](jfrog-cli/cli-ai/terms.md)
* [CLI for JFrog Artifactory](jfrog-cli/cli-for-jfrog-artifactory/README.md)
* [Environment Variables](jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md)
* [Authentication](jfrog-cli/cli-for-jfrog-artifactory/authentication.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ As shown in the above [Including the Script](broken-reference/) and [Referencing
Configurations can be done via Project Settings > CI/CD > Variables:

| Variable | Usage |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| JF\_DOCKER\_REGISTRY | Docker registry in Artifactory. For more info, see [Getting Started with Artifactory as a Docker Registry](https://www.jfrog.com/confluence/display/JFROG/Getting+Started+with+Artifactory+as+a+Docker+Registry) |
| JFROG\_CLI\_BUILD\_PROJECT | JFrog project key to be used by commands which expect build name and build number. Determines the project of the published build. |
| JFROG\_CLI\_VERSION | Use a specific JFrog CLI version instead of the latest version. The minimal version allowed is: 2.17.0 |
Expand Down
109 changes: 109 additions & 0 deletions jfrog-applications/jfrog-cli/cli-ai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# JFrog CLI AI command assistant

## Overview

The JFrog CLI AI Command Assistant streamlines your workflow by turning natural language inputs into JFrog CLI commands.

Simply describe your desired actions, and the assistant generates commands with all necessary parameters, whether you're uploading artifacts, managing repositories, scanning your code or performing other actions using the JFrog CLI.

Each query is treated individually, and while the interface allows you to refine requests, it doesn’t maintain a chat history.

This tool helps users access the full power of JFrog CLI without needing to remember specific syntax, ensuring efficiency and accuracy.

{% hint style="info" %}
Note, This is the first version of JFrog CLI AI, hence it is limited only to Artifactory and Xray commands.
{% endhint %}

![](../../.gitbook/assets/cli-ai.png)

## How to Use the JFrog CLI AI Command Assistant

To use the JFrog CLI AI Command Assistant, follow these simple steps:

### 1. Open your terminal
Ensure that you are in a terminal session where JFrog CLI is installed and configured.

### 2. Supported Version Validation
This feature is available starting from CLI version 2.68 and above. To validate your version, run:

`jf --version`

### 3. Enter the command
Type the following command to initiate the AI assistant:

`jf how`

### 4. Provide your request
After entering the command, you will see a prompt:

**Your request:**

Describe in natural language what you would like the JFrog CLI to do. The AI assistant will generate the exact CLI command needed.

For example, you might type:

`Your request: How to upload all files in the 'build' directory to the 'my-repo' repository?`


### 5. Receive the generated command
The AI assistant will process your request and output the corresponding JFrog CLI command, including all necessary parameters.
For the example above, it will generate:

`jf rt u build/ my-repo/`

### 6. Execute or modify
You can now copy the generated command and run it in your terminal.

If needed, you can refine your request and try again.

## FAQ

<details>
<summary>How does JFrog CLI AI Command Assistant work?</summary>


When you make a request using the JFrog CLI AI Command Assistant, your input is sent to a model that generates the appropriate JFrog CLI command. This model has been fine-tuned to produce accurate responses based on various inputs. The fine-tuned model is hosted on Azure OpenAI.
</details>

<details>
<summary>On what data is the model trained?</summary>


The model was trained using a dataset built from two primary sources:
- **JFrog CLI Public Documentation**: This includes detailed information and examples from JFrog’s publicly available resources.
- **Internal Questions and Answers dataset**: The dataset also incorporates internally created questions and answers, which help to refine the model’s ability to provide precise and relevant commands.
</details>

<details>
<summary>Does JFrog send customer data to OpenAI’s platform to train its services?</summary>


The data you submit and the responses you receive via JFrog CLI AI are not used to fine-tune or improve our model or services. Each data request is sent to Azure OpenAI individually, over an SSL encrypted service, to process and send back to JFrog.
</details>

<details>
<summary>Are you saving my inputs and outputs?</summary>


No, JFrog does not save users' input and output data.
</details>

<details>
<summary>Are you using my inputs and outputs to train the JFrog CLI AI model?</summary>


No, JFrog does not use your inputs and outputs to train the model.
</details>

<details>
<summary>Does JFrog use my data to serve other customers?</summary>


No, JFrog does not use your data to train the model or serve other customers.
</details>






86 changes: 86 additions & 0 deletions jfrog-applications/jfrog-cli/cli-ai/terms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# JFROG AI ASSISTANT ADDENDUM

**ONLY ACTIVE JFROG CUSTOMERS ARE AUTHORIZED TO USE THE JFROG AI ASSISTANT. ALL OTHER USES ARE PROHIBITED.**

This JFrog AI Assistant Addendum (this “Addendum”) forms part of the JFrog Subscription Agreement or other agreement made by and between JFrog and Customer (the “Agreement”). Capitalized terms not otherwise defined in the body of this Addendum shall have the respective meanings assigned to them in the Agreement. Your use of the JFrog Platform, as applicable, shall continue to be governed by the Agreement.

**THIS ADDENDUM TAKES EFFECT WHEN CUSTOMER (1) CLICKS THE “I ACCEPT” OR SIMILAR BUTTON AND/OR (2) BY ACCESSING OR USING THE APPLICABLE JFROG AI ASSISTANT SERVICE** (respectively, the “AI ASSISTANT SERVICE” and “ADDENDUM EFFECTIVE DATE”). BY DOING SO, CUSTOMER: (A) ACKNOWLEDGES THAT IT HAS READ AND UNDERSTANDS THIS ADDENDUM; (B) REPRESENTS AND WARRANTS THAT IT HAS THE RIGHT, POWER, AND AUTHORITY TO ENTER INTO THIS ADDENDUM AND, IF ENTERING INTO THIS ADDENDUM FOR AN ENTITY, THAT IT HAS THE LEGAL AUTHORITY TO BIND SUCH ENTITY TO THIS ADDENDUM; AND (C) ACCEPTS THIS ADDENDUM AND AGREES THAT IT IS LEGALLY BOUND BY ITS TERMS.

IF CUSTOMER DOES NOT AGREE TO THIS ADDENDUM OR IF CUSTOMER IS A COMPETITOR OF JFROG OR ITS AFFILIATES (OR A PERSON OR ENTITY ACTING ON BEHALF OF A COMPETITOR), PLEASE SELECT THE “I DECLINE” OR SIMILAR BUTTON AND/OR DO NOT UNDER ANY CIRCUMSTANCES ACCESS OR USE THE AI ASSISTANT SERVICE.

## APPLICATION OF THIS ADDENDUM.

### AI Assistant Service.

JFrog offers the applicable AI Assistant Service which references this Addendum, that is designed to enable Customer to:

1. **Generate or receive Output**, in response to Input, for use in connection with the AI Assistant Service; and, if applicable to the specific AI Assistant Service,
2. **View suggested shortcuts and commands**, in response to use of the AI Assistant Service by Customer, for use in connection with the AI Assistant Service (collectively, together with any Content, other than Output, provided to Customer by the AI Assistant Service, and any documentation for the AI Assistant Service, the “Service”).

This Agreement only applies to the Service provided by JFrog and not to a Service provided by a third party.

### Relationship with Agreement.

In the event of any conflict between this Addendum and the Agreement, this Addendum will control, solely to the extent of the conflict. The Service is part of the “JFrog Platform” and the “JFrog Materials”, in each case, as used in the Agreement. “Customer”, as used herein, means the person or entity other than JFrog, that is party to the Agreement or an Order Form thereunder. “JFrog”, as used herein, means the applicable JFrog Contracting Entity in the Agreement. “Customer Data”, as used in the Agreement, excludes AI Assistant Data.

## LICENSE TO SERVICE.

The license to the JFrog Platform set forth in the Agreement includes the right and license, during the Agreement Term, for Customer to access and use the Service. Without limiting the restrictions on use of the JFrog Platform set forth in the Agreement, Customer will not, directly or indirectly, permit, facilitate, or otherwise allow any other person or entity to:

1. Access or use the Service, except for Customer Users;
2. Access the source code or other underlying components of the Service, including the model, model parameters, or model weights;
3. Access, copy, extract, scrape, crawl, or pull from the Service, through manual or automated means, any information, data, materials, text, prompts, images, or other content (“Content”) that has been, is used, or may be used by JFrog, to train, retrain, tune, validate, modify, update, or otherwise improve the Service (“Training Content”);
4. Develop, build, train, or run a machine learning or artificial intelligence application, functionality, logic, model, software system, or process on or using the Service;
5. Intentionally generate Output that is sensitive, confidential, or proprietary information of any third party without authorization, or collect personal data from the Service;
6. Share, generate or prompt any content or engage in behavior that is unlawful, harmful, threatening, obscene, violent, abusive, tortious, defamatory, ridicule, libelous, vulgar, lewd, invasive of another’s privacy, hateful, or otherwise objectionable;
7. Upload or transmit any personal data (except for Customer User Information), viruses, or other malicious content or code into or through the Service; or
8. Access or use the Service in a manner that does not comply with the [JFrog Acceptable Use Policy](https://jfrog.com/acceptable-use-policy/).

## TERM; TERMINATION.

This Addendum commences on the Addendum Effective Date and will remain in effect until the Agreement expires or is terminated, or this Addendum is terminated by JFrog in accordance with this Section, whichever is the earlier (the “Term”). JFrog may terminate or suspend this Addendum, or the availability of the Service, at any time and for any reason by providing Customer with notice, without liability or other obligation to Customer. Termination of this Addendum will not impact the Agreement. Upon any termination or expiration of this Addendum, Customer will promptly cease access and use of the Service.

## AI ASSISTANT CONTENT.

### License to AI Assistant Content.

Customer hereby grants JFrog and its Affiliates a non-exclusive, sublicensable, transferable, royalty-free, fully paid-up, worldwide right and license, to use, reproduce, distribute, perform, display, modify, create derivative works of, process, store, and disclose any Content or other:

1. **Input** provided to the Service by or on behalf of Customer, which may include Customer Data (“Input”); and
2. **Output** provided to, or generated for Customer by the Service, in response to use of the AI Assistant Service by Customer or an Input (“Output”).

In each case, for the purposes of billing, capacity planning, compliance, security, integrity, availability, stability, providing the AI Assistant Service as generally available, and, in the event the Customer elects to provide any suggestions, enhancement requests, recommendations, corrections, or other feedback, improving the AI Assistant Service and the JFrog Platform. The foregoing grant includes the right and license for JFrog and its Affiliates to use the AI Assistant Content to train, retrain, tune, validate, modify, update, or otherwise improve the Service or the JFrog Platform. **“Input” and “Output” are collectively referred to as “AI Assistant Content”**. The AI Assistant Content is not the “Confidential Information” of Customer. Personal Data shall not be entered as an Input to the Service.

### Ownership of AI Assistant Content.

As between Customer and JFrog, and to the extent permitted by applicable law, Customer:

1. Retains ownership rights in Input; and
2. Owns the Output, except to the extent such Output was provided to, or generated for, other JFrog customers by the Service.

Customer acknowledges that the Output provided may not be new or unique or protectable under applicable laws and that similar Outputs may be provided to other customers and their users in response to their Inputs into the Service.

### Processing of AI Assistant Content.

You authorize JFrog and its third-party providers to process your AI Assistant Content to provide the Service. You agree that JFrog may use Sub-Processors to provide the Service.

## REPRESENTATIONS; WARRANTIES; DISCLAIMERS.

Customer represents, warrants, and covenants that Customer owns or otherwise has and will have the necessary rights, licenses, and consents in and relating to the AI Assistant Content such that, as used by JFrog and its Affiliates in accordance with this Addendum, such AI Assistant Content does not and will not infringe, misappropriate, or otherwise violate any intellectual property rights, or other rights, of any third party or violate any applicable law.

**CUSTOMER ACCEPTS AND AGREES THAT ANY USE OF OR RELIANCE ON OUTPUTS IS AT CUSTOMER’S SOLE RISK AND CUSTOMER WILL NOT RELY ON OUTPUT AS A SOLE SOURCE OF TRUTH OR FACTUAL INFORMATION, OR AS A SUBSTITUTE FOR PROFESSIONAL ADVICE. JFROG DOES NOT ACCEPT LIABILITY OR RESPONSIBILITY FOR ANY INCORRECT, OFFENSIVE, UNLAWFUL, HARMFUL, OR OTHERWISE OBJECTIONABLE OUTPUT. THE OUTPUT DOES NOT REFLECT THE VIEWS, OPINIONS, POLICIES, OR POSITION OF JFROG OR ITS AFFILIATES.**

## INDEMNIFICATION.

Without limiting the scope of the obligations to indemnify and defend under the Agreement, the claims, demands, suits, or proceedings (each, a “Claim”) for which Customer indemnifies and defends JFrog and its Affiliates under the Agreement include Claims arising out of or related to:

1. The Service or Customer’s access and use thereof;
2. Any acts or omissions by Customer that constitute a breach of this Addendum;
3. Reliance, or use of, any AI Assistant Content; and
4. Fraud, gross negligence, or willful misconduct by Customer.

## MISCELLANEOUS.

Any notice required or permitted by this Addendum may, if sent by JFrog, be delivered electronically, including through the Service or AI Assistant Service. The following terms will survive any termination or expiration of this Addendum: **“Application of this Addendum,”** **“AI Assistant Content,”** **“Representations; Warranties; Disclaimers,”** **“Indemnification,”** and **“Miscellaneous.”**

This Addendum will be governed by, and construed under, the same law as the Agreement.

0 comments on commit 2ebf6fa

Please sign in to comment.