見出し画像

友だちPython ep10. openai

はじめに


友だちPython シリーズのご紹介

友だちPython シリーズは、Python の小ネタを短文でお届けします。
小さなエピソードを重ねてPythonと仲良しになれたら、と願ってシリーズ名を付けました。

話題


LangChain完全入門

書籍「LangChain完全入門 生成AIアプリケーション開発がはかどる大規模言語モデルの操り方」(インプレス)をご紹介いたします。

この書籍は、2023年10月に発行され、大規模言語モデル(LLM)を使ったアプリケーション開発のメジャーなライブラリ「LangChain」の入門書です。
しかも完全入門です!
表紙には「ここから始めて、ずっと使える」の文字が並びます。

この記事は openai と 私の戯れの記録です。

記事中のイラストは「いらすとや」さんからお借りしました。
ありがとうございます!

今回の友だち

■ openai (おーぷんえーあい)
ChatGPTを生み出したOpenAIが繰り出すGPTモデルのサポーターです。

OpenAI の Python向け openai 公式サイトです。

話題の概要

第1章「ChatGPTとLangChain」の「1.5 OpenAIのAPIを呼び出して動作を確認する」で躓きました。

心を持ったAIのイラスト:「いらすとや」さんより

遊んだ内容

書籍の最初のコードで躓きました!
openai のAPI動作確認用の python スクリプトを動かしたところ、openai のエラーに見舞われました。

■ エラー1:openai が見つかりません

【エラーメッセージ】
ModuleNotFoundError: No module named 'openai'

エラーのスクリーンショットはありませんが、上記のメッセージが出ました。
ネットで様々な解決策を見つけては実行しましたが、いつの間にかエラー解消していました。
おそらく効いただろう解消策(たぶん)をメモ代わりに残しておきます。

【解消策(たぶん)】
pip で openai をインストールする際、次のコマンドを利用します。
「--upgrade」が入っています。

pip install --upgrade openai
404エラーのイラスト:「いらすとや」さんより

■ エラー2:属性なしエラー

【エラーメッセージ】
AttributeError: module 'openai' has no attribute 'ChatCompletions'

【原因】
openai の最新のバージョンをインストールした結果、書籍のコードの前提バージョンと異なってしまいました。
バージョンが上がったことで書籍のコードが動かなくなりました。

書籍のサポートページ(GitHub)では、ライブラリ名は出していませんが「本書のサンプルコードで使用しているライブラリに破壊的変更があり、手順どおりにコマンドを実行すると正常動作しないバージョンのライブラリがインストールされる事象が確認されています。」とアナウンスしています。
書籍の requirements.txt によると、openai のバージョンは 0.27.8 です。
自環境のバージョンは 1.25.2 です。

この分野の進歩はものすごく速いですね!

【解決策】
書籍のバージョンを使わず、1.25.2 を使う場合の「API動作確認用の python スクリプト」書き換え案です。

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model='gpt-3.5-turbo',
    messages = [
        {'role': 'user', 'content': 'iPhone8のリリース日を教えて'},
    ]
)
print(response.to_json())

【実行結果】
VS Code の画面ショットです。
書籍掲載の戻り値から、若干変更されているようです。

更新のマーク:「いらすとや」さんより

■ ひとりごと

2つのコードエラーの解消に4時間ほどかかってしまいましたw
この先、「openai の API の変更点を逐一潰して、最新バージョンを習得する」のがいいか、「書籍のバージョンをインストールして古いバージョンによる動きのイメージトレーニングに切り替える」か、悩ましいです。。。

みなさんもLangChainを存分に堪能してください!
幸運を祈る🍀

悩む女の子のイラスト:「いらすとや」さんより

おわり

~後日談~
LangChain本体も大きく変更されていて、書籍コードのほとんどが変更後のLangChainでエラー・ワーニング発生する事態になりました。。。
そこで、変更後のLangChainで書籍コードを動かす実験を行い、ブログ化しました!
ぜひお読みください~

ブログの紹介


note で7つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!

1.のんびり統計

統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。
Python、EXCELのサンプルコードの配布もあります。

2.実験!たのしいベイズモデリング1&2をPyMC Ver.5で

書籍「たのしいベイズモデリング」・「たのしいベイズモデリング2」の心理学研究に用いられたベイズモデルを PyMC Ver.5で描いて分析します。
この書籍をはじめ、多くのベイズモデルは R言語+Stanで書かれています。
PyMCの可能性を探り出し、手軽にベイズモデリングを実践できるように努めます。
身近なテーマ、イメージしやすいテーマですので、ぜひぜひPyMCで動かして、一緒に楽しみましょう!

3.実験!岩波データサイエンス1のベイズモデリングをPyMC Ver.5で

書籍「実験!岩波データサイエンスvol.1」の4人のベイジアンによるベイズモデルを PyMC Ver.5で描いて分析します。
この書籍はベイズプログラミングのイロハをざっくりと学ぶことができる良書です。
楽しくPyMCモデルを動かして、ベイズと仲良しになれた気がします。
みなさんもぜひぜひPyMCで動かして、一緒に遊んで学びましょう!

4.楽しい写経 ベイズ・Python等

ベイズ、Python、その他の「書籍の写経活動」の成果をブログにします。
主にPythonへの翻訳に取り組んでいます。
写経に取り組むお仲間さんのサンプルコードになれば幸いです🍀

5.RとStanではじめる心理学のための時系列分析入門 を PythonとPyMC Ver.5 で

書籍「RとStanではじめる心理学のための時系列分析入門」の時系列分析をPythonとPyMC Ver.5 で実践します。
この書籍には時系列分析のテーマが盛りだくさん!
時系列分析の懐の深さを実感いたしました。
大好きなPythonで楽しく時系列分析を学びます。

6.データサイエンスっぽいことを綴る

統計、データ分析、AI、機械学習、Pythonのコラムを不定期に綴っています。
統計・データサイエンス書籍にまつわる記事が多いです。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。

7.Python機械学習プログラミング実践記

書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learnとPyTorchの教科書です。
よかったらぜひ、お試しくださいませ。

最後までお読みいただきまして、ありがとうございました。

いいなと思ったら応援しよう!

この記事が参加している募集