Давайте создадим Power App для использования Azure Open AI ChatGPT для обобщения результатов Cognitive Search.

Что нужно

  • Зарегистрируйтесь в Azure Open AI — https://learn.microsoft.com/en-us/azure/cognitive-services/openai/overview.
  • После утверждения создайте лазурный открытый ресурс искусственного интеллекта на портале Azure.
  • Выберите регион как Восток США
  • На момент написания этой статьи gpt4, gpt3.5-turbo были доступны только на юге центральной части США.
  • Создайте развертывание внутри ресурса
  • Создайте когнитивный поиск
  • Создайте индекс для работы с
  • Включите также семантический поиск

Мощность потока

  • Давайте создадим поток энергии
  • В меню слева в Power Apps нажмите на потоки
  • https://make.preview.powerapps.com/
  • Нажмите на потоки
  • Нажмите Новый поток
  • Назовите его как cogsearchsummarychatgpt.
  • вот и весь поток

  • Теперь нам нужно добавить триггер в качестве Power Apps.
  • Теперь инициализируйте переменную с именем searchtxt.

  • Теперь принесите разбор JSON

  • вот схема
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "content": {
                "type": "string"
            },
            "role": {
                "type": "string"
            }
        },
        "required": [
            "content",
            "role"
        ]
    }
}
  • Теперь проанализируйте вывод и сохраните вывод

  • теперь используйте вывод, чтобы получить ключевое слово для поиска

  • Отправьте в chatgpt, чтобы получить работу с ключами
  • Использовать HTTP-действие

  • использовать пост
  • Вот адрес
https://aoairesorucename.openai.azure.com/openai/deployments/deploymentname/chat/completions?api-version=2023-03-15-preview
  • Установите заголовок, как показано ниже
content-type:application/json
api-key: <your_api_key>
  • теперь тело
{
  "messages": @{outputs('Compose_2')},
  "max_tokens": 1000,
  "temperature": 0.7
}
  • Теперь проанализируйте вывод и создайте ключевое слово для поиска.

  • Вот схема
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "object": {
            "type": "string"
        },
        "created": {
            "type": "integer"
        },
        "model": {
            "type": "string"
        },
        "choices": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "index": {
                        "type": "integer"
                    },
                    "finish_reason": {
                        "type": "string"
                    },
                    "message": {
                        "type": "object",
                        "properties": {
                            "role": {
                                "type": "string"
                            },
                            "content": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "index",
                    "finish_reason",
                    "message"
                ]
            }
        },
        "usage": {
            "type": "object",
            "properties": {
                "completion_tokens": {
                    "type": "integer"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "total_tokens": {
                    "type": "integer"
                }
            }
        }
    }
}
  • Теперь проанализируйте информацию и сохраните в переменную для отправки в поиск

  • Вызовите Cognitive Search API, чтобы получить результаты

  • Установите URL-адрес, как показано ниже.
https://searchsvc.search.windows.net/indexes/indexname/docs/search?api-version=2020-06-30
  • Установите заголовок, как показано ниже
content-type:application/json
api-key: <your_api_key>
  • Установить тело как
{
  "search": @{variables('searchtxt2')},
  "top": 3,
  "queryType": "semantic",
  "semanticConfiguration": "default",
  "queryLanguage": "en-us",
  "speller": "lexicon",
  "captions": "extractive|highlight-false"
}
  • Теперь нам нужно проанализировать ответ вышеприведенного вывода HTTP.
  • принести действие синтаксического анализа JSON
{
    "type": "object",
    "properties": {
        "@@odata.context": {
            "type": "string"
        },
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "@@search.score": {
                        "type": "number"
                    },
                    "id": {
                        "type": "string"
                    },
                    "content": {
                        "type": "string"
                    },
                    "sourcefile": {
                        "type": "string"
                    }
                },
                "required": [
                    "@@search.score",
                    "id",
                    "content",
                    "sourcefile"
                ]
            }
        }
    }
}
  • Некоторая временная схема может измениться в зависимости от вашего индекса, возьмите образец и используйте его для создания схемы.

  • Теперь пришло время зациклить результаты и создать одну строку
  • Инициализируйте переменную с именем searchouttxt
  • Принесите заявку на каждый
  • Выберите Содержимое или значение
  • Добавить Добавить к строковой переменной
  • Выберите контент

  • инициализировать переменную 4 не нужно
  • Теперь давайте создадим композицию, чтобы настроить формат сообщения.

  • теперь быстрое инженерное сообщение
  • Также убрать двойные кавычки, новую строку и возврат каретки
[
  {
    "role": "system",
    "content": "You are an assistant that helps company employees answer questions and draft marketing/sales messages in response to RFP documents. You must use the provided sources below to answer the question. Return the response as a bulleted list of paragaphs including citations for each supporting facts. If there isn't enough information in the sources below, respond that you aren't sure and give your best answer. You must always cite your sources. Each source has a name followed by colon and the actual information, always include the source name for each fact you use in the response.   Use square brakets to reference the source, e.g. [info1.txt]. Don't combine sources, list each source separately, e.g. [info1.txt][info2.pdf]. For tabular information return it as an html table. Do not return markdown format."
  },
  {
    "role": "user",
    "content": "@{uriComponentToString(replace(uriComponent(replace(variables('searchouttxt'), '"', '')), '%0A', ''))}"
  }
]
  • Теперь пришло время вызвать Chatgpt API

  • Установите URL-адрес, как показано ниже.
https://aoairesourcename.openai.azure.com/openai/deployments/deploymentname/chat/completions?api-version=2023-03-15-preview
  • Установите заголовок, как показано ниже
content-type:application/json
api-key: <your_api_key>
  • Установить тело как
{
  "messages": @{outputs('Compose')},
  "max_tokens": 1000,
  "temperature": 0
}
  • давайте получим вывод из chatgpt и передадим его обратно в мощные приложения.
  • Инициализируйте переменную с именем outsummary
  • назначьте вывод из chatgpt этой переменной

  • Затем отправьте его обратно в приложения Power

Мощные приложения

  • Создать новое приложение
  • Создайте текстовое поле ввода и кнопку
  • Создайте метку для отображения вывода

  • Теперь создайте поток и подключитесь к потоку
  • Назначить поток на кнопку
Clear(convlist1);Collect(convlist1, { role : "user", content: TextInput1.Text } );Set(messagevar, cogsearchsummarychatgpt.Run(JSON(convlist1)));Set(outvar2, Text(ParseJSON(messagevar.output).choices.'0'.message.content));Collect(convlist1, { role : "assistant", content: outvar2});
  • Теперь установите текстовое поле для отображения вывода
  • установите свойство text текстового поля, как показано ниже
outvar2
  • Цель состоит в том, чтобы использовать семантический поиск, получить 3 лучших документа, а затем передать их с помощью быстрой разработки в chatgpt, получить ответ и отобразить его в мощных приложениях.

оригинал статьи — Samples2023/cogsearchchatgpt.md на главной · balakreshnan/Samples2023 · GitHub

СТАНЬТЕ ПИСАТЕЛЕМ на MLearning.ai // невидимый ML// Обнаружение AI img