「コンテキスト(context)」という言葉、生成AI(ChatGPTなど)やIT・プログラミングの分野でよく登場します。でも
- コンテキストって聞いたことあるけど、意味はぼんやり…
- 英語では「文脈、状況、前後関係」といった意味だけど生成AIやITではどんなときに使うのか?
と思っている方も多いと思います。
そこで、この記事では「コンテキスト」の意味や使い方を、
- 日常会話での例
- 生成AIでの使われ方
- IT・プログラミング(JavaScriptやReactなど)での使い方
という流れでわかりやすく解説します。ご参考になれば幸いです。
コンテキストとは(日常会話での例)
「コンテキスト」は、英語では「文脈、状況、前後関係」といった意味であり、簡単にいうと「言葉が使われている状況や流れ」のことをいいます。
たとえば、友だちが急にこう言ってきたとします。
「ありがとう!」
それだけ聞くと、「え?何に対してのありがとうなの?」と思いますよね。
でも、その直前にあなたがドアを開けてあげていたらどうでしょう?「ありがとう!」がドアを開けてくれたことへのお礼だとわかります。
このように、「ありがとう!」という言葉が使われた「状況」や「流れ」を含めて理解することで、言葉の意味がちゃんと伝わるようになります。ここでは、この「ドアを開けた → ありがとう」のような一連の流れが、コンテキストなんです。
生成AIにおけるコンテキスト
生成AI(ChatGPTなど)における「コンテキスト」とは、「会話の流れ」や「これまでのやりとりの内容」のことを指します。
具体的には、
- ユーザーが今までに言ったこと(会話の履歴)
- 今の質問や指示の内容
- 会話のテーマや流れ
などをすべてまとめた「状況・情報」のことを指します。
生成AIはこのコンテキストをもとに、より自然で的確な返答を生成します。では一例を紹介します。
たとえば、あなたが生成AIに「明日京都行くんだ~!」と言ったとします。その数分後に「天気どうだろうね?」と聞くと、生成AIは「京都に行くって言ってたな」と思い出して、京都の天気予報を返答してくれます。これは「明日京都に行く」という前の発言(コンテキスト)を生成AIが覚えているからです。
たとえば、あなたが生成AIに「おなかすいた〜。なんか食べたい!」と言ったとします。その数分後に「何がいいかな?」と聞くと生成AIは「さっき“おなかすいた”って言ってたな」と思い出して、ラーメンとかピザとか食べ物の提案してくれます。これは「おなかがすいた」という前の発言(コンテキスト)を生成AIが覚えているからです。
つまり、生成AIは一言一言をバラバラに考えているのではなく、「いままで何を話していたか」をちゃんと覚えて、流れをふまえて自然で的確な返事をしてくれるのです。
ITやプログラミングでのコンテキスト
ITやプログラミングで「コンテキスト(context)」という言葉が出てきたら、それは「ある処理が実行されている状況や文脈」のことを指します。意味は使われる場面によって少しずつ異なりますが、よく使われる4つの例を紹介します。
実行中の状況を表す「実行コンテキスト」
関数やプログラムがどんな環境・条件で動いているかを示す情報のことです。
たとえば、
- どのスレッドやプロセスで実行されているか
- ログインしているユーザーは誰か
- 今どんなリクエスト(URLやHTTPメソッド)が来ているか
などこういった情報をまとめて「実行コンテキスト」と呼びます。
Webアプリにおける「リクエストコンテキスト」
サーバー側がリクエストを処理するときに、「どんな背景のリクエストなのか」を把握するための情報です。
たとえば、
- 誰がアクセスしてきたか(ユーザー情報)
- どのURLに対してのリクエストか
- GET?POST?などのリクエストの種類
などこうした情報が「リクエストコンテキスト」で、リクエストごとに変わります。
プログラミング言語でのthisコンテキスト(特にJavaScript)
JavaScriptでは、「コンテキスト」といえばthis
の指す先のことを意味する場合が多いです。
const person = {
name: "さとし",
greet() {
console.log(`こんにちは、${this.name}さん`);
}
};
person.greet(); // → こんにちは、さとしさん
このときthis
はperson
を指しています。この「this
が何を指しているか」という状況が「this
コンテキスト」です。関数の呼び出し方によってthis
の中身が変わるので、注意が必要です。
フレームワーク(Reactなど)で使う「Context」
Reactでは、親から子へ値を共有する仕組みとしてContext
が使われます。
たとえば、
- ログインしているユーザーの情報
- テーマ(ダークモード/ライトモード)
- 言語設定やアプリ全体の設定
など、こういったデータをprops
で毎回渡す代わりに、Context
としてまとめておき、どの子コンポーネントからでもアクセスできるようにします。
本記事のまとめ
この記事では『コンテキスト』について、以下の内容を説明しました。
- 日常会話での例
- 生成AIでの使われ方
- IT・プログラミング(JavaScriptやReactなど)での使い方
「コンテキスト」とは、ざっくり言うと「その場の状況・流れ・文脈」です。
- 処理の流れや背景
- 関数が実行されている環境
- オブジェクトの状態
- リクエストの情報
など、"今どんな状況か?"を表すものすべてがコンテキストと呼ばれるのです。