Поля поиска Azure AI, сопоставляющие JSON и извлекаемые поля

В настоящее время я реализую RAG в Azure, используя OpenAI и Azure AI Search, ранее известные как Cognitive Services. У меня есть около 50–65 файлов JSON, которые мне нужно найти в корпоративных данных. Оказывается, при ссылке на чат-бот я получаю только текст «цитата» и пытаюсь получить DOI, который представляет собой URL-адрес онлайн-документа, и название научной статьи. Эти файлы сохраняются в формате .txt.

Я отформатировал свой файл JSON таким образом, что ключи «контент» и «заголовок» — единственные, по которым я хочу выполнить семантический поиск, а также сделать их доступными для извлечения, в то время как я просто хочу, чтобы DOI (URL) был доступным для извлечения.

{
  "content": "The human eye is a complex organ responsible for vision, capturing light and converting it into neural signals for the brain to interpret. It consists of multiple parts, including the cornea, lens, and retina, each playing a vital role in the process of seeing.",
  "date": "2023-07-15",
  "Title": "The Magic of Vision",
  "editorial_house": "MIT Research Meds and Public Health",
  "doi": "https://doi.org/10.1234",
  "author": "Dr. John Mayer"
}

Тем не менее, когда я нахожусь на странице поиска Azure AI, мне никогда не удается выбрать другие поля в метаданных:

Как вы можете видеть, появляется только «контент», и я все еще получаю эту непривлекательную цитату в нижних ссылках моих поисков. Как я могу сделать так, чтобы мои данные можно было получить так, как я хочу?

Поскольку я не использую для этого код, а только веб-версию Azure Studio, я не уверен, что единственный способ сделать это — использовать код.

Мой желаемый результат выглядит примерно так:

Это возможно? Возможно ли использовать студию Azure или просто писать код?

Обновлять

Я настраиваю пользовательские сопоставления следующим образом:

Тем не менее, хотя я получаю правильный заголовок и содержание панели цитирования, мне не хватает DOI, который является URL-адресом публикации. Я что-то делаю не так??

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
303
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Импортируйте данные и определите индекс в обоих направлениях.

На портале после того, как вы нажмете на импорт данных, вы получите возможность подключиться к вашим данным, где вам необходимо настроить режим анализа как json.

тогда вы получите правильные поля.

Здесь вы можете удалить любое ненужное поле.

Другой метод — создать индекс с собственным определением, как показано ниже.

[
{
      "name": "content",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "date",
      "type": "Edm.DateTimeOffset",
      "searchable": false,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": null,
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "Title",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "editorial_house",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "doi",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "author",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "metadata_storage_size",
      "type": "Edm.Int64",
      "searchable": false,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": false,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": null,
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    },
    {
      "name": "metadata_storage_path",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false,
      "key": true,
      "indexAnalyzer": null,
      "searchAnalyzer": null,
      "analyzer": "standard.lucene",
      "normalizer": null,
      "dimensions": null,
      "vectorSearchProfile": null,
      "vectorEncoding": null,
      "synonymMaps": []
    }
  ]

затем настройте индексатор, как показано ниже.

После сохранения перезагрузитесь и запустите индексатор.

Джей, это потрясающе! Я вижу, что это работает для вас, так что, должно быть, у вас плохая кодировка или что-то в этом роде. Джей огромное спасибо за это УДИВИТЕЛЬНОЕ объяснение и за то, что вы потратили время! У меня последний вопрос: код, похожий на dict, который вы любезно предоставили, должен использоваться в Python при перехвате с помощью Azure Blob, или мне следует использовать его в студии поиска Azure AI??

R_Student 29.05.2024 15:07

На портале при создании индекса вам нужно добавить туда. В SDK Python есть отдельный пакет.

JayashankarGS 29.05.2024 15:19

Джей, извини, что беспокою тебя последним вопросом, посмотри, что на панели цитирования я не могу найти DOI, хотя я сопоставил его с полем DOI, я делаю что-то не так?

R_Student 29.05.2024 16:59

Здесь цитаты дают вам имя файла, а не URL-адрес doi. Это поведение по умолчанию. Попробуйте сопоставить имя файла с полем doi.

JayashankarGS 29.05.2024 19:49

Нет, нет... в моей цитате указано правильное название, но я хочу, чтобы DOI находился на панели цитат под заголовком, возможно ли это? посмотрите на мой ожидаемый результат... где DOI находится под заголовком, возможно ли это?

R_Student 29.05.2024 20:59

Попробуйте сопоставить имя файла с doi в разделе пользовательского сопоставления.

JayashankarGS 30.05.2024 04:22

Другие вопросы по теме

Похожие вопросы