BioErrorLog Tech Blog

試行錯誤の記録

攻撃者目線で学ぶ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/Advanced Data Analysisの仕組みを理解する | ChatGPT

ChatGPTのCode interpreterの仕組みを、自分の理解で整理します。 ※ 追記:「Code interpreter」は、現在「Advanced Data Analysis」に改名されました。 中身の機能に変更はありません。 はじめに Code interpreterの仕組みを理解する Code interpreterの仕組…

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を組み合わせて簡単な実験を行います。 次回はこちら: www.bioerrorlog.work はじめに ChatGPTとRaspberry Pi/カメラ/サーボモーターを組み合わせる プロトタイプコンセプト 構成 ハードウェア ソフトウェ…

HHKBのペアリング切り替えができない時の対処法

落ち着いてキーを"順番に"押します。 はじめに HHKBのBluetoothペアリング切り替えのコツ おわりに はじめに HHKB (Happy Hacking Keyboard)を使い始めてからだいぶ経ちますが、Bluetoothペアリングの切り替えがずっとスムーズに出来てませんでした。 Blueto…

Parquetファイルのダミーデータを生成する | Python

Pythonでparquetファイルのダミーデータを生成する方法の備忘録です。 はじめに Parquetファイルのダミーデータを生成する 補足:S3に配置する おわりに 参考 はじめに ちょっとした検証のために、ダミーデータのparquetファイルを用意する機会がありました…

GPTのtoken数を確認する | Python

GPTにて、テキストのToken数を確認する方法をまとめます。 はじめに GPTのToken数を確認する GUIで確認する | Tokenizer Pythonで確認する | tiktoken 終わりに 参考 はじめに ChatGPTでも使われているGPTシリーズは、その入力テキストを'Token'という単位で…

Raspberry PiでPyTorchがIllegal instructionエラーを起こす事象の対処法

Raspberry Pi 4でPyTorch2.0が下記エラーを出す事象の解決策をメモします。 Illegal instruction はじめに Raspberry PiでPyTorchがIllegal instruction 起きた事象 対処法 おわりに 参考 はじめに 最近、Raspberry PiとChatGPTを組み合わせて何か面白いこと…

ChatGPTの使い方のコツをまとめる

面白いなと思った使い方、大事だなと思ったコツの個人的な備忘録です。 はじめに 前提 ChatGPTのTipsまとめ 基本編 鵜呑みにしない 途中で文章が途切れた時は "続けて" 汎用Tips 文脈を伝える 条件/制約や質問を明示する 相手の立場を指定する 回答の特性を…

ChatGPT Plusの解約方法

ChatGPT Plusの解約方法のメモです。 はじめに ChatGPT Plusの解約方法 おわりに 参考 はじめに GPT-4の登場に合わせて、ChatGPT Plusに課金しました。 サブスクの登録前に、その解約方法を知っておきたい方も多いと思います (自分もその一人です)。 調べて…