個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

C#

C# だけで Azure OpenAI の RAG を試してみたい(目次)

目次 目次 C# だけで Azure OpenAI の RAG を試してみたい (1)検討したシステム構成と処理フロー C# だけで Azure OpenAI の RAG を試してみたい (2)C# によるテキストのクレンジング・チャンクの方針 C# だけで Azure OpenAI の RAG を試してみたい (3…

C# だけで Azure OpenAI の RAG を試してみたい (8)「データの追加」とプレイグラウンドでの動作確認

データの追加 「データの追加」を開始する データソースの選択 「インデックスデータフィールドのマッピング」の設定 「データの管理」の設定 「設定のレビュー」行い完了させる プレイグランドでの動作確認 前の記事 hiro128.hatenablog.jp データの追加 チ…

C# だけで Azure OpenAI の RAG を試してみたい (7)インデックスへのドキュメント登録

ドキュメントの登録 Embedding の取得 ドキュメントのアップロード ドキュメントの削除時の注意点 ソースコード全体 前の記事 hiro128.hatenablog.jp ドキュメントの登録 作成したソースコードの詳細は以下を参照ください。 github.com Embedding の取得 チ…

C# だけで Azure OpenAI の RAG を試してみたい (6)AI Search の検索インデックス作成

AI Search の検索インデックス作成 フィールド セマンティック構成 ベクタープロファイル 前の記事 hiro128.hatenablog.jp AI Search の検索インデックス作成 クロールしてクレンジングしたはてなブログ記事のドキュメントを登録する AI Search のインデック…

C# だけで Azure OpenAI の RAG を試してみたい (5)Blob コンテナ上でのソースデータの更新日時の管理

留意点②:Blob コンテナ上でのソースデータの更新日時の管理 Blob メタデータへ url と 最終更新日時を付加したうえで、Blob 上の既存項目から更新があればアップロードする 前の記事 hiro128.hatenablog.jp 留意点②:Blob コンテナ上でのソースデータの更新…

C# だけで Azure OpenAI の RAG を試してみたい (4)html ファイルのクレンジング

html ファイルのクレンジング どのような実装をしたのか 参考にした Python のサンプルの実装 移植した C# の実装 前の記事 hiro128.hatenablog.jp html ファイルのクレンジング 作成したソースコードの詳細は以下を参照ください。 github.com どのような実…

C# だけで Azure OpenAI の RAG を試してみたい (3)TokenCounter の実装

TokenCounter の実装 Tokenizer のライブラリ 作成した C# のソースコード 前の記事 hiro128.hatenablog.jp TokenCounter の実装 SplitPlainTextParagraphs メソッドで正しくトークンをカウントするために必要な tokenCounter パラメーターはソースコードを…

C# だけで Azure OpenAI の RAG を試してみたい (2)C# によるテキストのクレンジング・チャンクの方針

C# のみで RAG を構築する場合の留意点 留意点①:C# によるテキストのクレンジング・チャンク SemanticKernel.TextChunker を使う SplitPlainTextParagraphs メソッドの留意点 前の記事 hiro128.hatenablog.jp C# のみで RAG を構築する場合の留意点 C# では…

C# だけで Azure OpenAI の RAG を試してみたい (1)検討したシステム構成と処理フロー

はじめに カスタマイズ方針 検討したシステム構成と処理フロー 注意 ソースコードと各プロジェクトの解説 はじめに 最近 Azure OpenAI の RAG について色々調べていますが、サンプルアプリは Python が多いです。 自分は C# が大好きなので、C# でやってみた…

C# 10 の新機能 - const および文字列補間

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 const および文字列補間 導入の意図 const および文字列補間 プレースホルダーに使用する値が定数である場合は、const で定義された値にも文字列補間に使用できるように…

C# 10 の新機能 - 暗黙的な using ディレクティブ

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 暗黙的な using ディレクティブ 導入の意図 暗黙的な using ディレクティブ コンパイラによって、プロジェクトの種類ごとにあらかじめ決められたよく使われる名前空間の…

C# 10 の新機能 - ファイルスコープの名前空間宣言

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 ファイルスコープの名前空間宣言 導入の意図 新しい中括弧を省いた1行の構文 従来の中括弧を含めた3行の構文 ファイルスコープの名前空間宣言 1つのファイルにつき1つだ…

C# 10 の新機能 - global using

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 global using 導入の意図 任意のソースファイルに global using ディレクティブを追加 プロジェクトファイル(*.csproj)に Using Itemを追加 global using 任意のソース…

C# 10 の新機能 - 拡張プロパティ パターン

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 拡張プロパティ パターン 導入の意図 拡張プロパティ パターン ネストされたプロパティまたはプロパティ パターン内のフィールドを参照できるようになりました。 以下の…

C# 10 の新機能 - ラムダ式の自然型

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 ラムダ式の自然型 導入の意図 Minimal API ラムダ式の自然型 ラムダ式に対して Func<...> や Action<...> などのデリゲート型を強制的に宣言するのではなく、コンパイラ…

C# 10 の新機能 - レコード構造体

C# 10 の新機能の情報の目次は以下をご覧ください。 hiro128.hatenablog.jp 目次 目次 レコード構造体 導入の意図 値の等価性 コード 実行結果 表示用の組み込みの書式設定 コード 実行結果 with 式 コード 実行結果 レコード構造体 C# 9 でレコードクラスが…

C# 10 の新機能

はじめに C# 10 の新機能の特長は、「簡潔なコードを書くための機能」が多く追加されていることです。 本記事では、C# 10 の新機能のうち便利なものをいくつかピックアップしました。新しい機能を利用することでお作法的なコードを排除でき、簡潔で直感的な…