2024年12月21日
システムの仕様上、稀によくめちゃめちゃ長いログが発生することがありますね(?)。そういう時、そのまま出してしまうとログを収集したり集約したりするどこかの上限に引っかかってしまうことが考えられます。もしくは、閾値を超えたときに分割される場合もありますが、JSON のような構造化ログを送るようなケースでは分割されるとデータが破損してしまいます。そのような背景から、長いログの場合にはアプリ側で分割して構造化ログを吐き出せるようにした方がいいと考えて、作ってみました。 ## 成果物 ```python:pys
2024年12月12日
この記事は Fujitsu Advent Calendar 2024 の12日目の記事です。 昨日は @Syuparn さんの バックエンドの動作確認に使用できるワンライナーAPIサーバーの紹介 でした。私も動かしてみましたが、本当に動いていてすごいと思いました。 --- 優秀な弊弟が scikit-learn で、いぬの画像分類をするモデルを作ったのでそれを API として提供できるようにしてみました。下記はその奮闘記です。 ## 環境 * Python 3.12.2 * numpy 2.1.
2024年10月24日
前回 ファイル保存なしでWhisper APIにLINE Messaging APIから音声を渡す という記事を書きましたが、OpenAI の API を使うと決める前はラズパイ上で Whisper を動かすことを企んでいました。今回はその記事になります。今回もファイル保存せずにやります。 作った API を Raspberry Pi 5 で動かしてみたのですが、数秒の medium モデルで音声を文字起こしするのに1〜2分はかかるので使い物にならなくてやめました。 ## 環境 * Python 3
2024年10月17日
LINE Messaging API でユーザーから送られてきた音声を OpenAI の Whisper API に渡す方法はググるとたくさん出てきますが、私が見た範囲ではどれもサーバー内に一時ファイルを保存しているものだったので、ファイル保存なしでメモリ上でなんとかする方法を探してみました。 ## 想定読者 * LINE Messaging API の使い方を知っている人 * LINE ボットの作り方の解説は省きます * 一時ファイルの保存はしたくないというこだわりがある人 ## 環境 *
2024年2月20日
Pydantic V2 が2023年6月にリリースされました。結構いろいろ変わっていて移行作業はそこそこ大変な気がしますが対応される方は Migration Guide を読んで頑張ってください。 私はというと V1 のころに Pydantic の `@validator` デコレータをカスタムしまくったので、V2 でそれがほぼ使えなくなってしまいました。そもそもなんでカスタムしたのかというと、バリデータのメソッドに DB にアクセスするためのセッションオブジェクトとかを渡したかったからでした。V2 で
2024年1月24日
個人で使っている LINE bot を賢くしたくて、ChatGPT を組み込んでみました。ChatGPT を自分のアプリに組み込むのは初めてなのですが、LangChain の機能の豊富さに驚かされました。 ## 対象読者 * 人間のあいまいな指示を機械が実行できるアクションに落とし込ませたい人 ## 検証環境 * Python 3.11.6 * LangChain 0.1.1 * langchain-openai 0.0.2.post1 ## できたもの ```python from data
2023年11月18日
Rye は Rust 製の Python パッケージマネージャです。まだ「実験的」なステータスなので全ての方にお勧めできる段階ではないかもしれないですが、十分に実用的で安定していると思います。Pipenv や Poetry との違いは、パッケージ管理だけでなく、Python バージョンの管理までやってくれるところが特徴で、Pipenv/Poetry + pyenv が1つのツールにまとまっているイメージです。 さて、今回は Rye を Docker コンテナで使う時のポイントをまとめてみました。Rye
2023年11月9日
世の中には AWS Signature V4 署名の実装方法についての記事はたくさんありますが、その署名を付与して検証する側(サーバー)の実装方法について見つけるのは難しいです。AWS API Gateway を使えば簡単に自分で書かなくても良いのでそれはそうなのですが、AWS SigV4 は curl のオプションとしても使える くらいの地位を獲得しているので、AWS SigV4 を利用した認証機能の実装方法についての記事があってもいいでしょう。 ということで、今回は Python と FastAPI
2023年5月15日
前回の記事では SQLAlchemy の Session について解説しました。今回はその応用として、Celery においてどのように Session を管理するかを考えたいと思います。 関連記事: * SQLAlchemyのセッション・トランザクションを理解する * SQLAlchemyで'MySQL server has gone away'が発生した時の対処法2つ ## 結論 以下のように DB 操作を行うタスクのためのクラスを作ります。 ```python from typing impo
2023年5月14日
SQLAlchemy の Session や scoped_session、トランザクションに関して理解していきます。 ## 用語おさらい ### セッション(Session) SQLAlchemy の Session オブジェクトは、ORM マッピングされたオブジェクトの永続化に関する操作を管理するオブジェクトです。 `sqlalchemy.orm.Session` を直接インスタンス化しても良いですが、実環境では sessionmaker を使うことが一般的です。sessionmaker は