OpenAIのAPI利用条件が非常にわかりづらかった件と利用設定について

普段、私は ChatGPT を無料枠で使っているのですが、ふと OpenAI の APIを使ってみたくなりました。

ところがそのAPIの利用条件を調べてみてもいまいちわかりづらかったのでここで整理しておきます。

結論としては、
・ChatGPTの有料プランを購入しなくても OpenAI の API 利用は可能
・OpenAIのAPI利用はプランではなく完全に従量課金制
ということがわかりました。

また上記踏まえて、OpenAIのAPI利用設定を実施しましたので下記のとおり整理しておきます。

1.OpenAI API Platformにアクセス

下記のURLにアクセスしアカウントを作成後、ログインします。

OpenAI API Platform
https://openai.com/ja-JP/api/

2.API keyの作成

すると以下のような画面が表示されるので Get started のところに表示されている「1. Create an API key」をクリックし、API key を作成します。

OpenAI API Platform

なお、この時に作成したskから始まるAPI key は一度しか表示されないようですので、作成したら安全なところに保管してください。

3.クレジットの登録と支払い上限設定

API key を作成しただけでは API へアクセスできませんでした(自分の場合、無料枠はつきませんでした)ので、API を利用する為にクレジットの登録を行います。

上図の通り最上部のプルダウンから「Manage Projects」を選択後、左ペインの「Billing」を選択すると「Add payment details」のボタンが表示されるので、ここからクレジットカードを登録します。

OpenAI API Platform

なお、クレジットカードを登録した後に、下図の通り最初の購入額が設定できます。
ここで Use auto-reloadを OFF にすると最初の購入額を超えた API利用はできなくなり安心です。

OpenAI API Platform

実際にUse auto-reloadを OFF にするとこうなります。

OpenAI API Platform

最後に下記の画面で支払いの確認をすれば完了です。

OpenAI API Platform

4.支払い設定の確認

「Billing」にて auto-reload が OFF になっていることをあらためて確認します。
なおこの場合、残価が0円になるとAPIが自動的に利用できなくなりますので業務で定期的に利用している場合などは注意が必要ですね。

OpenAI API Platform

OpenAIのAPIを使った最初の PythonプログラムをMacで動かしてみたら意外とてこずった件

AIの本を読んでいて、OpenAIのAPIを使ってみたくなったので、Mac上で環境を用意し、PythonプログラムからOpenAI のAPIを呼び出してみました。

単純なプログラムを動かすだけなのですぐにできるだろうと思いましたが意外と手こずったので、ここにその時の記録を残しておきます。

エラー1.cannot import name ‘OpenAI’ from ‘openai’

まず Mac上で作成した Pythonのプログラム(test.py)を動かそうとして最初に発生したのがこのエラーでした。

% python test.py
Traceback (most recent call last):
File "/Users/XXX/tmp/test.py", line 1, in <module>
from openai import OpenAI
ImportError: cannot import name 'OpenAI' from 'openai' ・・・

原因はどうやら自分のMAC上の openai のライブラリが古いようで、以下のコマンドでバージョンアップしてあげることで解消しました。

% pip install --upgrade openai
Requirement already satisfied: openai in /Users/XXX/.pyenv/versions/3.10.0/lib/python3.10/site-packages (0.27.10)
Collecting openai
Downloading openai-2.52.0-py3-none-any.whl.metadata (40 kB)
 ・・・

エラー2.NameError: name ‘sk’ is not defined

そして次に遭遇したのがこのエラーです。

エラーの理由は単純で、あらかじめ取得しておいた api_keyをプログラム内に設定する際に””で括ってあげていない為でした。

ただしくは以下の通りに記述する必要があります。(本当はプログラム内に直接 APIキーを書かない方がいいですが。)

client = OpenAI(
api_key ="sk・・・・・"
)

エラー3.openai.RateLimitError

そして最後に遭遇したのがこのエラーです。詳しくは以下の通り出力されていました。

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

このエラーの原因も単純で、まだこの時点ではOpenAI のWeb上から api_key を入手しただけで、支払い処理(クレジットカードの登録)を実施していなかった為でした。

OpenAI の APIの作成手続きを済ませた直後は無料枠が使えるのかと思っていましたが、そんなに甘くはないようです。(2027.8.1時点)

ついに成功

その後、支払いを済ませて再度プログラムを実行すると、正常動作しました。

% python test.py
こんにちは!元気ですか?何かお手伝いできることはありますか?

たとえばこんなことができます。
- 日本語↔英語の翻訳・添削
- 文章の要約・ブラッシュアップ
- アイデア出しや企画の構成作成
- 技術的な質問・コーディングのサポート
- 日常の相談・学習サポート

話したいトピックを教えてください。最近の話題でもOKです。

SOC業務での生成AI活用についての考察(その1)LLM+RAG

生成AIのSOCへの適用について、つい最近まで自分はLLM+RAGがあれば十分とおもっていました。

しかしながら以下の書籍を読み、あらためてその認識は誤りであることに気付かされました。そこで自分の知識向上の為にもこのブログを書いていきたいと思います。

本記事では、SOCにおける生成AIの活用方法を以下の段階に分けて整理する予定ですが、執筆中に変わって行った場合ご容赦ください。

1.LLMによるSOC業務支援
2.RAGによる独自ナレッジの活用
3.Graph RAGによる関係性を考慮した調査
4.AI Agentによる自律的な調査
5.WorkflowによるAI適用範囲の最適化
6.Multi-Agentによる複数の専門Agentのオーケストレーション

1.LLMによるSOC業務支援

最も基本的な方法は、素のLLM(Large Language Model)をSOCアナリストのアシスタントとして利用する方法になるかと思います。

具体的には、次のような活用が考えられます。

セキュリティアラートの概要説明
ログの要約
想定される攻撃手法の説明 など

しかし、ここから先(アラートやログからのリスク判定など)に踏み込もうとすると、「LLMは環境固有の知識を持っていない」ということがネックになってきます。

例えば一般的なLLMは、環境固有の以下のような知識を有していません。

正常なユーザの行動パターン
その環境固有のセキュリティポリシー
過去のアラート対応結果 など

そのため、LLM単体でSOC業務を支援させる場合、回答の精度には限界があると考えています。そこでまず考えられるのが、RAGという仕組みの活用です。

2.RAGによる独自ナレッジの活用

RAG(Retrieval-Augmented Generation)は、LLMが回答を生成する前に、外部のナレッジベースから関連情報を検索する仕組みです。

SOCで利用する場合、さきほど1.であげた情報をナレッジベースに格納しRAGの仕組みにてLLMに参照させることで、一般的なセキュリティ知識だけではなく、組織独自の知識を活用し、回答の精度をアップさせることが可能です。

RAGの検索エンジンの仕組みには以下のようなものがあるので、どの方式がSOC調査にマッチするか検証していく必要があります。(これ以外にもいろいろあるみたいです。)

・キーワード検索(フルテキスト検索)
・ベクトル検索
・ハイブリッド検索(キーワード+ベクトル検索)

なお一般的には下に行くほど回答の精度は向上すると思われます。

ハイブリッド検索を行えばかなり検索精度はよくなるようですが、さらに精度を高めたい場合、リランクという手法を追加で実施する方法があるようです。

リランクでは、ハイブリッド検索などである程度一致していそうな候補を絞り込んだあと、さらにそれらについてランク付けを行うことで、より高い精度で検索できるようです。

(以降、次回に続く。)

CISSP の CPE を稼ぐ(2026)セキュリティ関連の本を読んで5ポイント稼ぐ

久しぶりにセキュリティの本を読んでCPE申請しようとしたのですが、申請の仕方を忘れていたのでその方法を簡単にメモ書きしています。

1.申請カテゴリの選択

ISC2のサイトにログイン後、CPE の申請画面から本を読んだ日付を選びます。

その後、「Category & Details」にて
 Category:Education の「Book, Magazine, Whitepaper」
を選択します。

その後は本のタイトルや著者、本の感想などを記載します。

本の感想については、明確に何文字以上書かないといけないという決まりはなさそうで、通常、英文で5行程度を記載して提出しています。

また本を購入したエビデンスを添付する必要がありますので、Amazonなどで購入した場合はその invoice などをPDF等で添付します。

2.申請するとすぐにポイント付与

申請するとすぐに5ポイント付与されます。

ただし、申請後にチェックが入る可能性もありますので、CPE取得の期限が迫っている人は早めに申請したほうがいいかと思います。

【2026】今年も花が咲き始めました!~種から育てたサンダルウッド(白檀)~

昨年はじめて一房の花を咲かせてくれたサンダルウッドですが、今年はパワーアップして6房もの蕾をつけてくれました。

5月15日の朝、なにやら新芽とは違う形のものをあちこちに発見!

5月15日の朝

5月20日、蕾の女王様がお付きの者たちと天を仰いでいる様子。。

5月30日、蕾がふっくらしてきました。
6月7日 今年は6房も咲くのかと思うと・・・浮き足立ってしまいます。

そして6月14日の朝、ついに咲き始めました!

6月14日の朝


今年は6房も蕾がついたので長く楽しめそうです。

↓↓もしよろしければこちらもご覧ください。昨年の開花記録です。↓↓

Krunia のドライブレコーダー付きディスプレイオーディオとスマホのAndroid Auto接続で手こずった件

昨日、Kruniaのドライブレコーダー付きディスプレイオーディオをロードスターNC2に取り付けてみましたのでここに記録しておきます。

実はKruniaのセットアップで一番手こずったのが、この Krunia と スマートフォン Pixel 7aのAndroid Auto接続の部分でした。

接続操作としては以下のように簡単なものですが、言語設定を English にしてやっていたところどうしても接続がうまくいかず、時には Kruniaが勝手に電源断してしまう状況でした。(この時は初期不良を疑ってました。)

<Kruniaとスマホの接続操作>
1.Kruniaの電源を入れる
2.起動後、言語や時刻などの設定を行う
3.Android Autoのアプリを起動する(これでBluetoothが起動)
4.スマートフォンを3.のBluetoothに接続する

そこでふと、言語を日本語にしてみたらどうかと思い変更したところ、Android Autoの接続が無事行われナビが起動しました。(その後、電源断が起きることもなく安定しています。)

以下、Kruniaを箱から出した後のセットアップ手順です

1.箱を開封し、サポート登録する

Kruniaの箱を開けたところですが、一番上に購入のお礼とサポート登録用の紙が同封されていました。必要であればサポート登録できるようですが、価格がそこまで高い製品ではないので、私は一旦遠慮しておきました。

Kruniaの箱を開けたところ

2.ディスプレイオーディオをセットアップ

ディスプレイオーディオに最初から台座がついていたのですが、自分は伸縮するアームの方を使いたかったので、ネジを外して取り替えました。

Kruniaディスプレイオーディオのデフォルト状態

以下が台座をアーム型の方に取り替えた写真です。

Kruniaの台座をアーム型に取り替えたところ

3.Kruniaとスマホを接続

ここは冒頭で説明したとおりです。Kruniaの電源を入れた直後に行う言語設定を日本語にしていれば、すんなり接続できていたと思います。

4.アーム型の台座をダッシュボードに貼り付け

そして、アームの台座の方を車のダッシュボードに貼り付けました。

Kruniaのアーム型台座をダッシュボードに取り付けたところ

台座の方はダッシュボードに直接貼るプレートとそこに吸盤のようになっていて貼り付けるアームに分かれています。

プレートの方は最初から両面テープになっているだろうと思っていましたが、その上に貼り付ける吸盤の方も実は両面テープのようにかなり粘着性のあるものになっていました。

したがって、時間が経つといつのまにか剥がれてしまうようなことはなさそうです。

5.ディスプレイをダッシュボードに設置

最後にディスプレイオーディオの後ろに取り付けたアームをダッシュボードに取り付けた台座に合体させます。合体させる際はディスプレイオーディオの方のアームを台座の方のアームに差し込み、取手の着いたネジで締め付けるようになっています。

Kruniaの設置イメージ(助手席側から)

なかなかいい感じに取り付けられたのではないかと思います。

ロードスターのダッシュボードを傷つけずに貼り付けたカーナビの土台などを取り外す方法(今度試してみたい)

先日、ロードスターのダッシュボードに両面テープでしっかり取り付けられていたカーナビの土台を外すのに、エーモンの両面テープはがし剤を使いました。

それはそれで両面テープを剥がしやすくするのに効果があったと感じましたが、そのときに土台とダッシュボードの間にマイナスドライバーを差し込んだので、すこしダッシュボードの傷がついてしまいました。

そこで、今後のためにほかにいい方法がないか調べていたところ、以下の製品であればダッシュボードにあまり傷をつけずに処理できそうなので今度試してみたいと思い、ここに記録しておきます。

ただし、コメントに書かれているように糸の強度がイマイチらしいので、釣り糸を使ってみるという手もありそうです。

エーモン(amon)の両面テープはがし剤を買って、ダッシュボードに取り付けたカーナビの土台をはずしてみた件

うちの車のカーナビが15年以上前のかなり年代物になってきており、新しいものに取り替えたくて、ダッシュボードに貼り付けてあるカーナビの土台を取り外すことにしました。

しかしながら、かなりしっかりとダッシュボードに張り付いている為、単純にひっぱっただけでは取れそうな気がしなません。そこでAmazonで売っていた amon の両面テープはがし剤をつかってみることにしました。

はがし剤のサイズはおもったより大きめ

実際にとどいた製品がこちらです。30mlとなっていたのでかなり小さいのかなとおもっていましたが、思ったより大きめで Macのマウスよりすこい小さいくらいでした。

amonの両面テープはがし剤(Macのマウスとの比較)

またキャップを外した先端はこんな感じです。(Amazonの書き込みに先端にブラシがついているような書き込みもありましたがついてませんでした。)

はがし剤をダッシュボードの取り外しに使ってみる

そして実際にダッシュボードからはがしたいと思っていたカーナビの土台はこちらです。

ダッシュボード上のカーナビの土台

15年以上ダッシュボードに張り付いていたので、かなりの強敵です。

土台の両面テープの隙間に「両面テープはがし剤」を染み込ませていきます。上の写真のように一部、もともとくっつきがあまい部分がありましたので、あらかじめそこを持ち上げておいて、その下にはがし剤を注ぎこんでいきます。

即効性はないがじわじわ効いている感じはある

はがし剤を注入したからといって、すぐに両面テープがはがれ始めるわけではありませんでした。

しかし、5分くらいたったころからすきまにマイナスドライバーの先端を潜り込ませていくとじわじわと粘着テープが剥がれていくようになりました。

そこで、はがし剤を注入してはマイナスドライバーを差し込んでいく、という動作を5回くらい時間をかけてゆっくりおこなったところ、1時間後には写真のように外すことができました。

カーナビの土台がはずれたところ

写真ではすこし粘着テープが残っていますが、その後、濡れた布で表面を拭いていくとポロポロと残った粘着テープがとれていき、完全に取り去ることができました。

なお、表面が乾いたあとで見てみると、マイナスドライバーを差し込むときにぐにぐにやったため、すこし表面に傷がついてしまったので、あまりぐにぐにしないか、もしくはもっとやわらかめのものを差し込むとより綺麗にとれるかと思いました。
(どうせまた別のものを上にセットするので個人的にはあまり気にしていませんが。)

意外と少量ですみました

こちらは土台を取り外した後の残量です。これをみる限り 5mlくらいしか使っておらず、まだまだ他のところにも使えそうです。

土台をはがした後の残量

ちなみにはがし剤と一緒に以下の内張りはがしは、今回の用途にはちょっと大きすぎたので使いませんでした。

郵便局(ゆうちょ銀行)への振り込み用紙しかない状態からスマホアプリで振り込みを行う方法

先日、自分の田舎のお寺から、護持会費(ごじかいひ)を振り込む為の用紙が来たのですが、その裏面を見ると「この用紙は、ゆうちょ銀行または郵便局払込機能付ATMでもご利用いただけます。」と記載されていました。

お寺からきた振り込み用紙

それを見てなんとなく、支払うには郵便局にいけないんだと思い込んでいたのですが、妻に聞いたところどうやらオンラインでも振り込みできることがわかったので、ここにその方法を記録しておきます。

1.ゆうちょ銀行の口座番号を調べる

以下のサイトにアクセスすることで、振り込み用紙(振込取扱票)に記載されている「口座番号」からゆうちょ銀行の「口座番号」を調べることができます。

記号番号から振込用の店名・預金種目・口座番号を調べる(ゆうちょ銀行)
https://www.jp-bank.japanpost.jp/kojin/sokin/furikomi/kouza/kj_sk_fm_kz_1.html

たとえば振り込み用紙に記載されている口座番号が「01XXX-0-1YYY」の場合、以下のとおり入力します。

ゆうちょ銀行のページより

すると、以下のとおり結果が表示されます。

ゆうちょ銀行のページより

この情報を元にすれば「楽天銀行」などのアプリから振り込むことが可能となります。

2.楽天銀行から振り込む

1.により今回の場合、ゆうちょ銀行の「店番」「預金種別」「口座番号」が以下であることがわかったので、この情報を使って楽天銀行アプリから振り込んでみます。

店番号(店名):1X9(一○九)
預金種別(科目):当座
口座番号:0001XXX(1XXXは振込用紙に記載の口座番号の下四桁になってます)

2.1 楽天銀行アプリを開き「振り込み」を選択後、次のページで「振込する」を選択

楽天銀行アプリ

2.2 振込メニューから「新規振込」を選択

楽天銀行アプリ

2.3 「金融機関選択」から「ゆうちょ銀行」を選択

楽天銀行アプリ

2.4 「支店選択」にて「支店名で検索」

楽天銀行アプリ

2.5 「支店名で検索」にて先ほどの「店番号」を入力するとカナ数字で「店名」が表示されるので選択する

楽天銀行アプリ

2.6 さらに「預金科目」や「口座番号」「振込金額」などを入力し「確認」ボタンを押す

2.7 振込先を確認し「振込」ボタンを押す

楽天銀行アプリ

これで無事、郵便局に行くことなく支払いができます。

SBI銀行でもアプリで送金できることは確認していますので、その他のアプリでもいけるのではないかと思います。

Splunk SPL でmvindexマクロを利用し指定した番号の配列に格納されているマルチバリューデータの情報を取得する

mvindex を利用して指定した番号に格納されているマルチバリューデータの情報を確認します。

なお、マルチバリュー(Multi-value)とは、1つのフィールドの中に「複数の値」が入っている状態のことです。

たとえば、ip のフィールドの中のデータが [192.168.1.1, 10.0.0.5, 172.16.1.10]となっている場合、ipはマルチバリューだということができます。

mvindexを使ったSPLの書き方

以下のSPLは mvindexマクロを使い、マルチバリューである siteフィールドの何番目に”amazon*”が入っているか(配列番号)をチェックし、さらにその配列番号に格納されているデータをダッシュボード上に表示しています。

source="stream:Splunk_HTTPURI"
| eval org_site=site
| makemv site delim="."
| eval mv_num=mvfind(site, "amazon*")
| eval mv_data=mvindex(site, mv_num)
| table org_site site mv_num mv_data

上記SPLを実際に実行するとこうなります。

上記の例だと、3番目に “amazon*”が入っているのでmv_numが”2″(”0″からカウントしているので)となり、さらに site の 配列”2″のデータを取得すると”amazontrust”となっています。

参考サイト:

・Splunkでマルチバリューフィールドを扱う (eval関数編)(じゅのぶろ)
https://jnox.hatenablog.com/entry/splunk/eval-multi-value