Upgrade to Pro — share decks privately, control downloads, hide ads and more …

F#でちょっとずつ返す

Avatar for tsumiki tsumiki
November 08, 2025

 F#でちょっとずつ返す

F#で非同期ストリームを扱う際の内部的な動き

Avatar for tsumiki

tsumiki

November 08, 2025
Tweet

More Decks by tsumiki

Other Decks in Programming

Transcript

  1. ちょっとずつ返す? 
 DAG API (F# Minimal API) LLM (Gemini) Request


    Request
 Streaming Response
 Streaming Response

  2. 選択肢
 1. Server-Sent Events ( SSE ) 2. IAsyncEnumerable<T> の活用

    a. 非同期ストリームを表現するための .NET の標準的なインターフェース
  3. IAsyncEnumerable<T>
 • 非同期ストリームを表現するための .NET の標準的なインターフェース • Chunked transfer encoding (HTTP/1.1で導入されたデータ転送方式)を使用

    ◦ チャンク形式のHTTPリクエスト ◦ レスポンスヘッダー:Transfer-Encoding: chanked .NET: https://learn.microsoft.com/ja-jp/dotnet/api/system.collections.generic.iasyncenumerable-1?view=net-9.0
  4. DAG API では?
 • IAsyncEnumerable<T> ◦ TaskSeq を使った実装 • 理由

    ◦ .NET 標準機能で実装可能 ▪ SSE は .NET 8 だと標準サポートがない ◦ ブラウザ向けではない ▪ だいたいのプログラミング言語、HTTPクライアントライブラリで標準的にサ ポートされている