Потоковая реакция WCFC#

Место общения программистов C#
Ответить
Anonymous
 Потоковая реакция WCF

Сообщение Anonymous »

У меня есть веб -служба WCF, которая вызывает генеративную модель с использованием клиента OpenAI C#. Я хочу транслировать этот ответ, как он приходит, на клиент WCF. Мой текущий режим передачи устанавливается на «трансляцию» с шкафом в 1 секунду. Упрощенная версия кода, которую в настоящее время запускает служба, составляет следующее: < /p>
var collectionResult = openAiClient.CompleteChatStreaming(new[] { userMsg }, options: modelOptions);
var stream = new MemoryStream();
var sw = new StreamWriter(stream)
{
AutoFlush = true
};

Task.Run(async () =>
{
foreach (var col in collectionResult)
foreach (var data in col.ContentUpdate)
sw.Write(data.Text);
});
stream.Position = 0;
return stream;
< /code>
При отладке это я вижу, что еще до того, как начнется внешний цикл, соединение закрыто, и я не могу понять, почему. Это фрагмент моего клиентского кода с использованием возвращаемого потока: < /p>
using (var sr = new StreamReader(stream))
{
var data = "";
while ((data = await sr.ReadLineAsync()) != null)
{
Console.WriteLine(data);
}
}
< /code>
Есть ли даже способ достичь такого типа потоковой реакции в WCF, где сервер является своего рода средним уровнем между потоковыми данными и потоковыми данными? Как это будет реализовано правильно? Клиент должен иметь возможность видеть вывод модели, как если бы он общался с обычным чат -ботом, поэтому я не могу дождаться генерирования всего ответа перед ответом.


Подробнее здесь: https://stackoverflow.com/questions/794 ... f-response
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»