「ChatGPTを使って自分のはてなブログとチャットするツールを作った」をDocker環境で動かして自分のはてなブログとYUU MEDIA TOWN@Blogのデータでテストしてみた: YUU MEDIA TOWN@Blog

封神龍(酒)の日記です、気になるニュースなどもチェック!ゾイド(ZOIDS)とかMacとかUNIXとかwindowsとかアニメ・漫画とかゲームとか雑記とか備忘録とか北海道とかお酒とか。検索エンジン経由来訪でお探しのキーワード関連記事が見つからない方はこちら祝!HP爆誕25周年!!

2023年04月19日 (水曜日)

「ChatGPTを使って自分のはてなブログとチャットするツールを作った」をDocker環境で動かして自分のはてなブログとYUU MEDIA TOWN@Blogのデータでテストしてみた

先日から技術検証がてら
ChatGPTを使って自分のはてなブログとチャットするツールを作った - $shibayu36->blog;(参照サイト)
これを動かしてみようと環境作りしていました。
CentOS 7系列にgit 2系列をインストールする【2023年4月】(2023年04月11日 (火曜日))
CentOS 7.9にpip(python-pip)をインストール(2023年04月16日 (日曜日))
途中で、動かしてみたいだけだったら他にいろいろ動いているLinux
Intel Mac(x86)のmacOS 12のVirtualBOX(仮想環境)でLinux(CentOS 7)のインストールからサーバー環境構築(2022年11月08日 (火曜日))
に環境構築しないで
Dockerで--mountしてたらそんなフラグ(オプション)はない、とエラー。yumで入れたCentOS 7のDockerのバージョンが古かった【なので最新?安定VerのDockerインストールした】(2023年02月04日 (土曜日))
Dockerでよくね?と思い、Dockerでこちらのプログラムを動かす環境構築してみる事に。

もうシンプルなもんです。
もうLinux本体にgitをインストールしていたのでgitで
GitHub - shibayu36/chat-hatenablog
をgit clone。

参照サイトに書いてあるPythonのpipの環境はDockerのイメージ構築時にもうやってしまおうという事で「requirements.txt」ファイルは取り出しDockerfileと同じフォルダに置いておきます。

Dockerfileは


FROM python:3.11

#作業用ディレクトリを変更

WORKDIR /tmp/mydir

#ファイルのコピー

COPY requirements.txt ${PWD}

#pip自体のアップデート

RUN pip install -U pip

#pythonのパッケージをインストールして、インストール終わったらrequirements.txt削除

RUN pip install -r requirements.txt && rm -rf /tmp/mydir/*

# 一時変数の定義(何もしないとrootでファイルが生成されちゃうので、コンテナ外からファイルいじるの面倒になるのでLinuxやファイル共有で使っているのと同じユーザー名作成)
ARG USERNAME=コンテナ内で使うユーザー名
ARG PASSWORD=└のパスワード
ARG GROUPNAME=コンテナ内で使うグループ名
ARG UID=1000←あくまで例
ARG GID=1000←あくまで例

# 一般権限のユーザーを追加
RUN groupadd -g ${GID} ${GROUPNAME} \
&& useradd -u ${UID} -g ${GID} -G sudo -m -s /bin/bash ${USERNAME} \
&& echo ${USERNAME}:${PASSWORD} | chpasswd \
&& echo "%${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# ユーザーの切替
USER ${USERNAME}


docker image build -t イメージ名/タグ .
でビルドします。

ビルド終わったら実行。

docker container run --name コンテナ名 -it --rm --mount type=bind,src=git cloneしたフォルダ(例:/home/ユーザー名/git/chat_hatenablog みたいな),dst=/tmp/mydir イメージ名/タグ /bin/bash
でコンテナ稼働しつつそのままコンテナ内に。

先に
★★API keys - OpenAI API
でAPI Keysを生成しておきます。

はてなブログは自分のテストで以前に作っていた奴を使います。
YMT@blog はてなブログ支店(https://ymt.hatenablog.jp/)
こちらからMT形式のバックアップをエクスポートしておきます。

設定ファイルの
.env
の中身は参照サイトを参考に


OPENAI_API_KEY=自分のアカウントで生成したAPI Keys
BASE_URL=https://ymt.hatenablog.jp/entry/

と記載。

その後
python make_index.py --mt-file エクスポート.txt
としてインデックスを作成。

2エントリしかないブログなのですぐに終わりました。

あとは質問を投げます。

python ask.py --query 質問事項

私の上記のブログ内容で適当に質問してみると

python ask.py --query テスト


THINKING...

ANSWER:
こんにちは!テストに関するお話ですね。テストは大切ですね。何かお力になれることがあればお伝えください。

refs:
- ブログカードのテストだよ。: https://ymt.hatenablog.jp/entry/2014/09/06/125240
- はてなブログ導入テストです【YUU MEDIA TOWN@blog】: https://ymt.hatenablog.jp/entry/2011/11/24/234816

更に
ChatGPTを使って自分のはてなブログとチャットするツールを動かしてみた

python ask.py --query 天気について書いてるエントリ、あるかな?

THINKING...

ANSWER:
はい、天気についてのエントリがあります。YUU MEDIA TOWN@blogの中に「今日の天気」 というタイトルで投稿しています。ぜひご覧ください。また、他にも様々なジャンルの情報を掲載していますので、お時間があればぜひ訪問してみてください。何かお役に立てる情報があるかもしれません。

refs:
- はてなブログ導入テストです【YUU MEDIA TOWN@blog】: https://ymt.hatenablog.jp/entry/2011/11/24/234816
- ブログカードのテストだよ。: https://ymt.hatenablog.jp/entry/2014/09/06/125240


うっわ!すげぇ・・・・・これ、約25年(ブログは2003年頃開始でそれまでの日記を一部ブログに移植している)継続してる
YUU MEDIA TOWN@Blog
のMT形式のバックアップ学習させたら凄い面白そう、とやってみたけど、微妙にはてなブログとバックアップの形式が違うのか、エラーになってしまった。
当初はUTF-8以外の文字あんぞ!!というエラーだったので
Convert to UTF-8の詳細情報 : Vector ソフトを探す!
で完全にUTF-8に変換してみたけど次は項目とかの問題かな?それでエラーに。そこ修正すればうまくいくか?それかそのバックアップファイルをはてなブログに移植して、それをエクスポートすれば、と考えましたがファイルサイズがでかすぎてエラーになりはてなブログにインポート出来なかったのでそれは止めました。215MBあるし・・・・・・

ひとまずどんなもんか実感できれば良かったのでひとまずこんなもんで。

・・・・・プログラム修正よりはてなブログと同じ書式のバックアップファイルをMovable Typeで生成してそれを食わせた方が早いか。

という事でMovable Typeではてなブログのバックアップファイルと同じ書式で生成するようにして.envファイルのURLを
http://www.yuumediatown.com/diary/mt001/archives/
に変更。

この辺の情報を参考に
記事のインポートフォーマット | CMSプラットフォーム Movable Type ドキュメントサイト
MTEntryID - テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
似たような書式で生成したバックアップファイルを生成。それを
python make_index.py --mt-file エクスポート.txt
とすると無事、読み込まれました。

python ask.py --query ChatGPTについて書いたエント リありますかね?
とすると


THINKING...

ANSWER:
こんにちは!はい、ChatGPTについてのエントリがあります。YUU MEDIA TOWN@blogの中に「ChatGPTを使って自分のはてなブログとチャットするツールを作った」というタイトル で投稿しています。ぜひご覧ください。また、他にも様々なジャンルの情報を掲載していますので、お時間があればぜひ訪問してみてください。何かお役に立てる情報があるかもしれません。

refs:
- 「ChatGPTを使って自分のはてなブログとチャットするツールを作った」をDocker環境 で動かして自分のはてなブログのデータで動かしてみた: BASE_URL=http://www.yuumediatown.com/diary/mt001/archives/027566.html

素晴らしい。

テストの為、この1エントリしか読み込ませてないのだけれど、全エントリ生成の奴で今度やってみよう・・・・・と全エントリの生成しようとしたらテンプレート生成では実行時間長すぎでエラーになっちゃって途中までしかバックアップファイル生成できない・・・・
「書き出し」なら最後までダウンロード出来るけど、こちらは書式の指定が出来ない・・・・・
なので全エントリを読み込ませたいならプログラムの方を変えなくては駄目ね。

とりあえず生成できた部分を読み込ませて、質問してみました。
macOS 12のターミナルでchatGPTの質問を入力し回答を得る
いいですね。

まあ技術検証なのでここまででいいか・・・・・・時間に余裕あれば全エントリのバックアップを生成し、なおかつWebのインターフェイスをかぶせたりできれば面白いかな~と思うけれど。


Posted by 封神龍(酒) at 2023年04月19日 11:53 | 【所属カテゴリ: Linux】【コメントについて】【トラッくバックについて】【RSS登録についてRSS登録

--



--


--