BioErrorLog Tech Blog

試行錯誤の記録

雰囲気で味わうTGS2023 初体験レポ | Tokyo Game Show 2023

Tokyo Game Showに初めて行ってきたので、体験レポを残します。 Tokyo Game Show 2023 はじめに TGS2023 初体験記 チケットを買う 当日: 会場に向かう インディー会場 メイン会場 感想 おわりに 参考 はじめに 昨日(2023/09/23 土曜日)、Tokyo Game Show 202…

テストデータをどこに配置するべきか | Go言語

Go

結論: testdataディレクトリに配置します。 はじめに テストデータをどこに配置するべきか おわりに 参考 はじめに Goでテストを書いているとき、テストデータをどこに配置するべきか悩みました。 調べてみたらGo公式で明記されていたので、備忘録にメモしま…

Terraformのone()関数の振る舞いを理解する

Terraformのone()関数の挙動を整理します。 はじめに one()関数の振る舞いを理解する one()関数の仕様 具体例 one()関数の使いどころ おわりに 参考 はじめに Terraformにはone()関数が用意されています。 端的すぎる命名ということもありパッと挙動がわから…

GPTのstreamとtimeoutを併用した時の挙動 | OpenAI Python Library

OpenAI APIをPythonで呼び出すとき、GPTのstreamとtimeoutを併用するとどうなるのか、検証します。 はじめに GPTのstreamとtimeoutを併用した時の挙動 仮説 検証方法 検証結果 まとめ おわりに 参考 はじめに OpenAI APIをPythonで呼び出すときは、timeoutや…

OpenAI APIでGPTのstreamレスポンス | Python

OpenAI APIで、GPTのstreamレスポンスをPythonで実装する方法のメモです。 はじめに OpenAI APIでGPTのstreamレスポンス おわりに 参考 はじめに OpenAI APIでGPTを呼び出すと、デフォルトでは全ての回答生成が終わってからレスポンスが返ってきます。 これ…

Godot Engineでパラメータテストを書く | GUT

Godot EngineのGUTプラグインを使って、パラメータテスト/parameterized testを書く方法を整理します。 はじめに Godot Engineでパラメータテストを書く おわりに 参考 はじめに 以前、Godot Engineでテストを書く方法をまとめました: www.bioerrorlog.work…

攻撃者目線で学ぶPrompt Injection | Gandalf

Prompt Injectionを攻撃者目線で遊べるサイトGandalfの紹介です。 はじめに 攻撃者目線で学ぶPrompt Injection Gandalf ちょっとやってみる例 解法を学ぶ おわりに 参考 はじめに LLMを利用したサービスを開発するときは、Prompt Injectionにどう対策するか…

Go製ゲームエンジンEbitengine入門: Boids Flockingを実装する

Boids Flockingの実装を通して、Go製のゲームエンジンEbitengineに入門します。 はじめに Ebitengineとは 今回作ったもの: Boids Flocking Boids Flockingを実装する 最小構成: Hello, World! ディレクトリ構成 ゲームロジックの実装 Boids Flockingロジック…

venvでVSCodeのF12(Go to Definition)が機能しない問題の対処法 | Python

Pythonのvenv利用時に、VSCodeのF12(Go to Definition)が機能しない問題への対処法を整理します。 はじめに venvでVSCodeのF12(Go to Definition)が機能しない問題の対処法 原因 対処法 おわりに はじめに VSCodeのF12(Go to Definition)、便利ですよね。 し…

M2 MacでStable Diffusionを動かす | Stable Diffusion web UI

M2 MacにStable Diffusion web UIをインストールし、動かしてみます。 はじめに M2 MacでStable Diffusion web UIを動かす 1. 必要ライブラリのインストール 2. Stable Diffusion web UIのソースコードをcloneする 3. Stable Diffusionモデルを配置する 4. S…

OpenAI Python Libraryでtimeoutを設定する

OpenAI Python LibraryでOpenAI APIを呼び出すときに、timeoutを設定する方法のメモです。 はじめに OpenAI Python Libraryでtimeoutを設定する やり方:request_timeout パラメータ 落とし穴:timeout パラメータ おわりに 参考 はじめに OpenAI Python Lib…

Private SubnetにCloud9を構築する | AWS

AWS Cloud9をPrivate Subnetで作成する方法を整理します。 はじめに 前提: Private SubnetでのCloud9の仕組み Private SubnetでCloud9を構築する Internet Gateway / NATありの場合 Internet Gateway / NATなしの閉域Private Subnetの場合 おわりに 参考 は…

TerraformでAWSリージョンを取得する

TerraformでAWSリージョンを取得する方法の備忘録です。 はじめに TerraformでAWSリージョンを取得する やり方 おまけ: Terraformソースコードを読む おわりに 参考 はじめに TerraformでAWSリソースを書いていると、ARNの指定などでアカウントidやリージョ…

Devlog #3 Unit testの導入と辞書機能の模索

ChatGPT x 架空言語なゲームの開発記録その3です。 前回はこちら: www.bioerrorlog.work はじめに Devlog Unit testの導入 辞書機能の模索 おわりに はじめに 前回は、ゲームにChatGPTを組み込んでテキストを生成させました。 今回は少し地味ですが、Unit …

Code interpreterの仕組みを理解する | ChatGPT

ChatGPTのCode interpreterの仕組みを、自分の理解で整理します。 はじめに Code interpreterの仕組みを理解する Code interpreterの仕組み ケーススタディ:Code interpreter実行時の流れ 1. ユーザーからのファイルアップロードと指示 2. ChatGPTによる計…

Godot Engineでテストコードを書く | GUT

GUTというテストフレームワークを用いて、Godot Engineでテストコードを書く方法をまとめます。 はじめに Godot Engineでテストコードを書く インストール GUTを有効化する テストコードを書く テストを実行する 追記: パラメータテスト おわりに 参考 はじ…

個人開発ゲーム用のフォントを自作する

FontStructを使って個人開発ゲーム用のフォントを自作する過程をまとめます。 はじめに 個人開発ゲーム用のフォントを自作する FontStructを使う 著作権は問題ないのか フォントを作成する おわりに 参考 はじめに 最近ゲームを作っている中で、フォントを自…

Devlog #2 ゲームにChatGPTを組み込む

実際にゲームにChatGPTを組み込みます。 前回はこちら: www.bioerrorlog.work はじめに Devlog 設定画面の実装 API Keyの入力と保存 ChatGPTにセリフを出力させる 補足: カメラフォーカスの修正 おわりに はじめに 前回は、過去作をベースにテキストベースの…

Devlog #1 ChatGPTを使ったゲームを作る

ゲーム開発の記録を残します。 はじめに Devlog まずは過去作をベースにする テキストベースのゲームシステムを導入する 架空言語 x ChatGPTという組み合わせ おわりに はじめに 久しぶりにゲームでも作ってみようか、という機運が高まっています。 ChatGPT…

ChatGPTをGodot Engineから呼び出す

ChatGPT / OpenAI APIをGodot Engineのゲームから呼び出す実装の備忘録です。 はじめに ChatGPTをGodot Engineから呼び出す 概要 API Keyの保存とロード OpenAI APIを呼び出す 返答を画面に反映させる おわりに 参考 はじめに ゲーム分野は、昨今のLLM/生成A…

OpenAIの障害情報を確認する

ChatGPTをはじめとするOpenAIサービスの障害情報を、OpenAI公式から確認する方法のちょっとした備忘録です。 はじめに OpenAIの障害情報を確認する おわりに 参考 はじめに ChatGPTを使っていると、ちょっとサービスの調子が悪いように感じられることがあり…

Terraform backend(S3/DynamoDB)をCloudFormationでデプロイする

Terraformのstateを格納するbackend(S3/DynamoDB)を構築する、CloudFormationテンプレートの備忘録です。 はじめに Terraform backendを構築するCloudFormationテンプレート おわりに 参考 はじめに Terraformのstateを格納するbackend自身をどのように構築…

`user://`はどこを指しているのか | Godot Engine

Godot Engineにおいて、user://で指定されるディレクトリがどこなのかの備忘録です。 はじめに user:// はどこを指しているのか おわりに 参考 はじめに ConfigFileを使ってデータをsaveする際、user://で指定するディレクトリにファイルを保存することがあ…

azd up / provision / deploy の違い | Azure Developer CLI

Azure Developer CLIにおけるリソースデプロイ系コマンド、 azd up azd provision azd deploy これらの違いを整理します。 はじめに azd up / provision / deploy 違い 動作確認 azd provision azd deploy azd up おわりに 参考 はじめに 最近、Azure Develo…

AzureにおけるSKUとは何か

AzureにおけるSKUの意味を整理します。 はじめに AzureにおけるSKUとは何か SKUは何の略か AzureのSKUとは何なのか おわりに 参考 はじめに これまでずっとAWSばかり使ってきましたが、最近Azureに入門しています。 エラーメッセージやリソース作成時に、"SK…

Azureのregion / location一覧を確認する

Azureのregion / locationの一覧を確認する方法の備忘録です。 はじめに region / location一覧を確認する Azure CLIで確認する ドキュメントで確認する おわりに 参考 はじめに 長いことAWSを触ってきたのですが、最近Azureも使い始めました。 Azureでregio…

LangChain 入門

LLMによる開発パターンを容易に実装できると噂のLangChainに入門します。 はじめに LangChainに入門する 事前準備 Chat Model Prompt Templates Chains Agents Memory おわりに 参考 はじめに LangChainは、LLMを活用した開発を容易に実現するフレームワーク…

flake8で特定ルールのみ指定してチェックする | Python

--selectオプションで指定できます。 はじめに flake8で特定ルールのみ指定する やり方 実行例 おわりに 参考 はじめに flake8を使っていて、特定ルール/エラーコードのみ指定してチェックを実行したくなりました。 --helpマニュアルをぱっと眺めて見逃して…

インメモリDBが速い理由はdisk読み書き不要だからではないらしい

ディスク読み書きが不要であることが直接の理由ではないらしい、と目にしたので備忘録をまとめます。 はじめに インメモリDBが速い理由 おわりに 参考 はじめに イノシシ本こと"データ指向アプリケーションデザイン"を読んでいて、インメモリDBが速い理由は…

ChatGPTをロボットの頭脳にする その1: カメラ/サーボモーターとChatGPTを組み合わせる

Raspberry Pi上で、カメラ/サーボモーターとChatGPTを組み合わせて簡単な実験を行います。 はじめに ChatGPTとRaspberry Pi/カメラ/サーボモーターを組み合わせる プロトタイプコンセプト 構成 ハードウェア ソフトウェア 動作結果 課題 物体認識 Token消費…