# Creating and Importing LLM Chat Assets

Ango Hub allows you to annotate individual messages in LLM chat conversations by using the [LLM Chat Labeling Editor](https://docs.imerit.net/labeling/labeling-editor-interface/llm-chat-labeling-editor). This page explains how to create new LLM Chat assets and how to import existing ones.

## Creating Empty Live LLM Conversations

To create an empty conversation which will be populated live by the annotator, from your project, navigate to the *Assets* tab, then click on *Add Data*. A dialog will appear.

Click on *LLM Asset Creator.* A number of options will appear on the left-hand side of the screen.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FvURqEEcjhlJI9H51zpJ0%2Fimage.png?alt=media&#x26;token=4780cdc6-3905-403f-810b-9eb0aa27ee79" alt=""><figcaption></figcaption></figure>

**Storage Method**. If you have [previously integrated](https://docs.imerit.net/data/storages) a storage method with Ango Hub, you may pick one here. The conversation will be saved in the storage and bucket chosen. If you do not pick a storage method, the chats will be saved in iMerit's own private and encrypted AWS S3 storage bucket.

It will be saved in the path:

```
/{projectId}/conversations/{conversationId}.json
```

**Number of Conversations.** Pick here the number of empty conversations you wish to create.

**LLM**. Pick the LLM you'd like to use in the assets you are creating. You may create and manage LLMs from your organization page, in the "LLM" section. [See how to add an LLM to your organization here](https://docs.imerit.net/data/adding-and-managing-llms).

Click on *Upload new conversations* to create the empty conversations in your project.

## Importing Existing Conversations via JSON

From your project, navigate to the *Assets* tab, then click on *Add Data*. A dialog will appear.

Click on *LLM Asset Creator.*

Drag and drop on the right-hand side of the dialog a JSON in this format:

```json
[
  {
    "messages": [
      {
        "id": "1",
        "content": "Content of message 1",
        "user": {
          "role": "user",
          "id": "lorenzo@example.net",
          "label": "Lorenzo"
        }
      },
      {
        "id": "2",
        "content": "Content of message 2",
        "user": {
          "role": "assistant",
          "id": "<any ID you'd like>",
          "label": "ClinicalAI-v13r15"
        }
      }
    ],
    "externalId": "conv_001-or-any-external-id-you-like-this-is-optional",
    "attachments": [
      {
        "type": "TEXT",
        "value": "Patient 1"
      }
    ]
  }
]
```

Each message must have an unique, chronologically advancing ID. The `role` *must* be either `user` or `assistant`. The `id` can be anything you need. The `label` is the name of either the user or the assistant which will appear next to the messages.
