Шаблон RAG семантического ядра Azure Open AI — только запрос к моим данным ⇐ C#
-
Anonymous
Шаблон RAG семантического ядра Azure Open AI — только запрос к моим данным
Я использую шаблон семантического ядра «RAG» для использования Azure Open AI + использование собственных данных для запроса некоторых внутренних документов. Я хотел бы гарантировать, что Модель выполняет поиск только по предоставленным ею данным, а не по всей Модели.
Псевдокод выглядит следующим образом:
var ai = azureAIChatCompletionService.Instanace.GetRequiredService(); вар чат = MemoryCache.Get(chatDto.CacheKey); chat ??= new ChatHistory("Я помощник, запрограммированный обсуждать содержимое X-документов, в частности, на основе предоставленной мне дополнительной информации. Для обеспечения целостности данных я буду полагаться исключительно на доступную дополнительную информацию. Если по какой-либо причине , данные недоступны, я сообщу вам: «Эта услуга в настоящее время недоступна. Пожалуйста, продолжайте задавать вопросы по предоставленной дополнительной информации, и давайте начнем наш разговор!»); вар строитель = новый StringBuilder(); вар titleSourceList = новый список(); ожидайте foreach (результат var в azureAIMemoryService.Instanace.SearchAsync(chatDto.ChatType.ToString(),chatDto.Query, предел: 5, minRelevanceScore: 0,5)) { // добавляем дополнительную информацию builder.AppendLine(result.Metadata.Description); titleSourceList.Add(result.Metadata.Id); } ИНТ contextToRemove = -1; если (builder.Length!= 0) { builder.Insert(0, "Вот дополнительная информация: "); contextToRemove = чат.Count; чат.AddUserMessage(builder.ToString()); } чат.AddUserMessage(chatDto.Query); вар ответ = ждут ai.GetChatMessageContentAsync(чат); Как предотвратить поиск по образцу типа: «Кто такой Майкл Джордан?»
Я использую шаблон семантического ядра «RAG» для использования Azure Open AI + использование собственных данных для запроса некоторых внутренних документов. Я хотел бы гарантировать, что Модель выполняет поиск только по предоставленным ею данным, а не по всей Модели.
Псевдокод выглядит следующим образом:
var ai = azureAIChatCompletionService.Instanace.GetRequiredService(); вар чат = MemoryCache.Get(chatDto.CacheKey); chat ??= new ChatHistory("Я помощник, запрограммированный обсуждать содержимое X-документов, в частности, на основе предоставленной мне дополнительной информации. Для обеспечения целостности данных я буду полагаться исключительно на доступную дополнительную информацию. Если по какой-либо причине , данные недоступны, я сообщу вам: «Эта услуга в настоящее время недоступна. Пожалуйста, продолжайте задавать вопросы по предоставленной дополнительной информации, и давайте начнем наш разговор!»); вар строитель = новый StringBuilder(); вар titleSourceList = новый список(); ожидайте foreach (результат var в azureAIMemoryService.Instanace.SearchAsync(chatDto.ChatType.ToString(),chatDto.Query, предел: 5, minRelevanceScore: 0,5)) { // добавляем дополнительную информацию builder.AppendLine(result.Metadata.Description); titleSourceList.Add(result.Metadata.Id); } ИНТ contextToRemove = -1; если (builder.Length!= 0) { builder.Insert(0, "Вот дополнительная информация: "); contextToRemove = чат.Count; чат.AddUserMessage(builder.ToString()); } чат.AddUserMessage(chatDto.Query); вар ответ = ждут ai.GetChatMessageContentAsync(чат); Как предотвратить поиск по образцу типа: «Кто такой Майкл Джордан?»
Мобильная версия