Отправка AI запроса
Метод SendRequestAsync отправляет текстовый запрос к AI сервису с возможностью передачи файлов и поддержкой истории чата.
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
|
|
Да |
Текстовый запрос |
|
|
Да |
Файл для передачи в запрос |
|
|
Да |
Алиас запроса |
|
|
Нет |
Алиас LLM сервиса. Если значение не указано, используется сервис, указанный в конфигурационном файле |
|
|
Нет |
Идентификатор чата, для хранения истории |
|
|
Нет |
Метаданные по маскировке |
|
|
Нет |
Токен отмены |
| Название | Тип | Обязательность | Описание |
|---|---|---|---|
|
|
Да |
Имя файла с расширением |
|
|
Да |
Поток с содержимым файла |
| Название | Тип | Описание |
|---|---|---|
|
|
Список типов слов |
|
|
Список слов которые нужно скрыть с учетом лексем |
|
|
Список регулярных выражений |
| Название | Тип | Описание |
|---|---|---|
|
|
Текстовый ответ |
|
|
JSON из ответа |
string[] filePaths = { "C:\\doc1.pdf", "C:\\doc2.pdf" };
List<AiFile> files = new List<AiFile>();
foreach (var filePath in filePaths)
{
byte[] fileBytes = await File.ReadAllBytesAsync(filePath, cancellationToken);
files.Add(new AiFile
{
Name = Path.GetFileName(filePath),
Content = new MemoryStream(fileBytes)
});
}
AiRequestMetadata metadata = new AiRequestMetadata
{
NerMaskingValues = new[] { "PER", "LOC", "ORG" },
RegexMaskingValues = new[] { @"\d{4}-\d{4}-\d{4}-\d{4}", @"\+\d{11}" },
DictionaryMaskingValues = new[] { "конфиденциально", "секретно" }
};
AiResponse response = await aiClient.SendRequestAsync("Сравни файлы", files, "FileCompare", "OpenAI", Guid.NewGuid(), metadata, cancellationToken);
Console.WriteLine("Ответ AI: " + response?.Text);