Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

プレゼン資料や報告書を活かそう!PPTXのテキスト化とAIチャットボット開発入門 第3回RAGを利用したチャットボットの作成(準備編)

はじめに

今回はRAGを使ったチャットボットを作る予定でしたが、予定を変えて準備編を用意しました。
先にローカル環境での開発環境準備が必要なため、それらの解説をします。

  • 今回サポートしてもらった生成AIモデル:gemini/2.0、chatGPT/o1-miniモデル

シリーズ全体の概要

このシリーズは当初は全4回の予定でしたが、「RAGを利用したチャットボットの作成」を2つに分けました。
全5回にわたり、以下のテーマでブログで展開していきます。

第1回: シリーズイントロダクション
第2回: PPTXテキスト化ツールの作成
第3回: RAGを利用したチャットボットの作成 (準備編) ←今回はココ
第4回: RAGを利用したチャットボットの作成 (実践編)
第5回: チャットボットの使用例紹介

免責事項

これらの環境は、私個人の環境で実行テストを行ったものになります。 ご自身の環境に合わせて変更してください。

目次

環境準備

今回行う準備は仮想環境が1つ、環境設定が2つです。

  • 仮想環境
    • ローカル環境に仮想環境を作成する
  • 環境設定
    • OPENAIのAPIキーを.envを使って環境変数に設定する
    • 仮想環境に特定のライブラリをインストールするためのrequirements.txtファイルを作成する

設定を行ったPC/ソフト環境

※以降の作業は、指定がない限りVScode上で実行してください。

仮想環境:ローカル環境に仮想環境を作成する

では、さっそく仮想環境を作りましょう!!

ローカル環境に仮想環境を作成する理由は、開発に必要なPythonやライブラリを適切に管理し、複数のプロジェクトごとに異なる環境を維持するためです。
仮想環境は簡単に作成でき、不要になった際も容易に削除できます。
ローカルでの開発作業を行う際にはぜひ活用してください!!

ちなみに、仮想環境の名前は正直なんでもOKです。
よくあるのが「venv」という名前なんですが、複数の仮想環境を作ることもあるので、自分で何の仮想環境なのかが分かる名前にするほうがオススメです。

今回は「rag」という名前の仮想環境を作成します。

Pythonの仮想環境の作成方法

①ターミナルで対象のディレクトリまで移動してください。

cd 対象のディレクトリのパス

②このコマンドを実行して、「rag」という名前の仮想環境を作成してください。

python -m venv rag

「rag」という名前の仮想環境を有効にするコマンド

このコマンドをターミナルで実行しましょう!!

.\rag\Scripts\activate

「rag」という名前の仮想環境から抜けるコマンド

このコマンドをターミナルで実行しましょう!!

deactivate

仮想環境に入るコマンドと抜けるコマンドはよく使うので、覚えておくと便利です。
なお、VScodeでは、↑↓キーで履歴をさかのぼって実行することもできます。

環境設定: OPENAIのAPIキーを.envを使って環境変数に設定する

pyファイルに直接APIキーを書くのは、セキュリティ上避けたいところです。
これは、Githubなどでコードの公開を行った際に、誤ってAPIキーを公開リポジトリにアップロードされてしまうリスクを減らすためです。

.envファイルを作ってそこに書けば、セキュリティ上誰にも見られたくないものを環境設定に指定することができます。

.envファイルの作成方法

拡張子が「.envファイル」を作ればOKです!!
今回はOPENAIのAPIキーを以下のように設定してください。

OPENAI_API_KEY="自分のAPIキー"

環境設定:仮想環境に特定のライブラリをインストールするためのrequirements.txtファイルを作成する

requirements.txtは、指定したライブラリを一気にインストールするためのファイルです。
逆に言うと、requirements.txtを見ることで、その環境にどんなライブラリが入っているかがわかります。

requirements.txtファイルの作成方法

拡張子が「requirements.txt」という名前のファイルを作ればOKです!!
今回は、中身は以下の内容を記入してください。
ライブラリの内容については、次回の実践編で解説します。

langchain==0.0.200
openai==0.27.0
faiss-cpu==1.7.4
tiktoken==0.4.0
python-dotenv==1.0.0

requirements.txtファイルを仮想環境にインストールする方法

①仮想環境「rag」に入るコマンドを実行する

.\rag\Scripts\activate

②以下のコマンドでライブラリをインストールする

pip install -r requirements.txt 

こんな感じでインストールが始まったら成功です!!

もしも「UnicodeDecodeError」が出たら・・・

requirements.txtをインストールするときに、以下のエラーが出ることがあります。

UnicodeDecodeError: 'cp932' codec can't decode byte 0x8a in position 40: illegal multibyte sequence

このエラーの原因はtxtファイルのユニコードが合っていないため発生しています。
解決方法はrequirements.txtをメモ帳で開いて、文字コードを「UTF-8(BOM付き)」に変更して保存してください。

そして、もう一度VScodeから「②以下のコマンドでライブラリをインストールする」を実行してください。

おわりに

みなさま、準備が出来たでしょうか。
今回紹介した内容は、RAG活用以外にもローカル環境でPython開発するときにも有用な内容なので、ぜひご活用ください!!

第4回では、とうとう実践編です!! RAGを利用するためのpyファイルを作っていきます。

次回もお楽しみに!!

プレゼン資料や報告書を活かそう!PPTXのテキスト化とAIチャットボット開発入門 第2回PPTXテキスト化ツールの作成

はじめに

さあ、今回は楽しいツール作成の時間です。 個人的にプログラムで何かを作っているときが一番楽しいんですよね。 仕事でも、やっぱりこの時間が一番ワクワクします。

最近はchatGPTをはじめとした生成AIの到来で、プログラミングのスクリプト作成は格段に楽になりました。 今回のツール作成は、生成AIにいっぱい助けてもらいました。 でも、助けてもらうためのプロンプトを入力するためにも、基礎の部分は先に身に着けておいてよかったと思っています!!

  • 今回のサポートモデル:chatGPT/o1-miniモデル

シリーズ全体の概要

このシリーズは全4回にわたり、以下のテーマでブログで展開していきます。

第1回: シリーズイントロダクション
第2回: PPTXテキスト化ツールの作成 ←今回はココ
第3回: RAGを利用したチャットボットの作成
第4回: チャットボットの使用例紹介

免責事項

これらのツールは私個人が作成したもので、私個人の環境で実行テストを行ったものになります。 また、この記事で画像で紹介しているPPTXファイルも私個人が作成し、著作権を所持しているものとなります。

ツールの実行や出力されたテキストファイルの二次活用に関しては、著作権などを鑑みたうえで自己責任の範囲でご利用ください。

目次

ツール説明

さっそく今回作成するツールの紹介をします。

できることは 「Googleドライブに保存されているPPTXファイルからテキストを抽出し、PCへテキストファイルをダウンロードする」です!! PPTXファイルは同じドライブに入っていれば複数でもOKです。

実行結果はこんな感じです。

ツール詳細
  • 言語:Python
  • 実行環境:Google Colab
  • 抽出対象:Googleドライブ上のPPTXファイルのテキスト部分

Google Colabのノートブックは Google Colabにアクセスしたら新規作成できます。

スクリプト解説

まずはスクリプトを①~⑥に分けて解説していきます。
もしも全体像を先に見たい場合は、上記の目次から「スクリプト完成形」をクリックしてください。

PythonでPPTXファイルを読み込むのに必要なライブラリをインストールします。

# 必要なライブラリのインストール
!pip install python-pptx

②必要なライブラリをインポートします。

# 必要なライブラリのインポート
from pptx import Presentation
import os
from google.colab import files

Googleドライブをマウントします。

# Googleドライブをマウント
from google.colab import drive
drive.mount('/content/drive')

このとき、認証を求める画面が現れるので許可してください。 選択する順番は以下の順番で進めてください。

  1. Googleドライブに接続
  2. アカウント選択
  3. 次へ
  4. 続行

「ドライブをマウントする」という言葉があまり聞き慣れない方もいると思います。
意味としては、「マウント=認証して利用できるようにする」というニュアンスなので、この場合は「Googleドライブを認証して利用できるようにする」という認識で問題ありません。

「マウント」の解説や実際の使い方はキカガクさんのブログがとてもわかりやすいので、ぜひそちらを参考にしてください。 www.kikagaku.co.jp

GoogleドライブのPPTXファイルが入っているフォルダパスを指定します。今回は'/content/drive/MyDrive/aa'というパスを指定していますが、みなさまの環境で実際に読み取りたいフォルダパスを入れてください。

# pptxファイルが保存されているフォルダのパスを指定
pptx_folder = '/content/drive/MyDrive/aa' 

⑤指定したフォルダ内のすべてのPPTXファイルを読み込んで、変数:aggregate_textに統合していきます。

# まとめ用のテキストデータを初期化
aggregate_text = ""

# フォルダ内のすべてのファイルをリストアップ
for filename in os.listdir(pptx_folder):
    if filename.endswith('.pptx'):
        file_path = os.path.join(pptx_folder, filename)
        prs = Presentation(file_path)
        extracted_text = ""
        # 各スライドをループ
        for slide in prs.slides:
            # 各シェイプをループ
            for shape in slide.shapes:
                # シェイプにテキストが含まれているか確認
                if hasattr(shape, "text"):
                    extracted_text += shape.text + "\n"
        # ファイル名と抽出したテキストをまとめる
        aggregate_text += f"===== ファイル名: {filename} =====\n\n"
        aggregate_text += extracted_text
        aggregate_text += "\n\n"  # ファイル間のスペースを追加
        print(f'抽出完了: {filename}')

⑥変数:aggregate_textをテキスト化して、PCにダウンロードします。

# まとめたテキストを保存するファイル名を指定
aggregate_text_filename = 'all_extracted_texts.txt'

# ファイルを一時的な保存先に書き込む(例: /content/)
aggregate_text_path = os.path.join('/content/', aggregate_text_filename)
with open(aggregate_text_path, 'w', encoding='utf-8') as aggregate_file:
    aggregate_file.write(aggregate_text)

print(f'全テキストを {aggregate_text_filename} に保存しました。')

# ダウンロードリンクを生成
files.download(aggregate_text_path)

スクリプト完成形

# 必要なライブラリのインストール
!pip install python-pptx

# 必要なライブラリのインポート
from pptx import Presentation
import os
from google.colab import files

# Googleドライブをマウント
from google.colab import drive
drive.mount('/content/drive')

# pptxファイルが保存されているフォルダのパスを指定
pptx_folder = '/content/drive/MyDrive/aa' 

# まとめ用のテキストデータを初期化
aggregate_text = ""

# フォルダ内のすべてのファイルをリストアップ
for filename in os.listdir(pptx_folder):
    if filename.endswith('.pptx'):
        file_path = os.path.join(pptx_folder, filename)
        prs = Presentation(file_path)
        extracted_text = ""
        # 各スライドをループ
        for slide in prs.slides:
            # 各シェイプをループ
            for shape in slide.shapes:
                # シェイプにテキストが含まれているか確認
                if hasattr(shape, "text"):
                    extracted_text += shape.text + "\n"
        # ファイル名と抽出したテキストをまとめる
        aggregate_text += f"===== ファイル名: {filename} =====\n\n"
        aggregate_text += extracted_text
        aggregate_text += "\n\n"  # ファイル間のスペースを追加
        print(f'抽出完了: {filename}')

# まとめたテキストを保存するファイル名を指定
aggregate_text_filename = 'all_extracted_texts.txt'

# ファイルを一時的な保存先に書き込む(例: /content/)
aggregate_text_path = os.path.join('/content/', aggregate_text_filename)
with open(aggregate_text_path, 'w', encoding='utf-8') as aggregate_file:
    aggregate_file.write(aggregate_text)
print(f'全テキストを {aggregate_text_filename} に保存しました。')

# ダウンロードリンクを生成
files.download(aggregate_text_path)

おわりに

みなさまも準備が出来たらさっそく試してみてください!!
Googleドライブに入っているPPTXファイルがすべてテキスト化されてPCにダウンロードされるはずです。

そして、このテキストをchatGPTに転記して貼り付けてください。
その後は中身を要約してもらうも良し、必要な部分を抽出してもらうも良し、です。
好きにアレンジしてください。

第3回では、「 RAGを利用したチャットボットの作成」で、今回ダウンロードしたテキストを使ったRAG作成に挑戦します。
まだツールが完成していないので、公開まで今しばらくお待ちください。

次回もお楽しみに!!

プレゼン資料や報告書を活かそう!PPTXのテキスト化とAIチャットボット開発入門 第1回イントロダクション

はじめに

2025年、始まりましたね。
なんだか今年はPythonでいろんなツール作成に挑戦したいので、その記録をブログとして書いていきたいと思います。
また、このブログを通して自分自身の備忘録としてだけでなく、同じような課題を抱える技術者の皆さんにも役立つ情報を提供していきたいと考えています。

Pythonでツール作成に挑戦します!!

みなさま、仕事で日常的にパワーポイント(PPTX)を使ってプレゼン資料や報告書を作成することが多いと思います。
そのプレゼン資料や報告書の内容について、チャットで質問したり、必要な部分が抽出できたら仕事が楽になると思いませんか?

そこで、PPTXファイルのテキスト部分を抽出して、最近話題のRAG(Retrieval-Augmented Generation)という技術を利用してAIチャットボットに活用できないかなと思い、その仕組みを作ってみることにしました。

もちろん、AZUREなどの環境では、PPTXファイルを直接生成AIに取り込む方法も存在します。

でも、今回は個人の環境でも開発ができるように、環境+ローカル環境でPythonを使用してRAGを使える環境を作って解決する」という点に重点を置いて独自のツールを作成していきます。

現在、ツールはまだ開発途中であり、最終的な形には至っていません。
もしもツールが上手く作れなくても、ツールの作成過程を記録から何かしら学んだことが共有できればと思っています。

このブログは、私自身の備忘録としての役割を果たすとともに、Google環境を利用している技術者の皆さんに向けてノウハウを提供することを目的としています。

シリーズ全体の概要

このシリーズは全4回にわたり、以下のテーマで展開していきます。

第1回: シリーズイントロダクション
  • シリーズの目的と全体像の紹介
  • 今後の各回で取り上げる内容の概要を説明
第2回: PPTXテキスト化ツールの作成
  • Googleドライブに保存されているPPTXファイルからテキストを抽出し、PCへダウンロードするツールの開発
第3回: RAGを利用したチャットボットの作成
  • 抽出したテキストデータを活用し、Retrieval-Augmented Generation(RAG)技術を用いたAIチャットボットの設計と開発
第4回: チャットボットの使用例紹介
  • 作成したチャットボットの具体的な使用シナリオや活用方法を実例を交えて紹介


また、みなさまからのフィードバックも大歓迎です。

おわりに

このシリーズを通じて、PPTXファイルの効率的な活用方法やRAG技術を学ぶことができるはず・・・。
第2回では、「PPTXテキスト化ツールの作成」について詳しく解説しますのでお楽しみに!!

2024年振り返り

はじめに

本日は2024年の大みそかです。
時間がたつのは、年々速くなりますね。

なんとなく、2024年は「○○できなかった」ということが多い印象だったけど、ちゃんと振り返ると「意外とやってるじゃん」という結果になりました。
振り返り大事ですね。

というわけで、サクッとリスト化しながら2024年を振り返ります。

プライベート

できなかったことリスト

  • 筋トレ
  • ダイエット
  • 登山(少ない)
  • みんなでワイワイ遊ぶ(少ない)
  • ブログ更新

筋トレとダイエットは毎年言ってるなあ・・・。

でも、こうやってみると相対的に気力が足りなかった印象ですね。
後述する「体こわした」も絡んでくるのですが。
今までは風邪ひいても3日くらいで大体完治していましたが、今年は完治まで2-3週間ダラダラ長引いた感じがします。

できたことリスト

アクティビティ編
  • スノボデビュー
  • 食の本紹介会に参加
エンジニアリング編
  • Python講師2回目(webdriverバージョン4.0にカリキュラムを更新)
  • AIイベント登壇(友人主催のコミュニティで)
  • データサイエンスのオフラインイベントに参加
自分のこと編
  • 大掃除(夏)
  • ちょっとお高めな化粧品デビュー
  • 趣味:ネイルを追加
  • 漢方デビュー
  • 読書(いつもより多い)

こうやってみると、新しいことのチャレンジは結構できていたのかな。
そして、自分のことに意識を向けることができた年でもあった。

ちなみに、次回のPython講座からwebdriver活用は削除になったので、「webdriverバージョン4.0」は1度限りの幻の回となりました。
当時webdriverバージョン4.0について相談に乗ってくれた藤木さんとホッタさんには感謝しています!!

仕事

会社で起きたこと、やったこと

  • データ関連の部署に異動
  • 業務がデータ領域にかなり寄った
  • SQLデビュー
  • 一人プロジェクト&一人プロダクトマネージャー??デビュー

身についたこと

  • 思考力を身に着けた
  • 仮説が立てられるようになった

4月の異動からの約9カ月で、データ活用の「活用」の部分をちゃんと意識できるようになったと思います。
合わせて「ビジネス領域の理解を深めることの大切さ」も理解できるようになりました。
新しい部署で新しいことへの挑戦続きの9カ月だったけど、12月に入ってやっと一つ壁を乗り越えた感があります。

印象的な出来事

夏に体こわしてとてもつらかったのだけど、その後の流れは見事だったなと思う。

こんな流れでした

体こわした→風邪を移すとまずいので人に会えない→外出できないので大掃除する→模様替えする→断捨離を通して服を買い替る

結果的に、好きな服を着て、過ごしやすい部屋でリモート勤務ができたので、お仕事時間は快適になりました。

また、自分の生活を見直すきっかけにもなったので来年こそは筋トレとダイエットを成功させたいですね(笑)

2025年に向けて

まずは、健康診断と人間ドックですね。
別に気になることは今のところないのですが、2025年は健康と早期発見にお金と時間をかけたい。
そして、健康なうちに登山と食と人に会うことを楽しみたい。

後はアウトプット増やしたいですね。
ブログとか登壇とか。

外に出る機会を意識的に増やしていきたいです。


さいごに

振り返り前と振り返り後でかなり2024年の印象が変わったので、年内にちゃんと振り返ってみて良かった。
あと数時間ですが、みなさま良いお年を!

Windows10で個人向けCopilot (旧Bing Chat)でできることまとめ-2023年12月調査版

はじめに

AIの情報が錯そうする昨今、自分に必要な情報がわからなくなったりします。 今私に必要なのは表題のとおり、「Windows10で個人向けCopilot (旧Bing Chat)の情報」です。 よって、ここに2023年12月現在のCopilotの情報をまとめた備忘録を残しておきたいと思います。

注:AIの精度によっては正しくない要約をする場合があります。それを加味してCopilotをご利用ください。

目次

Copilotの個人向けと企業向けの比較

Copilot (旧Bing Chat)は以下の2種類があります。

  • 個人向け=無料版
  • 企業向け=有料版

そして、それぞれの機能をひとことで言うとこんな感じです。

  • 個人向け:WEBサイトやEdgeで開いたPDFファイルについてチャットで質問できるよ
  • 企業向け:個人向け無料版に加えて業務データの保護とMicrosoft365と連携できるよ

詳しくはこのサイトを見てほしいです!Copilotのエクスペリエンスの表もこのサイトから抜粋しています。

news.microsoft.com

Copilotの機能

Copilotを支える技術として、上記サイトにこの3つが記載されています。
つまり、チャット部分はGPT-4モデルなんですね。

OpenAI とのパートナーシップを通して、主に 3 つのテクノロジを Copilot に活用しています。まず 1 つ目はテキストを理解し生成する GPT-4。2 つ目は Code を理解し生成する力、そして 3 つ目はテキストの入力から画像を生成する DALL-E です。現在最新の DALL-E3 が提供されています。

Windows10で個人向けCopilot (旧Bing Chat)の入手方法

調べるとwindows updateがからんでいるようです。 windows10では、バージョン22H2からプレビュー版として提供されるようです。
でも私の周りではバージョン21H2でもCopilotが使えた人がいたり、バージョン22H2でもCopilotが使えない人がいたりするんで、正直なところよくわからないです・・・。

また、windows11へ移行すると自動的に入手できるようです。

会社で使用しているPCでは、組織としてwindows updateを管理しているので、Copilotが使用できない環境の方もいるかと思います。
詳しくはこちらを確認してください。

support.microsoft.com

windowsバージョンの確認方法

  1. PC画面の左下の「ここに入力して検索」に「winver」と入力してEnterキーを押す
  2. Windowsのバージョン情報」に書かれているバージョンを確認する

Windows10で個人向けCopilotでできること

WEBサイトに関する質問

  1. WEBサイトを開く
  2. 右上にあるCopilotマークをクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、右下のチャットで要約以外の質問してもOKです!

PDFファイルの内容に関する質問

これ結構衝撃だったのですが、PDFファイルをEdgeで開くとその内容についてチャットで質問できます。

  1. PDFファイルをEdgeで開く
  2. 右上にあるCopilotマーク、または上部の「Copilotに質問する」をクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、こちらも右下のチャットで要約以外の質問してもOKです!

googleスプレッドシートの内容に関する質問

googleスプレッドシートのURLをEdgeで開くとその内容についてチャットで質問できます。
が、精度はいまいちなのでそれを加味してご利用ください。
今後ここが精度向上したら激熱ですね!!

やり方と簡単な検証結果のみ共有します。

  1. googleスプレッドシートをEdgeで開く
  2. 右上にあるCopilotマーク、または上部の「Copilotに質問する」をクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、こちらも右下のチャットで要約以外の質問してもOKです!

試しに、東京の直近1カ月のデータを気象庁のサイトからダウンロードし、内容をgoogleスプレッドシートに貼り付け、そのURLをEdgeで開いてCopilotに質問しました。

気象庁 Japan Meteorological Agency

まず、要約はちゃんとできています!以下要約を転記します。

このページは、東京の気温に関するデータを表形式で示しています。以下は、ページの主な内容です:

ダウンロードした時刻:このページは、2023年12月17日15時16分14秒にダウンロードされたことを示しています。
年月日:このページは、2023年12月1日から12月21日までの21日間の気温データを含んでいます。
平均気温、最高気温、最低気温:これらの列は、各日の平均気温、最高気温、最低気温を摂氏で表示しています。品質情報と均質番号は、データの信頼性を示すものです。
降水量の合計、日照時間:これらの列は、各日の降水量の合計(ミリメートル)と日照時間(時間)を示しています。現象なし情報は、その日に特別な気象現象がなかったことを示すものです。
平均風速、最大瞬間風速、風向:これらの列は、各日の平均風速(メートル毎秒)、最大瞬間風速(メートル毎秒)、風向(方角)を示しています。
平均湿度、平均蒸気圧、平均雲量:これらの列は、各日の平均湿度(パーセント)、平均蒸気圧(ヘクトパスカル)、平均雲量(10分比)を示しています。

あれ?今2023/12/17なのに未来の期間が含まれている・・・。
やはり数値の正確な読み取りは難しそうです。

年月日:このページは、2023年12月1日から12月21日までの21日間の気温データを含んでいます。

試しに計算もお願いしましたが、読み取りが正しくできていないのでよくわからない計算をしていました。
以下、質問と回答を転記します。

質問:このページのE列:最高気温(℃)の平均値を教えてください

このページのE列:最高気温(℃)は、東京の2023年12月の日別の最高気温を示しています。この列の平均値は、以下のように計算できます。
平均値=E列のデータ数E列の合計​
このページのE列の合計は、17.6 + 13.6 + 17.6 + 19.4 + 18 + 17.6 + 19.5 + 21.2 + 24.2 + 13.5 + 9.5 + 15.7 + 22.5 + 17.6で、246.9℃です。このページのE列のデータ数は、14個です。したがって、このページのE列:最高気温(℃)の平均値は、以下のようになります。
平均値=14246.9​≈17.6℃
このページのE列:最高気温(℃)の平均値は、約17.6℃です。

なぜか一部の数値しか計算してくれませんでした。

ここの精度向上したら、データ分析もCopilotにある程度お願いできそうです。

まとめ

Copilotは2種類あります。

  • 個人向け=無料版
  • 企業向け=有料版

違いはこんな感じです。

  • 個人向け:WEBサイトやEdgeで開いたPDFファイルについてチャットで質問できるよ
  • 企業向け:個人向け無料版に加えて業務データの保護とMicrosoft365と連携できるよ

Copilotの入手についてはこんな感じです。

  • windows updateがからんでいるらしい
  • windows10では、バージョン22H2からプレビュー版として提供されるらしいが、バージョン21H2でもCopilot使える人がいる

Copilotでできることとして3つピックアップしました。

  • WEBサイトの内容に関する質問
  • PDFファイルの内容に関する質問
  • googleスプレッドシートの内容に関する質問(精度低い)

おわりに

最近Pythonスクリプト作っても、しばらくすると「GPTでいいじゃん」「Copilotでいいじゃん」が発生していて少し切ない。
そして、それが今後も加速しそうな気がします。
正直AIの進化早くてついていけない気持ちになるけど「じゃあ人は何をするのか」を見失わないようにしたいなと思いました。

2023年振り返り

はじめに

早くも師走になってしまった。

このブログは「ノンプロ研Advent Calendar 2023」に参加しています。

adventar.org

どんな1年だったか

公私ともに挑戦の1年でした。

まず、プライベートでは何といっても登山との出会いが大きかったです!!
出会いは今年の3月。はじめての登山で筑波山に登ったのですが、登頂ですでに限界を超えていました。
悔しくて、ロープウェイで下山するときに「絶対年内にロープウェイなしで往復してやる!!」と心に誓いました。
そして、いろんな山で登山修行をして、11月、無事にロープウェイなしで筑波山往復できました🙌
人っていくつになっても成長するんですね。本当に嬉しかったです!!

仕事では、BIツールの勉強会したり、会社にナレッジを残せるような仕組化したり、AI活用のツール作ったりと新しいことをたくさんやってきた気がします。

コミュニティ活動では、初心者Python講座の講師をしました!
あれは本当に勉強になったなあ。
今仕事でPythonでいろんな仕組作れるようになったのは、講師役で基礎の復習ができたからだと思っています。

今年の目標が達成できたか

うーん・・・正直速攻で目標を忘れていましたね。 でもどんな感じだったかちゃんと振り返ってみます。

lbibouroku.hatenablog.com

  • プログラミングを楽しむ
    ⇒楽しくもあり、苦しくもあったかなwでも間違いなくPython力は上がった!!
  • 対話を大切にする
    ⇒たぶんできたと思う!!以前に比べるといろんな人と打ち解けられるようになった。良い意味で「何話そう」って考えすぎなくなったのかも。
  • 解像度を上げて行動力を高める
    ⇒行動力はわからないけど、解像度をあげて物事を分析できるようになったかな・・・!
  • 料理を作るモチベーションを上げて健康的な食生活を送る(リベンジ!!)
    ⇒リベンジならず、完敗でした😢

あ、思ったよりできてる!!

来年の抱負

もう仕事や勉強の目標は作らなくていいかなと思っています。   ここ最近、予想外なことばかりで未来が予測できない時代になってきているので。
あと、本当にこの1年がんばったと自負しているので。
来年は無理しない範囲でやってみて、そこからどうするか判断します。

というわけで、来年の目標はやっぱこれで!!

  • 2000m級の山に登ること

いろんな山をデータドリブンで制覇していきたい。

それではよいお年を👋

2023年11月までのGithub Copilot関連の情報まとめ

はじめに

Github Copilot周りもここ最近いろんな情報が集まってきているので諸々まとめます。

Github Copilotとは?

プログラミング作業を支援するために開発されたAIベースのコード補完ツールです。
VSやVScodeなどテキストツールに拡張機能として導入して使用します。
CopilotはGPT-3.5を利用してコードの提案を行います。
この時に学習したコードをGPTモデルに学習させるかどうかは設定可能です。

Github Copilotは以下の3種類のアカウントがあります。

  • Copilot for Individuals
  • Copilot for Business
  • Copilot Enterprise(2023年2月から順次利用可能)

各アカウントの概要をまとめました。

プラン Copilot for Individuals Copilot for Business Copilot Enterprise
月額 10ドル/1ユーザー 19ドル/1ユーザー 39ドル/1ユーザー
アカウントタイプ 個人用アカウント Organization または Enterpriseアカウント 組織に合わせてカスタマイズされたアカウント
主な機能 エディターに直接接続する コード補完
IDEおよびモバイルでのチャット
CLI支援
Copilot のすべて
コードベースに合わせたカスタマイズ
自然言語のプロンプトをコードに変換 セキュリティ脆弱性フィルター
コード参照
ドキュメントの検索と要約
プルリクエストの概要
複数行にわたる関数の提案 公開コードフィルター
知的財産権の補償
コードレビューのスキル
微調整されたモデル
テスト生成を速める エンタープライズ グレードのセキュリティ、安全性、プライバシー
公開されているコードと一致する提案をブロック

公式サイト

docs.github.com
github.com

2023年10月開催の「GitHub Copilot “Chat” ハンズオンワークショップ〜企業で取り入れるヒントとは? 」の参加メモ

※内容はすべて当時の情報です

GitHub Copilotの機能と未来

  1. GitHub Copilotについて
     ・約500トークン程で提案を行う
     ・機能には単体テストの生成、コード解説、修正提案、質問回答、言語間変換、可読性向上が含まれる
     ・今後CLIコマンド対応も予定

  2. GitHub Copilot Chatについて
     ・Chat機能はベータ版として利用可能(今は追加料金なし)
     ・トークン制限がほぼない

カカクコム社のGitHub Copilot導入と使用感

  1. 企業におけるCopilotの導入経緯
     ・カカクコムでは、ZOZOを参考に導入。従業員エンゲージメントの観点から導入を検討
     ・企業内での使用は、開発者だけでなく、手順書作成やブログ執筆、議事録作成などにも有用
  2. Copilotの可能性
     ・Copilotを使うことで、新卒社員などが「Copilotネイティブ」として成長する可能性がある
     ・思考錯誤の時間の削減が期待される
  3. 教育への応用
     ・学習者はCopilotを使って効率的に学ぶことが可能
     ・ただし、自己学習とドキュメント閲覧の重要性も指摘されている
  4. ネガティブな反応
     ・一部からは、提案されたコードのエラーや好みの問題、AIによるコード作成の楽しみの減少などの懸念がある
  5. 使いこなし方とアイデア
     ・一部の開発者には特に刺さる機能があり、例えば単体テストの自動生成などが効果的

まとめると、GitHub Copilotが多岐にわたるシナリオでプログラミング業務を支援できる可能性が見込まれる。 また、教育や業務効率化に対する有用性、社内での利用方法や受け入れ度合いについての考察も含まれている。

2023年11月開催されたGitHub Universeについて

Copilot Enterpriseの発表があったようです。 そして、GPT-4モデルの適用とChatの提供開始も発表されました。

GitHubブログ(日本) github.blog

gihyo.jpでまとめられた内容がわかりやすかったので、こちらも共有します。
GitHub Universe 2023開催、GitHub Copilot Chatの一般提供、GitHub Copilot in the CLIなど発表 | gihyo.jp

今後

2023年12月5日に「GitHub Universe Recap」というイベントを開催予定らしいです。
ここで詳しいキャッチアップができそうです。

www.event-info.com

以下イベントの「ごあいさつ」を抜粋します。

ソフトウェア開発現場にパラダイムシフトを起こしたGitHub Copilotに続けて、GitHubの新たなソリューションの公式発表が、 11月にサンフランシスコにて開催のGitHub Universeにて行われ、その全容が明らかになります。 本イベントでは、GitHub Universeで発表された内容や最新のGitHubプロダクト情報を日本語でお届けし、ライブ配信いたします。 またイベント会場では、ライブデモやブース展示に加えて、ネットワーキングパーティーなど、今起きているソフトウェア開発現場の変革を知り、 GItHubのプロダクトに関する知識を深める機会や、開発者同士で交流する機会が設けられます。 実に5年ぶりとなるGitHub主催の開発者向け大規模イベントに、ぜひご参加ください。

個人的な感想

Github Copilotはコード生成だけでなく手順書作成やブログ執筆に活用できるのが大きいと思いました。
過程をドキュメントで残すことで情報のブラックボックス化は防げそう。 また、コードだけでなく、プロダクト設計も提案してくれるので、そのあたりの学習コストが下がるのは嬉しい。

おわりに

まずは期間限定で使ってみたい!