はじめに
最近Rubyを入門しています。
Rubyの特徴として挙げられる”メタプログラミング”を活かしたアプリを作成しました。
Kernel#eval
とは
Rubyのeval
メソッドは、文字列として与えられたRubyコードを実行するために使用されます。これは、Pythonのexec
やJavaScriptのeval
など、他の言語における同様の機能に類似しています。
基本的な使い方
code = "1 + 2"
result = eval(code)
puts result # 出力: 3
上記の例では、code
変数に格納された文字列がRubyの式として評価され、その結果がresult
変数に代入されます。
つくったもの
解説
GPTへのリクエスト内容
- 使用する候補のAPI等
- 使い方(リクエスト・レスポンスパラメータ一覧)
- 解決してほしい課題(ユーザー入力内容)
- evalコードに関する指定
- 出力形式の指定(e.g. “標準出力で会話形式”)
GPTからのレスポンス内容
- Kernel#evalメソッドに引数として渡せる状態のRubyコード
- evalの実行に足りない情報(未実装)
その後
GPTからのレスポンスであるRubyコードをeval(response_content["eval_code"])
とすれば完成。
今後の展望
アップデートごとにGPTの扱えるトークン数が増えています。候補のAPIを数多く渡すことで、より多様なリクエストに対応できるようになります。
例えばLineAPIを渡してみたり、slackのAPIを渡してみたり。。。