「C# で GPT(一般目的テンプレート)を拡張しましょう」
「C#でGPT(一般的な目的のテンプレート)の機能を拡張しよう」
数週間前、OpenAIはGPTをリリースしました。GPTは基本的にはOpenAIがホストするカスタムChatGPTチャットボットです。その最も重要な機能は、APIを使用してGPTを拡張する能力です。Magicの最も重要な機能は、簡単にAPIを作成できることです。
したがって、MagicとGPTは完璧な組み合わせとなり、数日前に当社が公開した記事で既に示されているように、数秒でLow-Code CRUDベースのGPTを作成する方法を実証しています。
CRUDはデータベースを扱う際に非常に重要です。ただし、時折、完全にユニークなコードでGPTを拡張するためのカスタム機能が必要になることがあります。この記事では、それを実現する方法を示します。
コード
まず、いくつかのC#コードが必要です。 "modules"
フォルダ内に "cs-demo"
という名前の新しいフォルダを作成し、その中に "slot.cs"
という名前のファイルを作成します。次のコードをファイルに入力します。
- ジェネラティブAIをマスターするための5つの無料コース
- LLM SaaSのためのFastAPIテンプレート パート1 — Authとファイルのアップロード
- スタートアップ企業向けの20の最高のChatGPTプロンプト
入力が完了したら、Hyper IDEは次のようになります(この記事の後半で詳細を説明する "get-employee-details.get.hl"
ファイルは含まれていません)。
C#コードの説明
上記のコードは "[get-employee-details]"
というスロットを宣言しています。これは1つのパラメータである名前を受け取り、引数の値に応じてTage、Thomas、またはAriaのデータを返します。上記のコードをコンパイルした後は、Hyperlambda Playgroundで以下を使用してHyperlambdaから呼び出すことができます。
Hyperlambdaの重要な機能の1つは、スロットからグラフオブジェクトを受け渡し、返すことができる点です。上記のC#コードは、呼び出しの唯一のパラメータとして名前が渡されることを前提としており、C#コードの子ノードとして3つの新しいノードを返します。上記のコードをHyperlambda Playgroundで実行した後、次の結果が得られます。
注意してください、C#コード内の GetEx<string>()
呼び出しは、コード内のラムダ式を評価できるようにします。
APIエンドポイントの作成
ただし、使用する前にコードをコンパイルし、HTTPエンドポイントにラッピングする必要があります。Magicの1つの機能は、ほぼC#をスクリプト言語として使用できることであり、コードを動的にコンパイルし、通常のようにJavaScriptやPythonなどのスクリプト言語を使用する場合とほぼ同じ方法で実行することができます。
この機能により、コンパイルプロセスをHyperlambdaエンドポイント内に単純にラップし、コードを動的にコンパイルして実行し、その実行結果を返すことができます。まず、cs-demo
フォルダ内にget-employee-details.get.hl
という新しいファイルを作成し、ファイルに以下の内容を入力します。
以下のビデオでは、コードを再コンパイルすることなく動作を保つために、インテリジェントなキャッシュを適用していますが、コードが理解しやすいようにこれらの部分を省略しました。ただし、上記のコードでは、私たちは基本的に完了しており、すでにAPIエンドポイントをGPTに接続できます。MagicのManager/Endpointsコンポーネントを使用して、以下に示すようにエンドポイントを実行します。
エンドポイントを検索するためにemployee
でフィルタリングし、thomas
を名前パラメータとして追加してください。
Hyperlambdaコードの説明
上記のHyperlambdaコードは、C#ファイルをロードし、コードをコンパイルしてbyte[]
を生成し、それをアセンブリとして動的に読み込み、アセンブリをAppDomainに注入します。これにより、C#コードを手動で再コンパイルせずに変更でき、新しいコードは動的にコンパイルされ、変更が即座に反映されます。
まさに、MagicとHyperlambdaを使えば、C#をスクリプト言語のように扱うことができます。[こちら](https://www.voagi.com/this-ai-paper-introduces-lemur-and-lemur-chat-for-harmonizing-natural-language-and-code-for-language.html) のリンクを参照してください。
実際のアプリケーションでは、C#コードを毎回再コンパイルすることは避けた方が良いです。このページの下部にあるビデオで、それに関連するテクニックを紹介していますが、上記の例ではコードをわかりやすくするために避けています。
エンドポイントをGPTに接続する
この段階では、APIエンドポイントをカスタムGPTに接続する必要があります。[こちら](https://www.voagi.com/build-a-lowcode-gpt-ai-app-in-5-minutes.html) のリンクを参照して、Magicのエンドポイントコンポーネントでopenapi
をフィルタリングすることを確認してください。以下のようなエンドポイントが表示されるはずです。
上記の手順を完了したら、エンドポイントのJSONをコピーするか、エンドポイントコンポーネントのコピーボタンを使用してエンドポイントのURLをコピーします。この時点で、このOpenAPI仕様をGPTのAction
としてOpenAIに提供するだけで完了です。
GPTのテスト
この時点で基本的に完了し、すでにGPTのテストを開始することができます。次のような質問を投げかけることができます。
- テージの電話番号は何ですか?
- トーマスは従業員です。私の get employee アクションを使用して彼の情報を調べてください。
- アリアのメールアドレスは何ですか?
- その他…
以下に、GPTを利用する例を示します。
上記の例では、GPTが正しく “テージ” をAPIエンドポイントに渡しており、再びテージのメールアドレスを返し、そのメールアドレスをあなたとの対話で使用しています。この時点で、例えば、Send email
エンドポイントを作成してChatGPTがメールの作成と送信をサポートすることもできますが、それは別の日の課題です。今は以下のカスタムGPTを使って遊んでみることができます。
- [こちら](https://www.voagi.com/2023-guide-traintestvalidation-split.html) のリンクから私の拡張C# GPTをテストしてみてください。
以下のビデオで、私が手順全体を説明しています。ご覧ください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles