理系学生日記

おまえはいつまで学生気分なのか

python

RyeによるPython環境構築

僕がPythonを使っていたのは2015年までなのですが、その頃とは打って変わって、Pythonの環境構築に関するツールは充実してきた印象を受けています1。その中で、これ良さそうだなと思ったのがRyeでした。 Ryeとは ryeのインストール shimにPATHを通す ryeの補…

OpenAI(GPT)のEmbeddingsを利用して原始的なChatBotを作る

会社の中の雑談で、Embeddings APIを使ってChatBot作れるよね、という話をしていました。 僕はこのあたり初心者なのですが、まずは動かすもの作ったらイメージが沸くだろうと、とりあえず実装してみます。 Embeddingsとは何か Embeddings API コスト 入力ト…

インターネットに接続できないオフライン環境でPython製ツールをインストールしたい

ときに、インターネットに接続できない環境というのが存在します。 しかし、今回はこういう環境において Python 製のツールを使いたいという状況が発生しました。 今日びのパッケージマネージャというものはパッケージリポジトリからダウンロードするのが一…

トップレベルパッケージ名が同じ複数のモジュールを作る場合 (PEP 420 あるいは package namespace)

目的 要するに、こういうことを実施したいわけ。 + dirA + packageName - moduleA.py + dirB + packageName - moduleB.py上記のような構成、つまり、別ディレクトリに packageName という共通パッケージ空間があることを前提として、 import packageName.mod…

コンテキストマネージャ

コンテキストマネージャが導入されて、可読性高くプログラムが書けるようになった。コンテキストが必要となる場面というのはなかなかに多くて、例えば 特定の機器にログインした後でコマンド実行を行い、ログアウトする ファイルロックをかけて、排他制御を…

関数デコレータによる print デバッグ

最近ようやく Python を本格的に触りはじめて、なかなかおもしろいなーという感じになってる。イテレータとかジェネレータ、メタクラスとかが言語と密に関連していて、オシャレなかんじ。そういうわけで、今後いろいろと Python まわりの初心者っぽいアウト…

requests で CyberGate DDNS の IP アドレスを更新する

模様替えに伴って自宅にあった 5 年前のサーバの電源を切り、廃棄に向けた検討に入りました。しかしですね、そういえばこのサーバでは DiCE か何かが動いていて、日々 DDNS を更新し続けていた。 もうサーバ立ち上げるのもメンドい(ケーブルとかモニタとかつ…