Отделите запрос Cognitive Search от взаимодействия с ChatGPT без потери цитирований.
Служба Azure OpenAI позволяет передаватьAzureChatExtensionConfiguration
и заставить его выполнить когнитивный поисковый запрос к вашим данным, передав результаты в ChatGPT для «контекста».
Можно ли разделить эти два этапа? Я хочу запустить часть когнитивного поиска, получить x результатов, затем передать их ChatGPT и заставить его использовать этот контекст. Однако я хочу, чтобы в результатах чата были те же цитаты/ссылки, что и в первом подходе.
т.е. при первом подходе я могу использовать результат JSON для получения цитат следующим образом:Choices[0].Message.AzureExtensionsContext.Messages[0].Content
Это дает мне список объектов Citation:
private class Citation
{
public string Id { get; set; }
public string Title { get; set; }
public string FilePath { get; set; }
public string Url { get; set; }
public string Content { get; set; }
}
Кроме того, в самом содержимом сообщения (т. е.Choices[0].Message.Content
), будут ссылки на цитирование в формате[doc1]
,[doc2]
, и т. д...
Я не хочу терять эту функциональность, но я хочу вставить немного больше логики в разрыв между когнитивным поиском и вызовом ChatGPT - например, проверка списка результатов и, если их недостаточно, получение каких-либо других действие.
Возможно ли это, или структура ответа со стороныGetChatCompletionsAsync
сAzureChatExtensionsOptions
какая-то собственная внутренняя функция Azure OpenAI?