jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「PythonでつくるWebアプリのつくり方」を読む ~Chap.6 生成AI・LLMを活用したアプリ ①LLM ~

01 大規模言語モデルを使ったWebサービスを作成しよう

要点

大規模言語モデルが得意なタスク

大規模言語モデル(LLM)が得意なタスクには以下のようなものがある。

  1. 文章生成やアイデア発想
  2. 質問応答
  3. 翻訳
  4. 要約や言い換え
  5. コード生成

本節の気付き

本節では,Webアプリ開発のアイディアを出すためのプロンプトを,アイディア発想法の「ペルソナ法」を応用して作成していた。実際に利用してみたところ,複数人のペルソナがそれぞれの立場で意見を出しており,アイディアを発散させていくうえでは有益だと感じた。

ペルソナ法を応用したプロンプトに対する応答

02 OpenAI ChatGPT APIの使い方とポイント

要点

OpenAI ChatGPT API

OpenIA ChatGPT APIは,OpenAIが提供するAPI(Application Programming Interface)であり,ChatGPTの各種機能を他のプログラムから利用できるようになる。
OpenAI ChatGPT APIを利用するには,OpenAI Platform にサインアップする。

なお,以前作成した「RAG・AIエージェント[実践]入門」を読む ~第2章 OpenAIのチャットAPIの基礎①Chat Completions API~ - jiku logにおいてAPIキーは作成したが,今回は改めてAPIキーを作成しなおした。

本節の気付き

OpenAI ChatGPT APIを使ってみる

OpenAI ChatGPT APIPythonコードを利用するには,以下のようなコードを用いる。

response: Dict[str, Any] = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {
            "role": "user",
            "content": "「受けるより与える方が幸福である」を英語に翻訳してください",
        }
    ],
)

上記のようにmodelおよびmessagesを引数として引数している。またmessagesは辞書型で指定しており,rolecontentを変数として設定する。特にプロンプトは,contentで指定している。

アノテーション

Pythonの文法において,

from typing import Any, Dict
...
response: Dict[str, Any]

の部分はアノテーションと呼ばれるもので,responseDict[str, Any]という型を持っている,ということを指定するものである。

Pythonは動的に型付けを行なうが,このように書くことでコードの可読性が高くなる。

APIキーを環境変数から読み込む

APIキーをソースコードに直接記載するのは,APIキーの漏洩につながるおそれがあるなど管理が困難になる。

そのため,python-dotenvというライブラリをインストールし,「.env」ファイル中でAPIキーを管理する。

まとめと感想

今回は,「chapter6 生成AI・大規模言語モデルを活用したアプリ」における,大規模言語モデルを使ったWebサービスについてまとめた。

APIは外部のサービスを自分のプログラム中で使ううえで便利な機能である。ただしAPIキーを使う際には,APIの管理を行なっていく必要があるため,python-dotenvのようなAPIキー管理用のライブラリが重要になってくると感じた。


本記事を最後まで読んでくださり,どうもありがとうございました。