Skip to content

Conversation

@Freeesia
Copy link
Owner

  • LLMによる機械翻訳
  • LLMによるOCR認識補正

`OcrCorrectionFilter.cs` に新しいフィルターモジュール `OcrCorrectionFilter` が追加されました。このモジュールは、OCRによって認識された文字列の誤字や脱字を修正するために、OpenAIのChat APIを使用します。キャッシュ機能とログ機能も実装されています。

`WindowTranslator.Plugin.LLMPlugin.csproj` に新しいプロジェクトが追加されました。このプロジェクトには、必要なパッケージ参照とビルド後のイベントが含まれています。

`AsyncEnumerable.cs` に新しい拡張メソッド `WhenEach` が追加されました。このメソッドは、非同期列挙を並列に処理し、完了した順に結果を返します。

`WindowTranslator.sln` に新しいプロジェクト `WindowTranslator.Plugin.LLMPlugin` が追加されました。このプロジェクトはソリューションに統合され、ビルド構成が設定されています。
`OcrCorrectionFilter.cs` から `LLMOptions` クラスの定義が削除され、`System.ComponentModel.DataAnnotations` のインポートが削除されました。

`LLMOptions.cs` に `LLMOptions` クラスが追加されました。このクラスは `IPluginParam` を実装し、`Model`、`ApiKey`、`Endpoint`、および `CorrectSample` プロパティを持ちます。

`LLMTranslator.cs` に `LLMTranslator` クラスが追加されました。このクラスは `ITranslateModule` を実装し、`IOptionsSnapshot<LLMOptions>` と `IOptionsSnapshot<LanguageOptions>` を受け取ります。`TranslateAsync` メソッドを持ち、入力テキストを翻訳するために OpenAI の `ChatClient` を使用します。
`LLMOptions.cs` に `TranslateSample` プロパティを追加しました。このプロパティは翻訳のサンプルテキストを保持します。
`LLMTranslator.cs` に翻訳の例を追加し、`llmOptions.Value.TranslateSample` を使用して提供します。
`OcrCorrectionFilter.cs` に `System.Text.Json` の使用を追加しました。
`OcrCorrectionFilter.cs` に `ChatMessage assitant` を追加しました。
`OcrCorrectionFilter.cs` に誤字修正の例の後に、修正する文字列のフォーマットに関する説明を追加しました。
`OcrCorrectionFilter.cs` の `CompleteChatAsync` メソッドの呼び出しを変更し、`JsonSerializer.Serialize` を使用してテキストをシリアライズし、`assitant` メッセージと `StopSequences` オプションを追加しました。
@Freeesia Freeesia added the enhancement New feature or request label Aug 11, 2024
`OcrCorrectionFilter` クラスの `assitant` メッセージの初期化が `ChatMessage.CreateAssistantMessage("\"")` から `ChatMessage.CreateAssistantMessage("[\"")` に変更されました。

`ExecutePreTranslate` メソッドが非同期メソッドに変更され、`IAsyncEnumerable<TextRect>` を返すようになりました。テキストをリストに収集し、後で一括して修正するように変更されました。

`Correct` メソッドが複数のテキストを受け取るように変更され、複数のテキストを一度に修正することが可能になりました。

`CompleteChatAsync` メソッドに渡されるユーザーメッセージが、単一のテキストから複数のテキストのリストに変更されました。

修正されたテキストのキャッシュ処理とエラーログのメッセージが、複数のテキストに対応するように変更されました。
@Freeesia Freeesia merged commit d0d906b into master Aug 11, 2024
@Freeesia Freeesia deleted the feature/LLM branch August 11, 2024 09:45
@Freeesia
Copy link
Owner Author

Fix #85

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants