この記事は、ソフトウェアテスト Advent Calendar 2023 の13日目の記事です。
ソフトウェアテスト Advent Calendar 2023
https://qiita.com/advent-calendar/2023/softwaretesting
このエントリでは、
pytestのfixtureを使ったPostgreSQLに依存するテストコードの書き方を示します。
DBに対してクエリを実行する処理が含まれるコードは、
単体テストの実行環境を準備するのが面倒になりがちですが、
このエント …
このエントリでは、Cloud-initの設定ファイルを作成する時、
手軽に手元の環境で動作確認をできるよう、WindowsにMultipassを入れて環境を作ってみます。
Multipass
https://multipass.run/
Cloud-init
https://canonical-cloud-init.readthedocs-hosted.com/en/latest/index.html
Multipassをインストールする。
PS> winget install multipass …
このエントリでは、
CeleryでFastAPIのバックグラウンドジョブを動かす手順をまとめています。
また、動かすプロセスがいくつかあり面倒なので、
Supservisorでまとめて起動できるようにしています。
各プロセスは、次の役割を担います。
- FastAPI: ジョブを受け付ける
- Redis: ジョブのキューを管理する
- Celery: ジョブを起動する
各ツールのドキュメントは以下を参照してください。
FastAPI
https://fastapi.tiangolo.com/ja/
Celery …
AWS Batch(Fargate)で、
Subnet外にアクセスできないPrivateSubnet上の
ComputingEnvironmentでECRのPrivateRepositoryからimageをpullして実行する手順をまとめておきます。
作成するシステムの構成は、次の図のとおりです。
Subnet外のAmazonECRのRepositoryにアクセスするため、
VPC Endpointを利用する構成とします。
右側のAWS Batchの部分を「AWS Batchの環境とJobの準備」の章で
…
このエントリでは、
AWSのSecretsManagerから情報を取得するアプリケーションを、
ローカルPCで開発する際に便利な、
AWS Secrets Manager emulatorの使い方手順をまとめています。
AWS Secrets Manager emulator
https://github.com/skarpdev/hapi-aws-secrets-manager-emulator
AWS Secrets Manager emulatorの起動から、
Pythonのアプリケーションから情報を …
以下のエントリでLangServeを動かしたので、
次はAWS Lambdaに対応したLangServeアプリケーションの作成を考えたいと思います。
LangChainで作ったChainをLangServeでAPI化する手順
https://takemikami.com/2023/11/18/LangChainChainLangServerAPI.html
AWS Lambdaのひな形アプリケーションの作成
AWS SAM CLIでAWS Lambdaアプリケーションのひな形を用意します。
sam init …
LangChainで作ったChainをLangServeでAPI化する手順をまとめておきます。
Chainが出来ていれば、add_routeで追加するだけです。
LangServe
https://python.langchain.com/docs/langserve
Chainを用意する
まずは、LangChainのChainを用意します。
チャットで会話するだけの簡単なChainです。
conversation_sample.py
from langchain.chat_models import …
DooD(Docker outside of Docker)という方法を使うと、
Dockerホストで行っていた処理を、Dockerコンテナ内で行うことが出来ます。
但し、Dockerコンテナ内から、Docker Composeを使う場合は、
そのままでは使用することは出来ません。
Docker ComposeがDockerホストのパスを前提に動作するので、
DockerホストとDooDコンテナのパスを合わせる必要があります。
ファイル構成
結論から書くと、以下のような構成で実現できます。
# Docker …
Hyper-Vに開発用UbuntuLinux22.04環境を作るときに参考にしたサイトのメモです。
想定OSは、Windows11Proです。
このエントリでは、以下の点についてメモを残しています。
- Hyper-V・UbuntuLinuxのセットアップ
- Windowsとの運用環境
- ネットワーク
- WSLとの接続
- Windows TerminalからのSSH接続
- XServer(VcXsrv)の導入
- 日本語環境
- Windowsショートカット
- ファイル共有
- Windows ← Ubuntu …
PolyCoderというプログラミング言語の大規模言語モデルを動かして、
コード生成を試してみたので、その手順メモを残しておきます。
Large Models of Source Code | GitHub
https://github.com/VHellendoorn/Code-LMs
PolyCoderが何なのかは、次の記事を見てもらえば、なんとなく分かると思います。
新たなオープンソースのAIコード生成モデル「PolyCoder」–カーネギーメロン大 | ZDNET …
日本語Wikipediaのデータで言語モデル(KenLM, RNNLM)を学習させる手順のメモです。
kenlm | GitHub
https://github.com/kpu/kenlm
Faster RNNLM (HS/NCE) toolkit | GitHub
https://github.com/yandex/faster-rnnlm
動作確認環境は、次のとおり。
- Ubuntu Linux 20.04 / WSL2
- Python 3.10.11
Wikipediaデータの準備
日本 …
このエントリでは、
Docker Composeを使って、
テスト対象の起動からテスト実行までをまとめて実行したい時に、
必要になりそうなノウハウを取り上げます。
ここでは、次のような要件があると考えました。
- 開発環境構築用docker-compose.yamlはそのまま変更せず、テスト実行用のコンテナを追加したい
- テストの成否によってDocker Compose実行後の終了コードを変えたい
- 異常系テストのために一部コンテナを停止するなど、コンテナをテストコードから制御したい
- Docker Compose …
IntelliJ IDEAとWSLで開発したい時、
開発環境の構成パターンはいくつかあるので、
それぞれについて整理したメモを、このエントリに残しておきます。
UI、IDE、実行環境をWindows側・WSL側(Linux)のどちらで動かすかで整理すると、
以下のような構成パターンがあります。
他にもあるかも知れないですが
パターン | UI | IDE | 実行環境 |
---|---|---|---|
1. WSLは使わない | Windows | Windows | Windows |
2. リモートデバッグ | Windows | Windows | WSL |
3. JetBrains … |
GoogleCloudPlatformのエミュレータを
ローカルPC上でdockerを使って動かす時のメモです。
エミュレータを起動して、Pythonのコードでアクセスしてみます。
ここでは、以下3サービスを動かしてみます。
- bigtable
- pubsub
- storage
datastore, firestore, spanner も同様の手順で利用できると思います。
エミュレータの起動
ここでは、docker composeを使って動かします。
次のようなdocker-compose.yml
を用意しま …
docker-composeは決まった形式でプロセスの起動方法を書けるので便利ですが、
手元のPCに開発環境を作る場合など、
プロセスの起動管理をしたいだけの時は、docker前提だとtoo-muchで扱いにくい事も多いです。
調べてみるとdocker前提で無くdocker-composeライクに起動管理するツールがありました。
Process Compose | GitHub
https://github.com/F1bonacc1/process-compose
本エントリでは、このツールの使い方 …