Skip to content

Latest commit

 

History

History
257 lines (165 loc) · 16 KB

README.md

File metadata and controls

257 lines (165 loc) · 16 KB

Powershai

概要

PowershAI (Powershell + AI) は、Powershell から AI にアクセスできるようにするモジュールです。

詳細

PowershAI は、Powershell セッションに AI 機能を追加するモジュールです。
主な AI サービスの API への複雑な呼び出しと処理を簡素化し、カプセル化する目的で設計されています。

PowershAI は、ユーザーが LLM と直接プロンプトで対話したり、コマンドの結果をプロンプトのコンテキストとして使用したりできる一連の標準を定義します。
また、標準化された一連の関数を通じて、さまざまなプロバイダーを使用できます。たとえば、GPT-4o や Gemini Flash と、まったく同じコードで対話できます。

この標準化に加えて、PowershAI は、さまざまな AI サービスプロバイダーとの接続のための内部関数と特定の関数を公開します。
これにより、これらの API の特定の機能を使用するスクリプトをカスタマイズして作成できます。

PowershAI のアーキテクチャは、「プロバイダー」という概念を定義しています。これは、それぞれの API との対話に必要なすべての詳細を実装したファイルです。
新しいプロバイダーは、新しい機能が利用可能になるにつれて追加できます。

最終的には、スクリプトで AI を使い始めるためのさまざまな選択肢があります。

すでに実装されている、または部分的に実装されている有名なプロバイダーの例を以下に示します。

  • OpenAI
  • Hugging Face
  • Gemini
  • Ollama
  • Maritalk (ブラジルの LLM)

PowershAI を使い始めるのは簡単です。

# モジュールをインストールします!
Install-Module -Scope CurrentUser powershai 

# インポートします!
import-module powershai

# プロバイダーのリスト
Get-AiProviders

# 各プロバイダーの使用の詳細については、ドキュメントを参照してください!
# ドキュメントには、get-help を使用してアクセスできます。
Get-Help about_NomeProvider

# 例:
Get-Help about_huggingface

ヘルプの取得

PowershAI を可能な限りドキュメント化するための努力にもかかわらず、すべての疑問点を解決するために必要なすべてのドキュメントを作成したり、利用可能なすべてのコマンドについて説明したりすることはできない可能性があります。 そのため、基本的なことを自分で学ぶことが重要です。

Get-Command -mo powershai コマンドを実行すると、利用可能なすべてのコマンドを一覧表示できます。
このコマンドは、powershAI モジュールからエクスポートされたすべての cmdlet、エイリアス、関数 を返します。
これは、どのコマンドがあるかを調べるための最も簡単な出発点です。多くのコマンドは、名前を見るだけで自明です。

また、各コマンドについては、Get-Help -Full NomeComando を使用して詳細情報を取得できます。 コマンドに完全なドキュメントがない場合、または必要な情報が不足している場合は、GitHub に Issue を作成して、詳細な説明を求めることができます。

最後に、PowershAI のソースコードを調べて、コード全体に書かれたコメントを探すことができます。コメントは、機能やアーキテクチャをより技術的な観点から説明している場合があります。

新しいバージョンがリリースされるにつれて、ドキュメントは更新されます。 PowershAI に貢献し、プルリクエストや Issue を提出して、より詳細な説明が必要な情報や、まだ説明されていない情報を見つけた場合は、ドキュメントを改善してください。

コマンド構造

PowershAI は、さまざまなコマンドをエクスポートします。
これらのコマンドのほとんどは、「Ai」または「Powershai」で始まります。 これらのコマンドを、特定のプロバイダーではない、Powershai の グローバルコマンド と呼びます。

たとえば、Get-AiProviderSend-PowershaiChatNew-PowershaiChat などです。
プロバイダーもコマンドをエクスポートします。これらのコマンド名は、一般的にプロバイダー名で始まる場合が多いです。エクスポートされたコマンドのパターンについては、プロバイダーのドキュメントを参照してください。

慣例として、プロバイダーは「Ai」または「Powershai」を名前の一部として含むコマンドを実装しないでください。これらの名前は、プロバイダーに関係なく、グローバルコマンド専用です。
また、プロバイダーによって定義されたエイリアスは、常に 5 文字以上にする必要があります。5 文字未満のエイリアスは、グローバルコマンド専用です。

これらのコマンドのドキュメントは、グローバルコマンドのドキュメント で確認できます。
Get-PowershaiGlobalCommands コマンドを使用して、リストを取得できます!

プロバイダーのドキュメント

プロバイダーのドキュメント は、各プロバイダーの機能に関するヘルプを取得するための公式の場所です。
このドキュメントは、Powershell の Get-Help コマンドを使用してアクセスすることもできます。

プロバイダーのドキュメントは、常に about_Powershai_NomeProvider_Topico ヘルプを通じて提供されます。
about_Powershai_NomeProvider トピックは、最初の使用のための初期情報を提供する出発点であり、他のトピックの適切な使用方法に関する説明も含まれています。

チャット

チャットは、出発点であり、プロバイダーが提供するさまざまな LLM と対話することができます。
詳細は、チャット のドキュメントを参照してください。以下は、チャットの簡単な紹介です。

モデルとの会話

プロバイダーの初期設定が完了したら、会話を開始できます!
会話を開始する最も簡単な方法は、Send-PowershaiChat コマンドまたはエイリアスの ia を使用することです。

ia "こんにちは、Powershell について知っていますか?"

このコマンドは、設定されたプロバイダーのモデルにメッセージを送信し、その後に応答が表示されます。
応答時間は、モデルの能力とネットワークによって異なります。

パイプラインを使用して、他のコマンドの結果を直接 IA のコンテキストとして渡すことができます。

1..100 | Get-Random -count 10 | ia "これらの数字に関する興味深い情報を教えてください"

上記のコマンドは、1 から 100 までのシーケンスを生成し、各番号を Powershell のパイプラインに渡します。
次に、Get-Random コマンドは、これらの数字の中から 10 個をランダムに選択します。
そして、このシーケンスは (一度にすべて) IA に渡され、パラメーターに指定されたメッセージとともに送信されます。

-ForEach パラメーターを使用すると、IA が各入力を個別に処理するように指定できます。たとえば、

1..100 | Get-Random -count 10 | ia -ForEach "これらの数字に関する興味深い情報を教えてください"

上記のコマンドとの違いは、IA が 10 回呼び出されることです。1 回につき、1 つの数字に対して呼び出されます。
前の例では、IA は 1 回しか呼び出されず、10 個の数字すべてが渡されます。
この方法の利点は、コンテキストを減らすことができることです。ただし、多くのリクエストが発行されるため、時間がかかる可能性があります。
必要に応じてテストしてください!

オブジェクトモード

デフォルトでは、ia コマンドは何も返しません。ただし、-Object パラメーターを使用すると、この動作を変更できます。
このパラメーターが有効になっている場合、LLM に JSON で結果を生成するように指示し、その出力をパイプラインに書き込みます。
つまり、次のようなことができます。

ia -Obj "5 つのランダムな数字を、その値を書き言葉で記述してください"

# または、エイリアスの io/powershellgallery/dt/powershai を使用

io "5 つのランダムな数字を、その値を書き言葉で記述してください"

重要: すべてのプロバイダーがこのモードをサポートできるわけではありません。モデルは JSON をサポートできる必要があります!エラーが発生した場合は、同じコマンドが OpenAI のモデルで動作するか確認してください。 Issue を作成することもできます。

設定の保存

PowershAI では、チャットのパラメーター、認証トークンなど、さまざまな設定を調整できます。
設定を変更するたびに、その設定は Powershell セッションのメモリにのみ保存されます。
セッションを閉じ、再び開くと、行った設定はすべて失われます。

たとえば、毎回トークンを生成する必要がないように、Powershai は設定をエクスポートおよびインポートするための 2 つのコマンドを提供しています。
Export-PowershaiSettings コマンドは、ログインしたユーザーのプロファイルディレクトリにあるファイルに設定をエクスポートします。
エクスポートされたデータは機密情報を含む可能性があるため、暗号化キーの生成に使用されるパスワードを指定する必要があります。
エクスポートされたデータは、AES-256 を使用して暗号化されます。
Import-PowershaiSettings を使用してインポートできます。エクスポートに使用したパスワードを指定する必要があります。

このパスワードは、どこにも保存されないため、記憶しておくか、安全な場所に保管してください。

コスト

一部のプロバイダーは、使用したサービスに対して料金を請求する場合があることに注意してください。
PowershAI は、コストを管理しません。 プロンプト、パラメーターなどにデータを送信することができます。
プロバイダーの Web サイトが提供するツールを使用して、料金を監視する必要があります。

将来のバージョンには、コストをより適切に制御するためのコマンドやパラメーターが追加される可能性がありますが、現時点ではユーザーが監視する必要があります。

設定とトークンのエクスポートとインポート

データ (トークン、デフォルトモデル、チャット履歴など) の再利用を容易にするために、PowershAI ではセッションをエクスポートできます。
そのためには、Export-PowershaiSettings コマンドを使用します。パスワードを指定する必要があります。このパスワードは、キーを作成し、ファイルを暗号化するために使用されます。
このパスワードのみを使用して、ファイルを再度インポートできます。インポートするには、Import-PowershaiSettings コマンドを使用します。
デフォルトでは、チャットはエクスポートされません。チャットをエクスポートするには、-Chats パラメーターを追加できます: Export-PowershaiSettings -Chats
これにより、ファイルのサイズが大きくなり、エクスポート/インポート時間が長くなる可能性があります。 利点は、異なるセッション間で会話を続けることができることです。
この機能は、PowershAI を使用するたびに API キーを生成する必要がないようにするために、最初に作成されました。この機能を使用すると、各プロバイダーで API キーを 1 回生成し、更新するたびにエクスポートできます。パスワードで保護されているため、コンピューター上のファイルに安全に保存できます。
使用方法の詳細については、コマンドのヘルプを参照してください。

基本的な使用法

PowershAI は、非常に簡単に使用できます。次の例は、OpenAI でどのように使用するかを示しています。

# 現在のプロバイダーを OpenAI に変更
Set-AiProvider openai 

# 認証トークンを設定します (トークンは platform.openai.com の Web サイトで生成する必要があります)
Set-OpenaiToken 

# チャットを開始するためのコマンドを使用します!ia は Send-PowershaiChat のエイリアスで、デフォルトのチャットにメッセージを送信します!
ia "こんにちは、Powershaui から話しかけています!"

設定のエクスポート

# トークンを定義します (例) 
Set-OpenaiToken 

# 上記のコマンドを実行したら、エクスポートします!
Export-PowershaiSettings

# パスワードを指定する必要があります!

設定のインポート

import-module powershai 

# 設定をインポートします
Import-PowershaiSettings # コマンドは、エクスポート時に使用したパスワードを要求します

重要な情報

PowershAI は、さまざまなコマンドを提供しています。
各プロバイダーは、一連の命名規則に従った一連のコマンドを提供します。
使用方法の詳細については、プロバイダーのドキュメントを参照してください。

問題の解決

PowershAI は、非常に多くのコードがあり、すでに多くの機能を備えていますが、開発中の新しいプロジェクトです。
バグが見つかる可能性があり、この段階では、https://github.com/rrg92/powershai の公式リポジトリで Issue を作成して報告することが重要です。

問題のトラブルシューティングを行う場合は、次の手順に従うことをお勧めします。

  • デバッグを使用して問題を解決します。Set-PSBreakpoint などのコマンドは、コマンドラインで簡単に呼び出すことができ、時間を節約できます。
  • 一部の関数は、完全なエラーを表示しません。$error 変数を使用して、最後のエラーにアクセスできます。たとえば、
$e = $error[0];
$e.ErrorRecord.ScriptStackTrace # これは、例外が発生した正確な行を見つけるのに役立ちます!

関連項目

  • Hugging Face プロバイダーの使い方に関するビデオ: https://www.youtube.com/watch?v=DOWb8MTS5iU
  • 各プロバイダーのドキュメントを参照して、cmdlet の使用方法の詳細を確認してください。

タグ

  • 人工知能
  • AI

PowershAIとAIを使用して自動翻訳された。