0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIとAPIだのスクレイピングだのについて話してて、『こんな質問、非エンジニアしかしないよね』って内容を抜き出してもらったあと、『でもこれ、エンジニアの人が驚く内容ってあるのかな?』って聞いたら、こんな答えが返ってきた

0
Posted at

はじめに(まず謝っておきます)

非エンジニアです。@echo off を見て「echoって何を反響させてるんだ?」と本気で思っていたレベルです。

そんな私が、ある日、生成AIを相手に行き当たりばったりで質問を投げ続けた結果、なぜか API だのスクレイピングだのの話にたどり着き、最終的に「エンジニアが驚く質問」とやらを錬成してしまったらしい……おそらく。たぶん。きっと……という記録です。

技術記事のフォーマットを借りていますが、書いている本人は内容の正しさを保証できません。判断する力がないからです。これは技術記事というより、何も知らない人間がAIに手を引かれて歩いた道のりの観察日記だと思ってください。

⚠️ この記事は非エンジニアが書いています。
間違いがあれば、優しく教えてください。たぶん何が間違っているかも私には分かっていません。

第1章:すべては @echo off から始まった

事の発端は、真っ黒い画面でした。

@echo off

この一行を見て私は思いました。「echooff にするのに、なんでわざわざ echo って言うんだ?」

AIは丁寧に「これは画面にコマンドの中身を表示するかどうかの切り替えで〜」と教えてくれました。なるほど(正直まだよく分かっていない)。でも私はうなずきました。

第2章:ブラウザが勝手に動いて軽くビビる

そこから「Pythonでブラウザを自動で動かせる」という話に。Seleniumというやつです。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

これを実行したら、勝手にChromeが立ち上がってGoogleを開いて、勝手に閉じたんです。正直ちょっと怖かったです。

ここで私は疑問をぶつけます。「これ、バッチファイルの中に直接書けばよくない?なんで2つもファイルがいるの?」

AIの答えは「❌ できません」でした。.bat は cmd.exe の言葉、selenium は Python の言葉で、そもそも住んでいる世界が違うらしい。バッチの仕事は「Python、出番だよ」と呼びに行くだけ。

@echo off
python my_script.py
pause

呼び込み役だったんですね。

第3章:暴走する好奇心(ここで一度道を踏み外しかける)

API の話に行く前に、好奇心が脱線します。「自分のパソコンで、自分が普段どんな操作をしてるか記録できる?」と聞いてしまったんです。

from pynput import mouse, keyboard
# マウスもキーボードも記録できるらしい

AIに「※自分のPCで自分用に使うときだけにしてください。他人の操作を記録するのは法律違反になる場合があります」とやんわり諭されました。ごもっとも。「ゴミ箱に何を捨てたかのログも拾える?」とも聞き、C:\$Recycle.Bin を覗く方法を教わったあたりで、本題に戻ろうと我に返りました。

第4章:APIとは何か、を水道とレストランで理解する

ようやく本題。「APIってそもそも何?」「スクレイピングと何が違うの?」

AIのたとえが見事だったので残しておきます。APIは「水道局が用意した正規の蛇口から水を汲む」こと。スクレイピングは「壁に穴を開けて水道管から直接水を引く」こと。レストランでたとえるなら、APIは「メニューから注文して出してもらう」、スクレイピングは「厨房に忍び込んで食材を持ち出す」。図書館なら、APIは「カウンターで借りる」、スクレイピングは「閉館後に窓から入って読む」。

ここまで言われて、私はかなり分かった気になりました。そして調子に乗って「それってプロトコルとは違うの?」「OSI参照モデルのアプリケーション層ってやつ?」と、聞きかじった単語を投げ始めます。自分でも何を言っているか分かっていないのに、AIが普通に会話を続けてくれるのが恐ろしいところです。

第5章:本題。「エンジニア、驚く?」

さんざん質問したあと、AIにこう頼みました。「私の質問から、非エンジニアしか聞かなさそうなやつを抜き出してみて」と。

ちゃんと返ってきました。素人丸出しのコレクションです。で、ここでもうひとつ聞いてしまいました。「でもこれ、エンジニアの人が驚く内容ってあるのかな?」

「ありますよ」と返ってきました。

でも、ここで困ったことになります。私には、それが本当に驚く内容なのかどうかが分からないのです。 物差しがないので。「これ国宝級ですよ」と壺を見せられても、私にとってはただの茶色い壺。驚いていいのかどうかも判断できません。

以下、AIが「エンジニアが驚くかも」と言った3点を、私が驚けないまま貼っておきます。本当に驚くやつなのか、詳しい方がいたら教えてください。

1. スクレイピング、相手に嫌われませんか?

私の質問:「人のサイトから勝手にデータを取るって、よその家に上がり込んで物を持ち帰るのと一緒ですよね。嫌われたりしないの?」

import requests
from bs4 import BeautifulSoup
res = requests.get("https://example.com")
soup = BeautifulSoup(res.text, "html.parser")
# 技術的には取れる。でも「取っていいか」は別の話、らしい

AI解説:エンジニアは「どう取るか」の工夫に意識が向きがちで、「そもそも嫌われないか、公式に分けてもらえないか」という手前の発想が抜けやすいので、ハッとする人もいる、とのこと。私としては、勝手に持って帰ったら嫌われるよね、と思っただけです。

2. APIの鍵、泥棒に盗まれたら誰が責任を取るの?

私の質問:「APIキーってパスワードみたいなものですよね。鍵ごとパソコンを盗まれたら、流出の責任は誰が取るの?」

import os
api_key = os.getenv("SECURE_API_KEY")
# プログラム上でどれだけ鍵を隠しても、
# パソコンごと盗まれたら意味がなくなる、らしい

AI解説:エンジニアは「鍵をどう隠すか」というプログラム上の話に集中しがちで、「物理的にPCごと盗まれる」現実が盲点になりやすいので意外に映る、とのこと。私としては、鍵ごと渡したら終わりだよね、と思っただけです。

3. このシステム、いつ「老衰」して死ぬの?

私の質問:「作った仕組みもいつか壊れますよね。人間みたいに寿命があるの?『老衰のサイン』はどこを見れば分かるの?」

# DeprecationWarning: この機能はそのうち消えます
# ↑ これがまさに「老衰のサイン」らしい

AI解説:エンジニアはシステムを「ちゃんと作れば基本ずっと動くもの」と無意識に捉えがちで、外部APIの廃止やライブラリのサポート終了という"じわじわ古びる現象"を「老衰」と呼んだ言葉選びが新鮮に映る、とのこと。私としては、機械もいつかは壊れるよね、と思っただけです。

ちょっと脇道:自分の質問を見返して気づいたこと

ここまで書いて、自分のやりとりを読み返していて、ひとつ気づいたことがあります。これは「私がすごい」という話ではなくて、たぶんAIに教えてもらった質問の仕方そのものの話です。

私は何かを聞くとき、いつも無意識に「それって、〇〇みたいなもの?」と、自分の知っている世界に置き換えて聞き返していました。APIなら水道の蛇口、スクレイピングなら人の家に上がり込むこと、システムの寿命なら家電の買い替え、というふうに。

そして、ひとつの答えをもらっても「分かりました」で終わらせず、「それってプロトコルとは違うの?」「アプリケーション層ってやつ?」と、聞きかじった別の言葉とつなげようとしていました。たぶん全部ピント外れなんですが、それでも自分の手持ちの言葉に引き寄せて確かめ直す、という動きだけは、我ながら悪くなかったのかもしれません。

もっとも、これはAIが嫌な顔ひとつせず付き合ってくれたから成立した話です。人間相手なら、とっくに「もういいです」と言われていたはずで。たまたま相手が辛抱強かったおかげで、私の拙い質問の仕方が許されていただけ、というのが実際のところだと思います。

おわりに:結局、最後まで分からなかった

まとめます。AIに「エンジニアが驚く内容ってある?」と聞いたら「ある」と言われ、3つ教えてもらいました。でも、それが本当に驚くものなのか、私には最後まで分かりませんでした。

ただ、ひとつだけ思ったのは、私の質問はどれも「勝手に持って帰ったら嫌われる」「鍵ごと盗まれたら終わり」「機械はいつか壊れる」という、ごく当たり前のことばかりだったということです。それを自分の知っている言葉に置き換えて、ただ素直に聞いただけ。

もしこれが少しでも面白い問いに見えたのなら、それは私の手柄ではなく、たぶん「何も知らない人間の素朴な言葉」を、専門家の世界の言葉に翻訳してくれたAIのおかげなんだと思います。私はこれからも、たくさんの当たり前を、知らないまま聞き続けるのでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?