[HttpPost, Route("/api/chat/communicate_async")]
public async IAsyncEnumerable DoCommunicateAsync(ChatRequest chat)
{
IAsyncEnumerable results = _IChat.DoCommunicateAsync(chat);
await foreach (var result in results)
{
yield return result;
}
}
< /code>
в клиенту, на странице бритвы у меня есть следующий код, чтобы каждый цикл итерации на контроллере был представлен в пользовательском интерфейсе: < /p>
CancellationToken cancellationToken = GetCancellationToken();
var requestContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(chatRequest), Encoding.UTF8, "application/json");
using var requestMessage = new HttpRequestMessage(HttpMethod.Post, "api/chat/communicate_async")
{
Content = requestContent
};
requestMessage.SetBrowserResponseStreamingEnabled(true); // Enable response streaming
using var response = await Http.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead);
using Stream stream = await response.Content.ReadAsStreamAsync(cancellationToken);
var lines = System.Text.Json.JsonSerializer.DeserializeAsyncEnumerable(
stream,
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
DefaultBufferSize = 128
},
cancellationToken);
await foreach (string? line in lines)
{
chatResponse.response += line;
StateHasChanged();
}
< /code>
Я также пробовал различный подход к клиенту, чтобы сделать каждую итерацию цикла на контроллере в UI: < /p>
CancellationToken cancellationToken = GetCancellationToken();
chatResponse.response = string.Empty;
var requestContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(chatRequest), Encoding.UTF8, "application/json");
var requestMessage = new HttpRequestMessage(HttpMethod.Post, "api/chat/communicate_async")
{
Content = requestContent
};
//requestMessage.Headers.Accept.Append(new MediaTypeWithQualityHeaderValue("application/stream+json"));
requestMessage.SetBrowserResponseStreamingEnabled(true); // Enable response streaming
var response = await Http.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead);
IAsyncEnumerable results = response.Content.ReadFromJsonAsAsyncEnumerable();
await foreach (string? result in results)
{
chatResponse.response += result;
StateHasChanged();
}
< /code>
Клиент (с двумя подходами) кажется, что ожидает, пока все итерации не будут завершены в контроллере, чтобы сделать цикл JSON и обновить пользовательский интерфейс. До сих пор я прочитал много статей и пробовал разные вещи здесь: https://www.tpeczek.com/2021/07/aspnet-core-6-and-aasyncenumerable.html
и отсюда: Streaming Lines текста по HTTP с Blazor с использованием iAsyncenumerable
уже перепробовано. Обновление 2024/05/28
кажется, что приведенный ниже код, который генерирует части предложения, хотя он итерат, хотя исинометабельный, кажется, не транслируется на клиенте (это из Местный LLM из библиотеки Llamasharp: < /p>
await foreach (string? result in session.ChatAsync(new ChatHistory.Message(AuthorRole.User, chat.prompt), inferenceParams, cancellationToken))
{
if (result != null)
{ yield return result; }
}
< /code>
Пока кажется ниже код, который транслируется, хотя клиент из библиотеки Azure.ai: < /p>
await foreach (StreamingChatCompletionsUpdate chatUpdate in client.GetChatCompletionsStreaming(completionsOptions))
{
string? result = chatUpdate.ContentUpdate;
if (result != null)
{ yield return result; }
}
У меня есть приложение Blazor Hosted Webassembly в соответствии с .net8. Это означает, что у меня есть клиент, сервер и общие проекты. /p> [code][HttpPost, Route("/api/chat/communicate_async")] public async IAsyncEnumerable DoCommunicateAsync(ChatRequest chat) { IAsyncEnumerable results = _IChat.DoCommunicateAsync(chat); await foreach (var result in results) { yield return result; } } < /code> в клиенту, на странице бритвы у меня есть следующий код, чтобы каждый цикл итерации на контроллере был представлен в пользовательском интерфейсе: < /p> CancellationToken cancellationToken = GetCancellationToken(); var requestContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(chatRequest), Encoding.UTF8, "application/json"); using var requestMessage = new HttpRequestMessage(HttpMethod.Post, "api/chat/communicate_async") { Content = requestContent }; requestMessage.SetBrowserResponseStreamingEnabled(true); // Enable response streaming
using var response = await Http.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead);
using Stream stream = await response.Content.ReadAsStreamAsync(cancellationToken); var lines = System.Text.Json.JsonSerializer.DeserializeAsyncEnumerable( stream, new JsonSerializerOptions { PropertyNameCaseInsensitive = true, DefaultBufferSize = 128 }, cancellationToken); await foreach (string? line in lines) { chatResponse.response += line; StateHasChanged(); } < /code> Я также пробовал различный подход к клиенту, чтобы сделать каждую итерацию цикла на контроллере в UI: < /p> CancellationToken cancellationToken = GetCancellationToken(); chatResponse.response = string.Empty; var requestContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(chatRequest), Encoding.UTF8, "application/json"); var requestMessage = new HttpRequestMessage(HttpMethod.Post, "api/chat/communicate_async") { Content = requestContent }; //requestMessage.Headers.Accept.Append(new MediaTypeWithQualityHeaderValue("application/stream+json")); requestMessage.SetBrowserResponseStreamingEnabled(true); // Enable response streaming
var response = await Http.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead); IAsyncEnumerable results = response.Content.ReadFromJsonAsAsyncEnumerable(); await foreach (string? result in results) { chatResponse.response += result; StateHasChanged(); } < /code> Клиент (с двумя подходами) кажется, что ожидает, пока все итерации не будут завершены в контроллере, чтобы сделать цикл JSON и обновить пользовательский интерфейс. До сих пор я прочитал много статей и пробовал разные вещи здесь: https://www.tpeczek.com/2021/07/aspnet-core-6-and-aasyncenumerable.html и отсюда: Streaming Lines текста по HTTP с Blazor с использованием iAsyncenumerable уже перепробовано. Обновление 2024/05/28 кажется, что приведенный ниже код, который генерирует части предложения, хотя он итерат, хотя исинометабельный, кажется, не транслируется на клиенте (это из Местный LLM из библиотеки Llamasharp: < /p> await foreach (string? result in session.ChatAsync(new ChatHistory.Message(AuthorRole.User, chat.prompt), inferenceParams, cancellationToken)) { if (result != null) { yield return result; } } < /code> Пока кажется ниже код, который транслируется, хотя клиент из библиотеки Azure.ai: < /p> await foreach (StreamingChatCompletionsUpdate chatUpdate in client.GetChatCompletionsStreaming(completionsOptions)) { string? result = chatUpdate.ContentUpdate; if (result != null) { yield return result; } } [/code] Есть идеи?
У меня проблемы с потоковой передачей от Flir Grasshopper3 до OpenCV. Есть ли способ транслировать непосредственно от камеры FLIR в мой код с помощью Python? Когда я использую приведенный ниже код, CV.VideoCapture не может распознать камеру FLIR в...
Я пытаюсь погрузиться в большой паркетный файл с полярными. Это должно быть легко достичь в (1) памяти:
import os ; os.environ = '4'
import polars as pl
import time, random
import numpy as np
random.seed(42)
Есть ли способ передать инъекционный класс в унаследованную страницу и иметь унаследованные свойства обновления страницы в классе?public class BaseModel
{
public string? Username { get; set; }
public void SetUsername(string? name) => Username =...