ChatGPT (Generative Pre-trained Transformer) でテキストを生成する
次の行をアプリケーションの Gemfile に追加します。
gem "rubyai"
そして、以下を実行します。
$ bundle install
または次のようにインストールします。
$ gem install rubyai
そして次のように要求します:
require "rubyai"
https://beta.openai.com/account/api-keys から API キーを取得します。
複数の組織に所属している場合は、https://beta.openai.com/account/org-settings から組織 ID を取得できます。
簡単なテストとして、トークンを新しいクライアントに直接渡すことができます。
result = RubyAI :: Client . new ( access_token , messages ) . call
ChatGPT は、会話形式のテキスト生成モデルです。これを使用して、一連のメッセージに対する応答を生成できます。
api_key = "YOUR API KEY"
messages = "Who is the best chess player in history?"
result = RubyAI :: Client . new ( api_key , messages , model : "gpt-4" ) . call
puts result . dig ( "choices" , 0 , "message" , "content" )
# => As an AI language model, I do not have personal opinions, but according to historical records, Garry Kasparov is often considered as one of the best chess players in history. Other notable players include Magnus Carlsen, Bobby Fischer, and Jose Capablanca.
構成ファイルを使用してクライアント変数を渡すこともできます。例のように構成ファイルを作成します。
configuration = RubyAI :: Configuration . new ( "YOUR API KEY" , "Who is the best chess player in history?" )
client = RubyAI :: Client . new ( configuration )
result = client . call
puts result . dig ( "choices" , 0 , "message" , "content" )
また、(ほとんどの場合) Rails を使用している場合は、configure メソッドを使用できます。
RubyAI . configure do | config |
config . api_key = "YOUR API KEY"
config . messages = "Who is the best chess player in history?"
config . model = "gpt-4o-mini"
end
すべての一般的な GPT モデルをサポートしています。
gpt-4-turbo: 効率と速度を最適化した GPT-4 の強力なバリアントで、要求の高いタスクに最適です。
gpt-4o-mini: GPT-4 の合理化されたバージョンで、パフォーマンスとリソース効率のバランスをとるように設計されています。
o1-mini: コンパクトでありながら軽量なタスクに適した効率的なモデル。
o1-preview: o1 モデルのプレビュー バージョンで、今後の進歩と機能についての洞察を提供します。
リポジトリをチェックアウトした後、 bin/setup
実行して依存関係をインストールします。 bin/console
実行すると対話型プロンプトが表示され、実験が可能になります。
この gem をローカル マシンにインストールするには、 bundle exec rake install
実行します。
バグレポートとプルリクエストは、GitHub (https://github.com/alexshapalov/rubyai) で受け付けています。このプロジェクトは、コラボレーションや貢献者にとって安全で歓迎的なスペースとなることを目的としています。
この gem は、MIT ライセンスの条件に基づいてオープン ソースとして利用できます。