#25 Rubyで学ぶAI API(ChatGPT等)の呼び出し方の基本

ChatGPTのようなAI(人工知能)を、自分のプログラムから呼び出せたら便利だと思ったことはありませんか。実は難しい専用ソフトを使わなくても、Rubyの標準的な仕組みだけでAI APIを呼び出すことができます。この記事では、RubyからAI APIを利用する基本の流れを、初心者向けにやさしく解説します。

AI APIとは何か

API(エーピーアイ、Application Programming Interfaceの略)とは、プログラム同士が機能をやり取りする窓口のような仕組みです。AI APIは、AIの会社が用意しているサーバーに「この質問に答えて」とお願いすると、AIが考えた答えを返してくれる仕組みです。自分のパソコンでAIモデルを動かす必要がないため、比較的手軽に使えるのが特徴です。

APIリクエストの基本の流れ

AI APIを使うときの流れは、だいたいどのサービスでも共通しています。

  1. APIキー(利用者を識別するための暗号のような文字列)を取得する
  2. HTTP通信(インターネット上でデータをやり取りする方法)を使って、質問文などのデータを送る
  3. AIからの返事(JSONというテキスト形式のデータ)を受け取る
  4. 受け取ったデータから、必要な部分だけを取り出して使う

Rubyでこの通信を行うには、標準ライブラリのnet/httpを使う方法があります。ほかにも、httpartyfaradayといった外部のgem(Rubyの便利な拡張機能をまとめたパッケージ)を使う方法もあります。標準ライブラリだけでも十分動きますが、外部gemを使うとコードがすっきり書けることが多いです。

net/httpを使った送信の例

require 'net/http'
require 'json'
require 'uri'

uri = URI('https://api.example.com/v1/chat')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = "Bearer #{ENV['AI_API_KEY']}"
request.body = { message: "こんにちは" }.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts result['reply']

このコードでは、質問文をJSON形式に変換して送信し、返ってきた答えをJSONから元のデータに戻して表示しています。Rubyにはto_jsonJSON.parseのように、文字列とJSONを相互に変換するメソッドが標準で用意されています。そのため、変換処理を自分で書く必要がないのは助かるポイントです。

APIキーの扱い方の注意点

APIキーは、家の鍵のように第三者に知られてはいけない情報です。もしプログラムのコードに直接書いてしまい、それをそのままGitHub(ソースコードを公開・共有できるサービス)などにアップロードすると、誰でもそのキーを使えるようになってしまいます。その結果、勝手に利用されて費用が発生する恐れがあります。

そのため、APIキーはコードに直接書かず、環境変数(OSが管理する設定値)として保存し、ENV['AI_API_KEY']のように読み込むのが基本です。開発時にはdotenvというgemを使い、.envというファイルにキーを書いておくと管理がしやすくなります。ただし、この.envファイル自体も公開リポジトリに含めないよう、.gitignoreという除外設定ファイルに登録しておきましょう。

Rubyならではのポイント

PythonなどでもAI APIはよく使われますが、Rubyには独自の特徴があります。Rubyの場合は「シンボル」というRuby特有のデータの書き方(:messageのような、文字列に似た軽量な値)を使ってオプションを指定するライブラリが多いのが特徴です。また、ブロック構文(do〜endで処理をまとめる書き方)を使って、通信のエラー処理を簡潔に書けるgemも多く見られます。エラー処理にはbegin〜rescueという構文を使い、通信が失敗した場合にプログラムが止まってしまわないようにしておくと安心です。

まとめ

RubyからAI APIを呼び出す基本は、APIキーを安全に用意し、HTTP通信で質問データを送り、返ってきたJSONを読み取るというシンプルな流れです。標準ライブラリだけでも実現できますが、外部gemを使えばより短いコードで書けます。APIキーの管理には十分注意しながら、ぜひ自分のRubyプログラムにAIの力を組み込んでみてください。

関連記事


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。

コメント

このブログの人気の投稿

#11 Rustで学ぶエラーハンドリングの基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本

#19 Goで学ぶテスト(単体テスト)の基本