第3章 ソリューションサーバーの設定
ソリューションサーバーは、Red Hat Developer Lightspeed for MTA が、組織内で実行されたすべての分析に基づくソースコード変更の集合的なメモリーを構築することを可能にするコンポーネントです。ユーザーが Visual Studio (VS) Code で問題に対するコード修正を要求すると、ソリューションサーバーは、現在のファイル内の問題に類似する問題を解決するために行われた過去のソースコード変更のパターン (解決済み事例とも呼ばれます) を拡張し、過去の解決策から導き出される信頼度の高い解決策を提案します。ユーザーが提案されたコード修正を承認すると、ソリューションサーバーは大規模言語モデル (LLM) と連携して、問題に関するヒントを改善します。この改善されたヒントはコンテキストの一部となります。コンテキストが改善されると、LLM は将来のケースでより信頼性の高いコード修正の提案を生成できるようになります。
ソリューションサーバーは、ユーザーに 2 つの主な利点をもたらします。
- コンテキストヒント: 成功したユーザー変更や承認された修正など、移行に関する過去の解決策の例をすくい上げ、困難な移行問題やこれまで解決できなかった移行問題に対する実用的なヒントを提供します。
- 移行の成功メトリクス: 実際の使用状況データから得られた、各移行ルールの詳細な成功メトリクスを明らかにします。これらのメトリクスを IDE または自動化ツールで使用すると、Red Hat Developer Lightspeed for MTA により特定のコードセグメントを正常に移行できる “信頼性の度合い” または確率をユーザーに提示できます。
Solution Server は、Red Hat Developer Lightspeed for MTA のオプションコンポーネントです。コードの解決策をリクエストするには、事前に次の設定を完了する必要があります。
ソリューションサーバーは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
| LLM プロバイダー (Tackle CR の値) | Tackle CR 設定の大規模言語モデルの例 |
|---|---|
| OpenShift AI プラットフォーム | Open AI 互換 API を使用してアクセスできる OpenShift AI クラスターにデプロイされたモデル |
|
Open AI ( |
|
|
Azure OpenAI ( |
|
|
Amazon Bedrock ( |
|
|
Google Gemini ( |
|
|
Ollama ( |
|
3.1. モデルのシークレットキーの設定 リンクのコピーリンクがクリップボードにコピーされました!
MTA Operator をインストールした Red Hat OpenShift プロジェクトで、大規模な言語モデル(LLM)プロバイダーの Kubernetes シークレットを設定する必要があります。
次のコマンドの oc は、kubectl に置き換えることができます。
Solution Server に必要なリソースを生成するには、OpenShift クラスターに LLM API キーシークレットを作成する必要があります。LLM API キーシークレットを設定しない場合、MTA の Red Hat Developer Lightspeed は、Solution Server の実行に必要なリソースを作成しません。
手順
openshift-mtaプロジェクトにkai-api-keysという名前の認証情報シークレットを作成します。プロバイダーとして Amazon Bedrock を使用する場合は、次のように入力します。
oc create secret generic aws-credentials \ --from-literal=AWS_ACCESS_KEY_ID=<YOUR_AWS_ACCESS_KEY_ID> \ --from-literal=AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY>
oc create secret generic aws-credentials \ --from-literal=AWS_ACCESS_KEY_ID=<YOUR_AWS_ACCESS_KEY_ID> \ --from-literal=AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロバイダーとして Azure OpenAI を使用する場合は、次のように入力します。
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=AZURE_OPENAI_API_KEY='<YOUR_AZURE_OPENAI_API_KEY>'
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=AZURE_OPENAI_API_KEY='<YOUR_AZURE_OPENAI_API_KEY>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロバイダーとして Google を使用する場合は、次のように入力します。
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=GEMINI_API_KEY='<YOUR_GOOGLE_API_KEY>'
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=GEMINI_API_KEY='<YOUR_GOOGLE_API_KEY>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenAI 互換プロバイダーの場合は、次のように入力します。
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=OPENAI_API_BASE='https://example.openai.com/v1' \ --from-literal=OPENAI_API_KEY='<YOUR_OPENAI_KEY>'
oc create secret generic kai-api-keys -n openshift-mta \ --from-literal=OPENAI_API_BASE='https://example.openai.com/v1' \ --from-literal=OPENAI_API_KEY='<YOUR_OPENAI_KEY>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ベース URL を Tackle カスタムリソースの
kai_llm_baseurl変数として設定することもできます。
(オプション) MTA Operator がすぐにシークレットを取得するように、強制的にリコンサイルします。
kubectl patch tackle tackle -n openshift-mta --type=merge -p \ '{"metadata":{"annotations":{"konveyor.io/force-reconcile":"'"$(date +%s)"'"}}}'kubectl patch tackle tackle -n openshift-mta --type=merge -p \ '{"metadata":{"annotations":{"konveyor.io/force-reconcile":"'"$(date +%s)"'"}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow