From 1204c5536c6ac64fc2b1263ae523d8a719b44fc1 Mon Sep 17 00:00:00 2001 From: fukuoka-t Date: Mon, 6 Jul 2026 17:22:31 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=83=A3=E3=83=83=E3=83=88=E3=83=AB?= =?UTF-8?q?=E3=83=BC=E3=83=A0=E3=81=AA=E3=81=97RAG=E6=A4=9C=E7=B4=A2?= =?UTF-8?q?=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 86 ++-- SampleCSharpUI/Commons/APIData.cs | 123 +++++- SampleCSharpUI/Commons/Config.cs | 9 +- SampleCSharpUI/Commons/ConfigSpecific.cs | 211 +++++++++ .../Converters/StringToGridLengthConverter.cs | 48 +++ SampleCSharpUI/Models/ChatModel.cs | 406 ++++++++++++++---- SampleCSharpUI/Models/ChatRoomModel.cs | 138 ++++-- SampleCSharpUI/Models/RetrieverModel.cs | 2 +- SampleCSharpUI/Properties/AssemblyInfo.cs | 4 +- .../Properties/Resources.Designer.cs | 18 + SampleCSharpUI/Properties/Resources.resx | 6 + SampleCSharpUI/SampleCSharpUI.csproj | 2 + SampleCSharpUI/ViewModels/MainViewModel.cs | 26 +- .../ViewModels/ManageChatRoomsViewModel.cs | 54 +++ SampleCSharpUI/Views/EditChatRoomWindow.xaml | 92 +++- .../Views/EditChatRoomWindow.xaml.cs | 15 +- SampleCSharpUI/Views/MainWindow.xaml | 36 +- SampleCSharpUI/Views/MainWindow.xaml.cs | 2 +- .../Views/ManageChatRoomsWindow.xaml | 10 + .../Views/ManageChatRoomsWindow.xaml.cs | 2 +- images/snapshot_01.png | Bin 66076 -> 111972 bytes 21 files changed, 1091 insertions(+), 199 deletions(-) create mode 100644 SampleCSharpUI/Commons/ConfigSpecific.cs create mode 100644 SampleCSharpUI/Converters/StringToGridLengthConverter.cs diff --git a/README.md b/README.md index 0c6a045..66077bc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Fujitsu Cloud Service Genearative AI Platform の API を利用するための C --- # 使い方 -## 起動 +## 1. 起動 1. SampleCSharpUI.exe をクリックして起動 2. 【初回起動時のみ】 自動的にテナント名とクライアントIDを入力する [ 設定 ] 画面を表示します。 @@ -29,7 +29,7 @@ Fujitsu Cloud Service Genearative AI Platform の API を利用するための C | 非対話認証 | 秘密キーによる非対話が可能な契約時に選択 | | ClientSecret | 契約時に通知された秘密キーを設定 | -## 会話関連の操作 +## 2. 会話関連の操作 ### 会話入力 - 画面下の [ 入力 ] 欄に質問を入力し、 Enter を押すことで送信されます。 - 改行を入力したいときは、 Shift+Enter で改行ができます。 @@ -50,13 +50,13 @@ Generative AI Platform は、プロンプトパターンとして会話履歴プ そのため、ルームに過去の会話が残っていると、その履歴に影響を受けた回答となります。そのため、新しい会話を始めたいときは過去の会話履歴を削除する必要があります。 過去の会話履歴の削除は、 [ ルーム ]-[ 会話をクリア ] メニューをクリックすることで実現できます。 -## ルーム関連の操作 +## 2. ルーム関連の操作 ### ルームの選択 - メニューに表示されているルーム名をクリックすると作成済ルーム一覧がリスト表示されるので、そこから移動したいルームを選択してください。 ### ルームの新規作成 [ ルーム ]-[ 新規作成 ] メニューをクリックして、ルームの新規作成画面を表示します。 -1. [ ルーム名 ] 欄に識別名を入力し、利用するRAGを [ リトリーバー ] 選択から選択します。なお、RAG不要時は「 none 」を選択します。 +1. [ ルーム名 ] 欄に識別名を入力し、利用するRAGを [ RAG指定 ] 選択から選択します。なお、RAG不要時は「 none 」を選択します。 1. [OK] をクリックしルームを作成します。作成が成功したときは自動的に作成したルームに移動します。 ### ルームを管理 @@ -73,7 +73,42 @@ Generative AI Platform は、プロンプトパターンとして会話履歴プ [ ルーム管理 ] 画面で [ 削除 ] をクリックすると該当行のルームを削除できます。 - 削除前に確認ダイアログが表示されるので、誤操作でクリックしてしまった時は [ いいえ ] をクリックすると削除を中止できます。 -## RAG関連の操作 +## 4. ルームなし推論 + +ルーム不要でTakaneに対してプロンプトを入力し回答を得るだけでよい場合には、ルームの設定や管理などの事前実行が必要なWebAPI呼び出しは煩雑に感じてしまいます。 +そのようなユースケースに対するサンプルコードとして「ルームなし会話」モードを実装しています。 + +### ルームなしの選択 +ルームの選択で「(none)」を選択するとチャットルームなしでの利用となります。 +サンプルコード内で画面に表示されている過去履歴を渡しているので、過去履歴を踏まえたやりとりが可能となっておりますが、過去履歴を渡さずに API コールをすれば、必ず入力したプロンプトだけを踏まえた回答となります。 + +### APIの選択 +ルームとして「 (none) 」を選択すると、右横に使用する API を選択する機能を表示します。 +「Cohere v2 chat 互換 API」または「Cohere OpenAI Chat Completions 互換 API」が選択できます。 + +### ルームなしの設定 +しているときに、左下の歯車アイコンをクリックすると、推論パラメタの編集が可能です。 +1. [ ルーム名 ] は、「 (none) 」固定です。 +2. [ ランダム性 ] は、Temperature と呼ばれるもので、0.0~1.0の範囲で0.1刻みで指定可能です。0.0を指定すると毎回同じ回答になり、1.0に近づくにつれてLLMはより様々な探索を行う可能性が高くなります。 +3. [ システムプロンプト ] は、推論時のシステムプロンプトを指定します。 +4. [ RAG 指定 ] は、推論時に利用する RAG を指定します。なお、RAG不要時は「 none 」を選択します。 +5. [OK] をクリックすると変更した内容でルームを更新します。 + +### マルチモーダル対応 +マルチモーダル対応 + +ルームなし会話では、マルチモーダル対応として、添付画像に対する質問を入力することができます。 +添付できる画像ファイル形式は、png、jpeg、webp、非アニメーションgif形式の5MB以下となります。 +1. 画像の添付方法は、入力欄下の [+] ボタンをクリックしてファイル選択 +2. 画像の添付解除は、画像横の [-] ボタンをクリックして解除 + +マルチモーダル対応は、Cohere v2 Chat 互換 API (/v2/chat)、または、Cohere OpenAI Chat Completions 互換 API (/compatibility/v1/chat/completions) を呼び出すことで実現可能です。 + +### RAG 参照 +ルームなしの設定で RAG を指定したとき、「Cohere v2 chat 互換 API」を選択している場合は、 documents オプションを使って、RAG の検索結果を参照情報として設定して推論します。 +「Cohere OpenAI Chat Completions 互換 API」を選択している場合は、 documents オプションがないため、入力プロンプトの先頭に追加して推論します。 + +## 5. RAG関連の操作 ### RAGの新規作成 [ ファイル ]-[RAG]-[ 新規作成 ] メニューをクリックして、ルームの新規作成画面を表示します。 @@ -106,35 +141,6 @@ RAG自体を削除したり、RAGに格納されているデータを変更し [ RAG管理 ] 画面で [ 削除 ] をクリックすると該当行のRAGを削除できます。 - 削除前に確認ダイアログが表示されるので、誤操作でクリックしてしまった時は [ いいえ ] をクリックすると削除を中止できます。 -## ルームなし会話 -ルームを作成することで下記のような機能をWebAPIとして提供しています。 -- 過去履歴を踏まえたプロンプトパターンの実現 -- ルームへ会話を記録することによる後日閲覧の実現 -- 各種トークン数の設定 -しかしながら、ルーム不要でTakaneに対してプロンプトを入力し回答を得るだけでよい場合には、ルームの設定や管理などの事前実行が必要なWebAPI呼び出しは煩雑に感じてしまいます。 -そのようなユースケースでは「ルームなし会話」モードがあります。 - -### 本サンプル画面での使い方 -ルームの選択で「(none)」を選択するとチャットルームなしでの利用となります。 -サンプルコード内で画面に表示されている過去履歴を渡しているので、過去履歴を踏まえたやりとりが可能となっておりますが、過去履歴を渡さずにAPIコールをすれば、必ず入力したプロンプトだけを踏まえた回答となります。 - -#### 制限事項 -ルームを「(none)」に選択してる場合は、ルーム編集や新規作成の機能はご利用になれません。 -ルーム編集やルーム新規作成が必要な場合は、他のルームを選択してから実行してください。 - -### マルチモーダル対応 -マルチモーダル対応 - -ルームなし会話では、マルチモーダル対応として、添付画像に対する質問を入力することができます。 -添付できる画像ファイル形式は、png、jpeg、webp、非アニメーションgif形式の5MB以下となります。 -1. 画像の添付方法は、入力欄下の [+] ボタンをクリックしてファイル選択 -2. 画像の添付解除は、画像横の [-] ボタンをクリックして解除 - -マルチモーダル対応は、Cohere v2 Chat 互換 API (/v2/chat)、または、Cohere OpenAI Chat Completions 互換 API (/compatibility/v1/chat/completions) を呼び出すことで実現可能です。 -サンプルコードでは、Cohere v2 Chat 互換 API を使用しています。 - -OpenAI 互換 API、または、Cohere V2 Chat 互換 API を呼び出すことで実現可能です。 - --- # サンプルコードの利用 API サンプルコードでは、Fujitsu Cloud Service Genearative AI Platform が提供する次の API を使用しています。 @@ -153,7 +159,9 @@ OpenAI 互換 API、または、Cohere V2 Chat 互換 API を呼び出すこと | POST | /api/v1/chats/{id}/messages/createNextAiMessage | LLM から回答受信 | | GET | /api/v1/chats/{id} | チャットルーム履歴取得 | | POST | /api/v1/action/defined/text:simple_chat/call | チャットルームなし推論 | -| POST | /api/v1/pass-through/takane/v2/chat | Cohere v2 Chat 互換 API (画像付き入力推論) | +| POST | /api/v1/pass-through/takane/v2/chat | Cohere v2 Chat 互換 API | +| POST | /api/v1/pass-through/takane/compatibility/v1/chat/completions | Cohere OpenAI Chat Completions 互換 API | +| POST | /api/v1/retrievers/search | 入力プロンプトからRAG検索 | ## チャットルーム関連 チャットルームの作成・更新・削除は、 MVVM デザインパターンに基づき、 Models\ChatRoomModel.cs に記載しています。 @@ -169,14 +177,14 @@ RAG 関連については、 MVVM デザインパターンに基づき、 Models | 操作 | エンドポイント | 用途 | | ---- | ---- | ---- | -| GET | /api/v1/retrievers | リトリーバー一覧取得 | -| PUT | /api/v1/retrievers/{id} | リトリーバー取得 | -| POST | /api/v1/retrievers | リトリーバー追加 | | POST | /api/v1/files/from-url | URL からのファイルアップロード | | POST | /api/v1/files | ローカルファイルのアップロード | +| DELETE | /api/v1/files/{id} | ファイル削除 | +| GET | /api/v1/retrievers | リトリーバー一覧取得 | +| POST | /api/v1/retrievers | リトリーバー追加 | | POST | /api/v1/retrievers/{id}/process/embeddings | RAGデータ作成 | | GET | /api/v1/retrievers/{id} | RAGデータ作成完了確認 | -| DELETE | /api/v1/retrievers/{id} | リトリーバー削除 | +| PUT | /api/v1/retrievers/{id} | リトリーバー取得 | | DELETE | /api/v1/retrievers/{id} | リトリーバー削除 | --- diff --git a/SampleCSharpUI/Commons/APIData.cs b/SampleCSharpUI/Commons/APIData.cs index ede1bf3..5d91aa4 100644 --- a/SampleCSharpUI/Commons/APIData.cs +++ b/SampleCSharpUI/Commons/APIData.cs @@ -220,7 +220,8 @@ public class TCohereV2ChatRequest public float temperature { get; set; } [DataMember] public uint max_tokens { get; set; } - + [DataMember(EmitDefaultValue = false)] + public TDocument[] documents { get; set; } } [DataContract] @@ -230,6 +231,8 @@ public class TCohereV2ChatMessage public string role { get; set; } [DataMember] public TContent[] content { get; set; } + [DataMember(EmitDefaultValue = false)] + public TCitation[] citations { get; set; } } [DataContract] @@ -239,17 +242,37 @@ public class TContent public string type { get; set; } [DataMember] public string text { get; set; } - [DataMember] + [DataMember(EmitDefaultValue = false)] public TImageUrl image_url { get; set; } } [DataContract] public class TImageUrl { - [DataMember] + [DataMember(EmitDefaultValue = false)] public string url { get; set; } } + [DataContract] + public class TCitation + { + [DataMember(EmitDefaultValue = false)] + public string text { get; set; } + [DataMember(EmitDefaultValue = false)] + public TSource[] sources { get; set; } + } + + [DataContract] + public class TSource + { + [DataMember(EmitDefaultValue = false)] + public string id { get; set; } + [DataMember(EmitDefaultValue = false)] + public string type { get; set; } + [DataMember(EmitDefaultValue = false)] + public TData document { get; set; } + } + [DataContract] public class TCohereV2ChatResponse { @@ -259,7 +282,101 @@ public class TCohereV2ChatResponse public TCohereV2ChatMessage message { get; set; } [DataMember] public string finish_reason { get; set; } + } + + [DataContract] + public class TDocument + { + [DataMember(EmitDefaultValue = false)] + public TData data { get; set; } + } + + [DataContract] + public class TData + { + [DataMember(EmitDefaultValue = false)] + public string id { get; set; } + [DataMember(EmitDefaultValue = false)] + public string title { get; set; } + [DataMember(EmitDefaultValue = false)] + public string text { get; set; } + } + [DataContract] + public class TOpenAIChatRequest + { + [DataMember] + public string model { get; set; } + [DataMember] + public TOpenAIChatMessage[] messages { get; set; } + [DataMember] + public float temperature { get; set; } + [DataMember] + public uint max_tokens { get; set; } + } + [DataContract] + public class TOpenAIChatMessage + { + [DataMember] + public string role { get; set; } + [DataMember] + public string content { get; set; } + } + + [DataContract] + public class TOpenAIChatResponse + { + [DataMember] + public string id { get; set; } + [DataMember] + public TChoice[] choices { get; set; } + [DataMember] + public int created { get; set; } + } + [DataContract] + public class TChoice + { + [DataMember] + public string finish_reason { get; set; } + [DataMember] + public int index { get; set; } + [DataMember] + public TOpenAIChatMessage message { get; set; } + } + + [DataContract] + public class TRetrieverSearchRequest + { + [DataMember] + public string search_type { get; set; } + [DataMember] + public string search_text { get; set; } + [DataMember] + public int limit { get; set; } + [DataMember] + public TRetrieverFilter filter { get; set; } + } + + [DataContract] + public class TRetrieverFilter + { + [DataMember] + public TRetrieverFilterQuery retriever_id { get; set; } + } + + [DataContract] + public class TRetrieverFilterQuery + { + [DataMember(Name = "in")] + public string[] ids { get; set; } + } + + + [DataContract] + public class TRetrieverSearchResponse + { + [DataMember] + public TRefChunks[] results { get; set; } } } } diff --git a/SampleCSharpUI/Commons/Config.cs b/SampleCSharpUI/Commons/Config.cs index b3e6d2d..cefd0bd 100644 --- a/SampleCSharpUI/Commons/Config.cs +++ b/SampleCSharpUI/Commons/Config.cs @@ -5,12 +5,10 @@ namespace SampleCSharpUI.Commons { - internal class Config + internal partial class Config { internal static string ClientId { get; set; } internal static string TenantName { get; set; } - internal static string SelectedChatRoomID { get; set; } - internal static bool IsUseOSWebView { get; set; } internal static bool IsPromptAuthentication { get; set; } internal static string ClientSecret { get; set; } @@ -49,7 +47,6 @@ internal static void LoadProperties() Config.ClientId = recvData.ClientId; Config.TenantName = recvData.TenantName; - Config.SelectedChatRoomID = recvData.SelectedChatRoomID; Config.IsUseOSWebView = recvData.IsUseOSWebView; Config.IsPromptAuthentication = !recvData.IsNotPromptAuthentication; Config.ClientSecret = CryptographyHelper.DecryptStringe(recvData.ClientSecret); @@ -62,7 +59,6 @@ internal static void LoadProperties() { Config.ClientId = string.Empty; Config.TenantName = string.Empty; - Config.SelectedChatRoomID = string.Empty; Config.IsUseOSWebView = false; Config.IsPromptAuthentication = true; Config.ClientSecret = string.Empty; @@ -113,7 +109,6 @@ internal static void SaveProperties() // Loadがはしらないように内部変数から取得する st.ClientId = Config.ClientId; st.TenantName = Config.TenantName; - st.SelectedChatRoomID = Config.SelectedChatRoomID; st.IsUseOSWebView = Config.IsUseOSWebView; st.IsNotPromptAuthentication = !Config.IsPromptAuthentication; st.ClientSecret = CryptographyHelper.EncryptString(Config.ClientSecret); @@ -148,8 +143,6 @@ private class TPropertiesData [DataMember] public string TenantName { get; set; } [DataMember] - public string SelectedChatRoomID { get; set; } - [DataMember] public bool IsUseOSWebView { get; set; } [DataMember] public bool IsNotPromptAuthentication { get; set; } diff --git a/SampleCSharpUI/Commons/ConfigSpecific.cs b/SampleCSharpUI/Commons/ConfigSpecific.cs new file mode 100644 index 0000000..2b47066 --- /dev/null +++ b/SampleCSharpUI/Commons/ConfigSpecific.cs @@ -0,0 +1,211 @@ +using SampleCSharpUI.Commons; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Json; +using System.Text; +using System.Threading.Tasks; + +namespace SampleCSharpUI.Commons +{ + internal static partial class Config + { + // 使用中チャットルームID + internal static string SelectedChatRoomID + { + get + { + LoadSpecificProperties(); + return RecData.SelectedChatRoomID; + } + set + { + RecData.SelectedChatRoomID = value; + SaveSpecificProperties(); + } + } + + // システムプロンプト + internal static string SystemPrompt + { + get + { + LoadSpecificProperties(); + return RecData.SystemPrompt; + } + set + { + RecData.SystemPrompt = value; + SaveSpecificProperties(); + } + } + + // チャットルームなし Temperature + internal static float Temperature + { + get + { + LoadSpecificProperties(); + return RecData.Temperature; + } + set + { + RecData.Temperature = value; + SaveSpecificProperties(); + } + } + + // チャットルームなし MaxTokens + internal static int MaxTokens + { + get + { + LoadSpecificProperties(); + return RecData.MaxTokens; + } + set + { + RecData.MaxTokens = value; + SaveSpecificProperties(); + } + } + + // チャットルームなし RAG + internal static string RetrieverID + { + get + { + LoadSpecificProperties(); + return RecData.RetrieverID; + } + set + { + RecData.RetrieverID = value; + SaveSpecificProperties(); + } + } + + private static TSpecificPropertiesData RecData = new TSpecificPropertiesData() + { + SelectedChatRoomID = string.Empty, + Temperature = 0.7f, + MaxTokens = 1024, + }; + + /// + /// プロパティ値の取得 + /// + internal static void LoadSpecificProperties() + { + //保存元のファイル名 + var dataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + var settingPath = dataPath + "\\FujitsuGAP\\Settings"; + var fileName = settingPath + "\\Properties_SampleCSharpUI.json"; + + try + { + if (System.IO.File.Exists(fileName)) + { + using (var sr = new System.IO.StreamReader(fileName, new System.Text.UTF8Encoding(false))) + { + var items = new TSpecificPropertiesData(); + var jsonString = sr.ReadToEnd(); + using (var ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString))) + { + var serializer = new DataContractJsonSerializer(typeof(TSpecificPropertiesData)); + RecData = (TSpecificPropertiesData)serializer.ReadObject(ms); + } + } + } + else + { + RecData = new TSpecificPropertiesData() + { + SelectedChatRoomID = string.Empty, + SystemPrompt = "以下は、人間とAIの親しみやすい会話です。このAIはおしゃべり好きで、文脈に基づいて多くの具体的な詳細を伝えてくれます。質問の答えがわからない場合、AIは正直に「わからない」と答えます。", + Temperature = 0.3f, // Takane 省略値 + MaxTokens = 8192, // Takane 省略値 + RetrieverID = string.Empty, + }; + } + } + catch { } + } + + /// + /// プロパティ値の保存 + /// + internal static void SaveSpecificProperties() + { + try + { + //保存元のファイル名 + var dataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + var settingPath = dataPath + "\\FujitsuGAP\\Settings"; + var fileName = settingPath + "\\Properties_SampleCSharpUI.json"; + + // フォルダ (ディレクトリ) が存在しているかどうか確認する + if (System.IO.Directory.Exists(settingPath) == false) + { + // フォルダ (ディレクトリ) を作成する + System.IO.Directory.CreateDirectory(settingPath); + } + + // ファイルが存在する場合 + if (System.IO.File.Exists(fileName) == true) + { + //ファイルの属性を取得する + var attr = System.IO.File.GetAttributes(fileName); + + //読み取り専用属性の場合 + if ((attr & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) + { + //読み取り専用属性を削除する + System.IO.File.SetAttributes(fileName, attr & (~System.IO.FileAttributes.ReadOnly)); + } + } + + //書き込むファイルを開く + using (var ms = new MemoryStream()) + { + var serializer = new DataContractJsonSerializer(typeof(TSpecificPropertiesData)); + using (var writer = JsonReaderWriterFactory.CreateJsonWriter(ms, System.Text.Encoding.UTF8, true, true, " ")) + { + serializer.WriteObject(writer, RecData); + writer.Flush(); + var jsonString = System.Text.Encoding.UTF8.GetString(ms.ToArray()); + using (var sw = new System.IO.StreamWriter(fileName, false, new System.Text.UTF8Encoding(false))) + { + sw.WriteLine(jsonString); + + //ファイルを確実にクローズしてファイル破損を防ぐ + sw.Flush(); + sw.Close(); + } + } + } + } + catch { } + } + + /// + /// プロパティファイルフォーマット + /// + [DataContract] + private class TSpecificPropertiesData + { + [DataMember] + public string SelectedChatRoomID { get; set; } + [DataMember] + public string SystemPrompt { get; set; } + [DataMember] + public float Temperature { get; set; } + [DataMember] + public int MaxTokens { get; set; } + [DataMember] + public string RetrieverID { get; set; } + } + } +} diff --git a/SampleCSharpUI/Converters/StringToGridLengthConverter.cs b/SampleCSharpUI/Converters/StringToGridLengthConverter.cs new file mode 100644 index 0000000..8759aab --- /dev/null +++ b/SampleCSharpUI/Converters/StringToGridLengthConverter.cs @@ -0,0 +1,48 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace SampleCSharpUI.Converters +{ + public class StringToGridLengthConverter : IValueConverter + { + // ConverterParameter に行の標準高さ(例: 42)を渡せます。 + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var id = value as string; + double height = 42; + if (parameter != null) + { + double.TryParse(parameter.ToString(), out var p); + height = p; + } + + if (string.IsNullOrEmpty(id)) + { + if (height > 0) + { + height = 0; + } + else + { + height = -height; + } + return new GridLength(height); // 空文字なら高さ 0(行を消す) + } + else + { + if (height < 0) + { + height = 0; + } + return new GridLength(height); // ID があれば元の高さを返す + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotSupportedException(); + } + } +} \ No newline at end of file diff --git a/SampleCSharpUI/Models/ChatModel.cs b/SampleCSharpUI/Models/ChatModel.cs index a33fd72..f30e755 100644 --- a/SampleCSharpUI/Models/ChatModel.cs +++ b/SampleCSharpUI/Models/ChatModel.cs @@ -5,6 +5,7 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; +using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.CompilerServices; @@ -13,6 +14,7 @@ using System.Threading; using System.Threading.Tasks; using System.Windows.Threading; +using static SampleCSharpUI.Commons.APIData; namespace SampleCSharpUI.Models { @@ -135,12 +137,58 @@ internal async Task DisconnectAsync() } #endregion + #region "チャット関連プロパティ" + public ObservableCollection ChatRooms { get; set; } = new ObservableCollection(); + public ObservableCollection Messages { get; set; } = new ObservableCollection(); + public ObservableCollection APIs { get; set; } = new ObservableCollection() + { + new TItem { ID = "v2", Name = "Cohere v2", FullName = "Cohere v2 Chat API" }, + new TItem { ID = "OpenAI", Name = "Cohere OpenAI", FullName = "Cohere OpenAI compatibility Chat API" } + }; + + private Models.TDataChatRoom _SelectedChatRoom = null; + public Models.TDataChatRoom SelectedChatRoom + { + get { return this._SelectedChatRoom; } + set + { + if (this._SelectedChatRoom != value) + { + this._SelectedChatRoom = value; + OnPropertyChanged(); + + // 選択済チャットルームID保存 + if (this._SelectedChatRoom != null) + { + Config.SelectedChatRoomID = this._SelectedChatRoom?.ID; + Config.SaveProperties(); + } + } + } + } + + private TItem _SelectedAPI = null; + public TItem SelectedAPI + { + get { return _SelectedAPI; } + set + { + if (_SelectedAPI != value) + { + _SelectedAPI = value; + OnPropertyChanged(); + } + } + } + #endregion + /// /// コンストラクター /// public ChatModel() { this.ExpireTimer.Stop(); + this.SelectedAPI = this.APIs[0]; // 認証キー期限切れ対応 this.ExpireTimer.Tick += async (s, e) => @@ -176,32 +224,8 @@ public ChatModel() } #region "チャット関連" - public ObservableCollection ChatRooms { get; set; } = new ObservableCollection(); - public ObservableCollection Messages { get; set; } = new ObservableCollection(); - - private Models.TDataChatRoom _SelectedChatRoom = null; - public Models.TDataChatRoom SelectedChatRoom - { - get { return this._SelectedChatRoom; } - set - { - if (this._SelectedChatRoom != value) - { - this._SelectedChatRoom = value; - OnPropertyChanged(); - - // 選択済チャットルームID保存 - if (this._SelectedChatRoom != null) - { - Config.SelectedChatRoomID = this._SelectedChatRoom?.ID; - Config.SaveProperties(); - } - } - } - } - // チャットルーム一覧取得処理 - internal async Task GetChatRoomsAsync(bool isUseNone = false) + internal async Task GetChatRoomsAsync(bool isUseNone = true) { const string defaultChatRoomName = "General Use"; var defaultChatRoomID = string.Empty; @@ -428,11 +452,11 @@ internal async Task ClearChatRoomAsync(string id) } /// - /// プロンプト入力 + /// プロンプト入力(チャットルームあり) /// /// ルームID /// 入力 - internal async Task SendMessageAsync(string id, string inputText) + internal async Task SendRoomMessageAsync(string id, string inputText) { var content = inputText ?? string.Empty; if (!string.IsNullOrWhiteSpace(content)) @@ -511,7 +535,7 @@ internal async Task SendMessageAsync(string id, string inputText) } /// - /// プロンプト入力(Stream受信) + /// プロンプト入力(チャットルームあり:Stream受信) /// /// ルームID /// 入力 @@ -654,7 +678,7 @@ internal async Task SendRoomMessageStreamingAsync(string id, string inputText) this.IsStreaming = true; jsonString = await HttpHelper.PostRequestStreamAsync(msgId, $"/api/v1/chats/{id}/messages/createNextAiMessage/streaming", this.IdToken, "{}"); } - catch (Exception ex) + catch { this.IsStreaming = false; @@ -690,17 +714,17 @@ private async Task GetLastAIResponseAsync(string id) } /// - /// プロンプト入力(チャットルームなし) + /// プロンプト入力(チャットルームなし:GAP_SimpleChat API) /// /// 入力 - internal async Task SendMessageAsync(List histories, float temperature, int token, string inputText) + internal async Task SendMessageSimpleChatAsync(List histories, float temperature, int token, string inputText, string systemPrompt) { var content = inputText ?? string.Empty; if (!string.IsNullOrWhiteSpace(content)) { var body = new APIData.TNonRoomRequest() { - messages = this.SetHistories(histories), + messages = this.SetSimpleChatHistories(histories), question = content, model = "cohere.command-r-plus-fujitsu", max_tokens = token, @@ -756,7 +780,7 @@ internal async Task SendMessageAsync(List histories, float temperature } // 履歴設定(チャットルームなし) - private APIData.TChatMessage[] SetHistories(List histories) + private APIData.TChatMessage[] SetSimpleChatHistories(List histories) { if (histories == null || histories.Count == 0) { @@ -780,30 +804,7 @@ private APIData.TChatMessage[] SetHistories(List histories) } } - // 履歴設定(チャットルームなし) - private APIData.TCohereV2ChatMessage[] SetCohereV2ChatHistories(List histories) - { - if (histories == null || histories.Count == 0) - { - return new APIData.TCohereV2ChatMessage[] { }; - } - else - { - var messages = new APIData.TCohereV2ChatMessage[histories.Count]; - for (int i = 0; i < histories.Count; i++) - { - var history = histories[i]; - messages[i] = new APIData.TCohereV2ChatMessage() - { - role = history.Role == "ai" ? "assistant" : "user", - content = new APIData.TContent[] { new APIData.TContent() { type = "text", text = history.Content } }, - }; - } - return messages; - } - } - - // メッセージ追加(チャットルームなし) + // メッセージ追加 private Guid SetMessage(string role, string content, DateTime time, List refs, string image = null) { var msg = new TMessage() @@ -818,6 +819,8 @@ private Guid SetMessage(string role, string content, DateTime time, List this.Messages.Add(msg); return msg.Id; } + + // メッセージ更新 private Guid SetMessage(Guid id, string role, string content, DateTime time, List refs) { // 指定された ID を持つ既存メッセージを検索 @@ -840,16 +843,16 @@ private Guid SetMessage(Guid id, string role, string content, DateTime time, Lis } } - /// - /// プロンプト入力(チャットルームなし/マルチモーダル) + /// プロンプト入力(チャットルームなし/マルチモーダル:Cohere v2 chat API) /// /// 入力 - internal async Task SendMessageWithFileAsync(List histories, float temperature, int token, string inputText, string filePath) + internal async Task SendMessageCohereV2ChatAsync(List histories, float temperature, int token, string inputText, string systemPrompt, string retrieverID, string filePath) { - var content = inputText ?? string.Empty; + var content = inputText?.Trim() ?? string.Empty; + var refs = new List(); var base64ImageData = !string.IsNullOrEmpty(filePath) ? await Base64Helper.ImageFileToBase64Async(filePath) : string.Empty; - if (!string.IsNullOrWhiteSpace(content)) + if (!string.IsNullOrEmpty(content)) { var body = new APIData.TCohereV2ChatRequest() { @@ -859,38 +862,74 @@ internal async Task SendMessageWithFileAsync(List histories, float tem max_tokens = (uint)token, }; - // ここで配列の末尾に要素を追加する(body.messages が配列であることを前提) - var existing = body.messages ?? new APIData.TCohereV2ChatMessage[] { }; - var newArr = new APIData.TCohereV2ChatMessage[existing.Length + 1]; - if (existing.Length > 0) + // 既存メッセージをリスト化して末尾に要素を追加する + var list = new System.Collections.Generic.List(); + if (body.messages != null && body.messages.Length > 0) { - Array.Copy(existing, newArr, existing.Length); + list.AddRange(body.messages); } + + // システムプロンプト追加 + if (!string.IsNullOrEmpty(systemPrompt)) + { + list.Add(new APIData.TCohereV2ChatMessage() + { + role = "system", + content = new APIData.TContent[] { + new APIData.TContent() { type = "text", text = systemPrompt }, + }, + }); + } + + // 参照情報追加(Cohere v2 chat APIでは、参照情報をdocumentsオプションとして設定する) + if (!string.IsNullOrEmpty(retrieverID)) + { + var refChunks = await this.SearchRetrieverAsync(retrieverID, content, 10); + if (refChunks != null && refChunks.Length > 0) + { + // 参照情報をリストに追加 + refs.AddRange(refChunks?.Select(chunk => (chunk?.text?.Replace("\n\n", "\n") as string) ?? string.Empty) ?? Enumerable.Empty()); + + // documentsオプションに参照情報を設定 + body.documents = refChunks?.Select(refChunk => new APIData.TDocument + { + data = new APIData.TData + { + id = Guid.NewGuid().ToString(), + title = string.Empty, + text = refChunk?.text?.Replace("\n\n", "\n") ?? string.Empty, + } + }).ToArray(); + } + } + + // 入力プロンプト追加 if (!string.IsNullOrEmpty(base64ImageData)) { - newArr[newArr.Length - 1] = new APIData.TCohereV2ChatMessage() + list.Add(new APIData.TCohereV2ChatMessage() { role = "user", content = new APIData.TContent[] { - new APIData.TContent() { type = "text", text = inputText }, + new APIData.TContent() { type = "text", text = content }, new APIData.TContent() { type = "image_url", image_url = new APIData.TImageUrl() { url= $"data:image/png;base64,{base64ImageData}" } } }, - }; + }); } else { - newArr[newArr.Length - 1] = new APIData.TCohereV2ChatMessage() + list.Add(new APIData.TCohereV2ChatMessage() { role = "user", content = new APIData.TContent[] { - new APIData.TContent() { type = "text", text = inputText }, + new APIData.TContent() { type = "text", text = content }, }, - }; + }); } - body.messages = newArr; - // 質問のメッセージ追加 - this.SetMessage("user", content, DateTime.UtcNow.ToLocalTime(), new List(), filePath); + body.messages = list.ToArray(); + + // 質問のメッセージ追加(参照情報は表示しない) + this.SetMessage("user", inputText, DateTime.UtcNow.ToLocalTime(), new List(), filePath); // ここで body を JSON 文字列にシリアライズして変数に格納する using (var ms = new MemoryStream()) @@ -912,7 +951,155 @@ internal async Task SendMessageWithFileAsync(List histories, float tem var item = ser.ReadObject(json) as APIData.TCohereV2ChatResponse; if (item?.id != null) { - this.SetMessage(msgId, "ai", item.message.content[0].text, DateTime.UtcNow.ToLocalTime(), new List()); + if (item.message?.citations != null) + { + // 参照情報がある場合は、回答のメッセージに参照情報を追加する + foreach (var refItem in item.message?.citations) + { + Debug.WriteLine($"{refItem.text} in {string.Join(",", refItem.sources.Select((x) => x?.id).Where(id => !string.IsNullOrEmpty(id)))}"); + } + } + this.SetMessage(msgId, "ai", item.message.content[0].text, DateTime.UtcNow.ToLocalTime(), refs); + } + else + { + throw new Exception(jsonString); + } + } + json.Close(); + + // 最新行表示 + OnPropertyChanged("Messages_Item"); + } + } + catch (Exception ex) + { + // エラー発生時はAI回答欄を削除し、exceptionを投げる + this.Messages.Remove(this.Messages.Where((x) => x.Id == msgId).FirstOrDefault()); + throw ex; + } + } + } + } + } + private APIData.TCohereV2ChatMessage[] SetCohereV2ChatHistories(List histories) + { + if (histories == null || histories.Count == 0) + { + return new APIData.TCohereV2ChatMessage[] { }; + } + else + { + var messages = new APIData.TCohereV2ChatMessage[histories.Count]; + for (int i = 0; i < histories.Count; i++) + { + var history = histories[i]; + messages[i] = new APIData.TCohereV2ChatMessage() + { + role = history.Role == "ai" ? "assistant" : "user", + content = new APIData.TContent[] { new APIData.TContent() { type = "text", text = history.Content } }, + }; + } + return messages; + } + } + + /// + /// プロンプト入力(チャットルームなし/マルチモーダル:Cohere OpenAI 互換 API) + /// + /// 入力 + internal async Task SendMessageOpenAIChatAsync(List histories, float temperature, int token, string inputText, string systemPrompt, string retrieverID, string filePath) + { + var content = inputText?.Trim() ?? string.Empty; + var refs = new List(); + var base64ImageData = !string.IsNullOrEmpty(filePath) ? await Base64Helper.ImageFileToBase64Async(filePath) : string.Empty; + if (!string.IsNullOrEmpty(content)) + { + var body = new APIData.TCohereV2ChatRequest() + { + model = "takane", + messages = this.SetCohereV2ChatHistories(histories), + temperature = temperature, + max_tokens = (uint)token, + }; + + // 既存メッセージをリスト化して末尾に要素を追加する + var list = new System.Collections.Generic.List(); + if (body.messages != null && body.messages.Length > 0) + { + list.AddRange(body.messages); + } + + // システムプロンプト追加 + if (!string.IsNullOrEmpty(systemPrompt)) + { + list.Add(new APIData.TCohereV2ChatMessage() + { + role = "system", + content = new APIData.TContent[] { new APIData.TContent() { type = "text", text = systemPrompt } }, + }); + } + + // 参照情報追加 (OpenAI 互換 API では、参照情報を質問文に組み込む) + if (!string.IsNullOrEmpty(retrieverID)) + { + var refChunks = await this.SearchRetrieverAsync(retrieverID, content, 10); + if (refChunks != null && refChunks.Length > 0) + { + refs.AddRange(refChunks?.Select(chunk => (chunk?.text.Replace("\n\n", "\n") as string) ?? string.Empty) ?? Enumerable.Empty()); + content = $"{string.Join("\n", refs)}\n\nQuestion:{content}"; + } + } + + // 入力プロンプト追加 + if (!string.IsNullOrEmpty(base64ImageData)) + { + list.Add(new APIData.TCohereV2ChatMessage() + { + role = "user", + content = new APIData.TContent[] { + new APIData.TContent() { type = "text", text = content }, + new APIData.TContent() { type = "image_url", image_url = new APIData.TImageUrl() { url= $"data:image/png;base64,{base64ImageData}" } } + }, + }); + } + else + { + list.Add(new APIData.TCohereV2ChatMessage() + { + role = "user", + content = new APIData.TContent[] { + new APIData.TContent() { type = "text", text = content }, + }, + }); + } + + body.messages = list.ToArray(); + + // 質問のメッセージ追加(参照情報は表示しない) + this.SetMessage("user", inputText, DateTime.UtcNow.ToLocalTime(), new List(), filePath); + + // ここで body を JSON 文字列にシリアライズして変数に格納する + using (var ms = new MemoryStream()) + { + var msgId = this.SetMessage("ai", Resources.Streaming, DateTime.UtcNow.ToLocalTime(), new List()); + OnPropertyChanged("Messages_Item"); + var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TCohereV2ChatRequest)); + { + serializer.WriteObject(ms, body); + try + { + var bodyJsonString = Encoding.UTF8.GetString(ms.ToArray()); + var jsonString = await HttpHelper.PostRequestAsync($"/api/v1/pass-through/takane/compatibility/v1/chat/completions", this.IdToken, bodyJsonString); + using (var json = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString))) + { + var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TOpenAIChatResponse)); + { + // 回答のメッセージ追加 + var item = ser.ReadObject(json) as APIData.TOpenAIChatResponse; + if (item?.id != null) + { + this.SetMessage(msgId, "ai", item.choices[0].message.content, DateTime.UtcNow.ToLocalTime(), refs); } else { @@ -936,6 +1123,48 @@ internal async Task SendMessageWithFileAsync(List histories, float tem } } + /// + /// リトリーバー検索 + /// + /// + /// + /// + /// + internal async Task SearchRetrieverAsync(string id, string content, int limit = 10) + { + TRefChunks[] refChunks = null; + var body = new TRetrieverSearchRequest() + { + search_type = "similarity_search", + search_text = content, + limit = limit, + filter = new TRetrieverFilter() + { + retriever_id = new TRetrieverFilterQuery() { ids = new string[] { id } } + } + }; + + // ここで body を JSON 文字列にシリアライズして変数に格納する + using (var ms = new MemoryStream()) + { + var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(TRetrieverSearchRequest)); + { + serializer.WriteObject(ms, body); + var bodyJsonString = Encoding.UTF8.GetString(ms.ToArray()); + var jsonString = await HttpHelper.PostRequestAsync("/api/v1/retrievers/search", this.IdToken, bodyJsonString); + using (var json = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString))) + { + var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(TRetrieverSearchResponse)); + { + var result = ser.ReadObject(json) as TRetrieverSearchResponse; + refChunks = result?.results ?? new TRefChunks[0]; + json.Close(); + } + } + } + } + return refChunks; + } /// /// 最新の入力プロンプトまでを削除する(AIからの回答がある場合は、その回答まで削除する @@ -1037,20 +1266,28 @@ internal async Task SendAsync(string content, string filePath) await Task.Delay(100); } } - else if (string.IsNullOrEmpty(filePath)) + else if (string.IsNullOrEmpty(filePath) && string.IsNullOrEmpty(Config.RetrieverID)) { - await this.SendMessageAsync(this.Messages.ToList(), (float)0.5, 1024, content); + await this.SendMessageSimpleChatAsync(this.Messages.ToList(), Config.Temperature, Config.MaxTokens, content, Config.SystemPrompt); OnPropertyChanged("IsStreaming"); } else { - await this.SendMessageWithFileAsync(this.Messages.ToList(), (float)0.5, 1024, content, filePath); + if (this.SelectedAPI?.ID == "v2") + { + await this.SendMessageCohereV2ChatAsync(this.Messages.ToList(), Config.Temperature, Config.MaxTokens, content, Config.SystemPrompt, Config.RetrieverID, filePath); + } + else + { + await this.SendMessageOpenAIChatAsync(this.Messages.ToList(), Config.Temperature, Config.MaxTokens, content, Config.SystemPrompt, Config.RetrieverID, filePath); + + } OnPropertyChanged("IsStreaming"); } } catch { - // 追加失敗時は無視(必要であればログ追加) + throw; } } } @@ -1091,4 +1328,11 @@ public class TDataRetriever public string[] OriginIDs { get; set; } = null; public DateTime CreateDateTime { get; set; } = DateTime.Now; } + + public class TItem + { + public string ID { get; set; } = string.Empty; + public string Name { get; set; } = string.Empty; + public string FullName { get; set; } = string.Empty; + } } \ No newline at end of file diff --git a/SampleCSharpUI/Models/ChatRoomModel.cs b/SampleCSharpUI/Models/ChatRoomModel.cs index 3199b4f..b34ecda 100644 --- a/SampleCSharpUI/Models/ChatRoomModel.cs +++ b/SampleCSharpUI/Models/ChatRoomModel.cs @@ -49,6 +49,20 @@ public string ChatRoomName } } + /// + /// システムプロンプトルーム名 + /// + private string _SystemPrompt = string.Empty; + public string SystemPrompt + { + get { return _SystemPrompt; } + set + { + _SystemPrompt = value; + OnPropertyChanged(); + } + } + /// /// ランダム性 /// @@ -105,6 +119,20 @@ public int AnswerTokenBudget } } + /// + /// 最大トークン(Takane互換APIでは、回答トークン) + /// + private int _MaxTokens = 8192; + public int MaxTokens + { + get { return _MaxTokens; } + set + { + _MaxTokens = value; + OnPropertyChanged(); + } + } + /// /// コンストラクター /// @@ -120,25 +148,48 @@ public ChatRoomModel() internal async Task GetChatRoomAsync(string id, List retrievers) { var selectedRetriever = new TDataRetriever(); - var jsonString = await HttpHelper.GetRequestAsync($"/api/v1/chats/{id}", this.IdToken); - using (var json = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString))) + + // チャットルーム情報を取得 + if (!string.IsNullOrEmpty(id)) { - var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TChat)); + // チャットルームIDが指定されている場合は、チャットルームから取得 + var jsonString = await HttpHelper.GetRequestAsync($"/api/v1/chats/{id}", this.IdToken); + using (var json = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString))) { - this.ChatRoomData = ser.ReadObject(json) as APIData.TChat; - - // 取得値設定 - this.ChatRoomName = this.ChatRoomData.name.Trim(); - this.Temperature = this.ChatRoomData.chat_setting.temperature; - this.HistoryTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.history; - this.DocumentTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.documents; - this.AnswerTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.answer; - selectedRetriever = retrievers.FirstOrDefault((x) => x.ID == this.ChatRoomData.retriever_ids.FirstOrDefault()); - if (selectedRetriever == null) + var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TChat)); { - selectedRetriever = retrievers[0]; + this.ChatRoomData = ser.ReadObject(json) as APIData.TChat; + + // 取得値設定 + this.ChatRoomName = this.ChatRoomData.name.Trim(); + this.Temperature = this.ChatRoomData.chat_setting.temperature; + this.HistoryTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.history; + this.DocumentTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.documents; + this.AnswerTokenBudget = this.ChatRoomData.chat_setting.tokens_budget.answer; + selectedRetriever = retrievers.FirstOrDefault((x) => x.ID == this.ChatRoomData.retriever_ids?.FirstOrDefault()); + if (selectedRetriever == null) + { + selectedRetriever = retrievers[0]; + } + json.Close(); } - json.Close(); + } + } + else + { + // チャットルームなし時は設定ファイルから取得 + //TODO: 設定ファイルから取得/デフォルト値を設定 + this.ChatRoomName = "(none)"; + this.SystemPrompt = Config.SystemPrompt; + this.Temperature = Config.Temperature; + this.HistoryTokenBudget = 0; // 未使用パラメタ + this.DocumentTokenBudget = 0; // 未使用パラメタ + this.AnswerTokenBudget = 0; // 未使用パラメタ + this.MaxTokens = Config.MaxTokens; + selectedRetriever = retrievers.FirstOrDefault((x) => x.ID == Config.RetrieverID); + if (selectedRetriever == null) + { + selectedRetriever = retrievers[0]; } } return selectedRetriever; @@ -161,35 +212,48 @@ internal async Task CreateChatRoomAsync(string chatRoomName, string retr /// internal async Task SetChatRoomAsync(string retrieverID) { - var id = this.ChatRoomData.id; + var id = this.ChatRoomData?.id; // 更新値設定 - if (!string.IsNullOrEmpty(retrieverID) && this.DocumentTokenBudget == 0) + if (!string.IsNullOrEmpty(id)) { - //history = string.IsNullOrEmpty(retrieverID) ? 125000 : 62500; - //documents = string.IsNullOrEmpty(retrieverID) ? 0 : 62500; - //answer = string.IsNullOrEmpty(retrieverID) ? 2048 : 2048; - this.DocumentTokenBudget = this.HistoryTokenBudget / 2; - this.HistoryTokenBudget = this.HistoryTokenBudget - this.DocumentTokenBudget; - } - this.ChatRoomData.name = this.ChatRoomName.Trim(); - this.ChatRoomData.chat_setting.temperature = this.Temperature; - this.ChatRoomData.chat_setting.tokens_budget.history = this.HistoryTokenBudget; - this.ChatRoomData.chat_setting.tokens_budget.documents = this.DocumentTokenBudget; - this.ChatRoomData.chat_setting.tokens_budget.answer = this.AnswerTokenBudget; - this.ChatRoomData.retriever_ids = string.IsNullOrEmpty(retrieverID) ? new string[] { } : new string[] { retrieverID }; - this.ChatRoomData.chat_template_id = string.IsNullOrEmpty(retrieverID) ? "builtin.chat" : "builtin.document_combine"; + // チャットルームあり:チャットルームに設定値を保存 + if (!string.IsNullOrEmpty(retrieverID) && this.DocumentTokenBudget == 0) + { + //history = string.IsNullOrEmpty(retrieverID) ? 125000 : 62500; + //documents = string.IsNullOrEmpty(retrieverID) ? 0 : 62500; + //answer = string.IsNullOrEmpty(retrieverID) ? 2048 : 2048; + this.DocumentTokenBudget = this.HistoryTokenBudget / 2; + this.HistoryTokenBudget = this.HistoryTokenBudget - this.DocumentTokenBudget; + } + this.ChatRoomData.name = this.ChatRoomName.Trim(); + this.ChatRoomData.chat_setting.temperature = this.Temperature; + this.ChatRoomData.chat_setting.tokens_budget.history = this.HistoryTokenBudget; + this.ChatRoomData.chat_setting.tokens_budget.documents = this.DocumentTokenBudget; + this.ChatRoomData.chat_setting.tokens_budget.answer = this.AnswerTokenBudget; + this.ChatRoomData.chat_setting.max_tokens = this.AnswerTokenBudget; // TakaneのMax_Tokensは、回答トークンと同じ値を設定する + this.ChatRoomData.retriever_ids = string.IsNullOrEmpty(retrieverID) ? new string[] { } : new string[] { retrieverID }; + this.ChatRoomData.chat_template_id = string.IsNullOrEmpty(retrieverID) ? "builtin.chat" : "builtin.document_combine"; - // 更新APIコール - using (var ms = new MemoryStream()) - { - var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TChat)); + // 更新APIコール + using (var ms = new MemoryStream()) { - serializer.WriteObject(ms, this.ChatRoomData); - var bodyJsonString = Encoding.UTF8.GetString(ms.ToArray()); - var jsonString = await HttpHelper.PutRequestAsync($"/api/v1/chats/{id}", this.IdToken, bodyJsonString); + var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TChat)); + { + serializer.WriteObject(ms, this.ChatRoomData); + var bodyJsonString = Encoding.UTF8.GetString(ms.ToArray()); + var jsonString = await HttpHelper.PutRequestAsync($"/api/v1/chats/{id}", this.IdToken, bodyJsonString); + } } } + else + { + // チャットルームなし:設定ファイルに保存 + Config.SystemPrompt = this.SystemPrompt; + Config.Temperature = this.Temperature; + Config.MaxTokens = this.MaxTokens; + Config.RetrieverID = retrieverID; + } } /// diff --git a/SampleCSharpUI/Models/RetrieverModel.cs b/SampleCSharpUI/Models/RetrieverModel.cs index 6e72d6f..5f537ab 100644 --- a/SampleCSharpUI/Models/RetrieverModel.cs +++ b/SampleCSharpUI/Models/RetrieverModel.cs @@ -104,7 +104,7 @@ internal async Task GetRetrieversAsync(bool isUseNone = false) var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(APIData.TRetrievers)); { var result = ser.ReadObject(json) as APIData.TRetrievers; - foreach (var item in result.results?.OrderByDescending((x)=> x.created_at)) + foreach (var item in result.results?.OrderByDescending((x) => x.created_at)) { var retriever = new Models.TDataRetriever() { diff --git a/SampleCSharpUI/Properties/AssemblyInfo.cs b/SampleCSharpUI/Properties/AssemblyInfo.cs index da302ce..7eb0c3f 100644 --- a/SampleCSharpUI/Properties/AssemblyInfo.cs +++ b/SampleCSharpUI/Properties/AssemblyInfo.cs @@ -48,5 +48,5 @@ // ビルド番号 // リビジョン // -[assembly: AssemblyVersion("1.3.2.0")] -[assembly: AssemblyFileVersion("1.3.2.0")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyFileVersion("1.4.0.0")] diff --git a/SampleCSharpUI/Properties/Resources.Designer.cs b/SampleCSharpUI/Properties/Resources.Designer.cs index ed6027a..aa7ccc3 100644 --- a/SampleCSharpUI/Properties/Resources.Designer.cs +++ b/SampleCSharpUI/Properties/Resources.Designer.cs @@ -339,6 +339,15 @@ public static string ManageRetrievers { } } + /// + /// Max_Tokens に類似しているローカライズされた文字列を検索します。 + /// + public static string MaxTokens { + get { + return ResourceManager.GetString("MaxTokens", resourceCulture); + } + } + /// /// バージョン情報(_A) に類似しているローカライズされた文字列を検索します。 /// @@ -600,6 +609,15 @@ public static string Streaming { } } + /// + /// システムプロンプト に類似しているローカライズされた文字列を検索します。 + /// + public static string SystemPrompt { + get { + return ResourceManager.GetString("SystemPrompt", resourceCulture); + } + } + /// /// ランダム性 に類似しているローカライズされた文字列を検索します。 /// diff --git a/SampleCSharpUI/Properties/Resources.resx b/SampleCSharpUI/Properties/Resources.resx index 03fe1b0..cc8038e 100644 --- a/SampleCSharpUI/Properties/Resources.resx +++ b/SampleCSharpUI/Properties/Resources.resx @@ -306,4 +306,10 @@ [ログイン]をクリックして、事前に設定した内容で認証を行ってください。 + + Max_Tokens + + + システムプロンプト + \ No newline at end of file diff --git a/SampleCSharpUI/SampleCSharpUI.csproj b/SampleCSharpUI/SampleCSharpUI.csproj index a2cd0e5..e958f10 100644 --- a/SampleCSharpUI/SampleCSharpUI.csproj +++ b/SampleCSharpUI/SampleCSharpUI.csproj @@ -153,6 +153,7 @@ + @@ -167,6 +168,7 @@ + diff --git a/SampleCSharpUI/ViewModels/MainViewModel.cs b/SampleCSharpUI/ViewModels/MainViewModel.cs index f4d3619..cf8a03c 100644 --- a/SampleCSharpUI/ViewModels/MainViewModel.cs +++ b/SampleCSharpUI/ViewModels/MainViewModel.cs @@ -1,4 +1,5 @@ using SampleCSharpUI.Commons; +using SampleCSharpUI.Models; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -78,6 +79,24 @@ public ObservableCollection Messages set { this.Model.Messages = value; } } + /// + /// API一覧を表すコレクション。 + /// + public ObservableCollection APIs + { + get { return this.Model.APIs; } + set { this.Model.APIs = value; } + } + + /// + /// 利用API + /// + public Models.TItem SelectedAPI + { + get { return this.Model.SelectedAPI; } + set { this.Model.SelectedAPI = value; } + } + /// /// Busy表示用 /// @@ -134,6 +153,9 @@ public string AttachedFilePath } } + /// + /// 添付ファイル名(1ファイルのみ) + /// private string _AttachedFileName; public string AttachedFileName { @@ -148,6 +170,7 @@ public string AttachedFileName } } + /// /// 参照ドキュメント一覧 /// @@ -233,7 +256,7 @@ internal async Task DisconnectAsync() /// ルーム一覧取得 /// /// - internal async Task GetChatRoomsAsync(bool isUseNone = false) + internal async Task GetChatRoomsAsync(bool isUseNone = true) { await this.Model.GetChatRoomsAsync(isUseNone); } @@ -388,6 +411,7 @@ public RelayCommand PreviewKeyDownCommand { // Command内で例外が発生した場合はここでキャッチしてメッセージ表示 OnMessaged(ex.Message); + this.IsBusy = false; } } } diff --git a/SampleCSharpUI/ViewModels/ManageChatRoomsViewModel.cs b/SampleCSharpUI/ViewModels/ManageChatRoomsViewModel.cs index e6fbbcd..8e48d1a 100644 --- a/SampleCSharpUI/ViewModels/ManageChatRoomsViewModel.cs +++ b/SampleCSharpUI/ViewModels/ManageChatRoomsViewModel.cs @@ -82,6 +82,24 @@ public int AnswerTokenBudget set { this.Model.AnswerTokenBudget = value; } } + /// + /// 最大トークン + /// + public int MaxTokens + { + get { return this.Model.MaxTokens; } + set { this.Model.MaxTokens = value; } + } + + /// + /// システムプロンプト + /// + public string SystemPrompt + { + get { return this.Model.SystemPrompt; } + set { this.Model.SystemPrompt = value; } + } + /// /// リトリーバー一覧を表すコレクション /// @@ -187,6 +205,42 @@ public RelayCommand EditRoomCommand } } + /// + /// 設定保存 + /// + RelayCommand _SaveCommand; + public RelayCommand SaveCommand + { + get + { + if (_SaveCommand == null) + { + _SaveCommand = new RelayCommand(async () => + { + this.IsBusy = true; + try + { + await this.Model.SetChatRoomAsync(this.SelectedRetriever.ID); + OnMessaged(""); + } + catch (Exception ex) + { + OnMessaged(ex.Message); + } + finally + { + this.IsBusy = false; + } + }); + } + return _SaveCommand; + } + set + { + _SaveCommand = value; + } + } + /// /// ルーム削除(確認ダイアログあり) /// diff --git a/SampleCSharpUI/Views/EditChatRoomWindow.xaml b/SampleCSharpUI/Views/EditChatRoomWindow.xaml index a14160d..7bf9dbb 100644 --- a/SampleCSharpUI/Views/EditChatRoomWindow.xaml +++ b/SampleCSharpUI/Views/EditChatRoomWindow.xaml @@ -19,6 +19,25 @@ + + + + + @@ -34,48 +53,78 @@ + + + - - + - + @@ -290,7 +291,7 @@ - + @@ -309,6 +310,33 @@ + + + + + + + + + + + + diff --git a/SampleCSharpUI/Views/MainWindow.xaml.cs b/SampleCSharpUI/Views/MainWindow.xaml.cs index b8eeae7..ffb7d71 100644 --- a/SampleCSharpUI/Views/MainWindow.xaml.cs +++ b/SampleCSharpUI/Views/MainWindow.xaml.cs @@ -110,7 +110,7 @@ public MainWindow() { // 編集画面を表示 var subWindow = new EditChatRoomWindow(this.ViewModel.SelectedChatRoom) { Owner = this }; - if (subWindow.ShowDialog() == true) + if (subWindow.ShowDialog() == true && !string.IsNullOrEmpty(App.MainVM.SelectedChatRoom?.ID)) { // チャットルーム一覧を再取得 await this.ViewModel.GetChatRoomsAsync(); diff --git a/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml b/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml index fa192e4..2f15809 100644 --- a/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml +++ b/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml @@ -76,6 +76,16 @@ + + + diff --git a/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml.cs b/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml.cs index 7d8c666..167ccbb 100644 --- a/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml.cs +++ b/SampleCSharpUI/Views/ManageChatRoomsWindow.xaml.cs @@ -37,7 +37,7 @@ public ManageChatRoomsWindow(MainWindow window) this.ViewModel.IsBusy = true; try { - await App.MainVM.GetChatRoomsAsync(true); + await App.MainVM.GetChatRoomsAsync(); } catch (Exception ex) { diff --git a/images/snapshot_01.png b/images/snapshot_01.png index d34bde80106e349262778fb12450a1ff1da0447b..96b0c7f2b6dc1723bb989cb3bf598b0b1212d3b3 100644 GIT binary patch literal 111972 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៏+&G4H=xTL2t$KHkHp#c$O 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 Kn;-HPAO8)2q#K6(2fy3@y?Zf> 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 Q{Fw4mVsfG-!f(C)8|i^zVE_OC