BioErrorLog Tech Blog

試行錯誤の記録

Python

MCPサーバーをGoで実装する

Go言語でMCPサーバーを実装する方法の備忘録です。 はじめに 前提: Go言語の公式MCP SDKはあるのか? MCPサーバーをGoで実装する 実装するMCPサーバー GoでのMCPサーバー実装 Toolの実装 Resourceの実装 Promptの実装 MCP InspectorでMCPサーバーをテスト実…

MCP CLIでMCPサーバー開発を効率化する

MCP CLIの使い方をまとめます。 はじめに MCP CLIの使い方 MCP CLIをインストールする MCP CLIの機能一覧 mcp runの使い方 mcp devの使い方 mcp installの使い方 おわりに 参考 はじめに MCP CLIはMCPサーバー開発を効率化するツールで、MCP SDKに内包されて…

MCPサーバーのテストツール"MCP Inspector"の使い方

MCPサーバーのブラウザベースのテストツール"MCP Inspector"の使い方の備忘録です。 はじめに MCP Inspectorの使い方 前準備: ミニマムなMCPサーバーを用意する MCP Inspectorを起動する MCP Inspectorを使う おわりに 参考 はじめに MCP Inspectorは、MCPが…

AIエージェントパターン&プラクティスまとめ

AIエージェントパターンとプラクティスを、Anthropicの記事"Building effective agents"とそのフォローアップ動画から学びます。 はじめに 前提: AIエージェントの定義 AIエージェントパターン Augmented LLM Workflow: Prompt chaining Workflow: Routing W…

GPTとMCPサーバーを接続して使う | Model Context Protocol入門

MCP (Model Context Protocol)をOpenAI API / GPTと組み合わせて動かして、MCPの仕組みを学んでいきます。 はじめに おさらい: MCPとは何か GPTとMCPサーバーを接続して使う MCPサーバーの実装 MCPクライアントの実装 MCPクライアント - サーバーの実行 おわ…

uvの使い方: Pythonパッケージ&プロジェクトマネージャー

Rust製Pythonパッケージ&プロジェクトマネージャー "uv" の基本的な使い方の備忘録です。 はじめに uvの使い方 uvをインストールする uvの使い方を一覧で見る Pythonプロジェクトの作成 Python仮想環境の構築 Pythonパッケージの追加 インストールしたパッケ…

LLMがBlenderで行う3Dモデリング: MeshGen/LLaMA-Mesh を試す

LLMが3Dモデル情報を出力するLLaMA-Mesh、そのBlenderアドオンであるMeshGenで遊びます。 番外編では、ChatGPTを使って同じく3Dモデリングさせてみます。 はじめに LLaMA-Meshをざっくり理解する MeshGenで3Dモデリング MeshGenをBlenderにインストールする …

Blender Pythonで既存オブジェクトを全て削除する

Blender Pythonでシーン内の全オブジェクトを削除する方法の備忘録です。 はじめに Blender Pythonで既存オブジェクトを全て削除する おわりに 参考 はじめに Blender Pythonで試行錯誤していると、シーン内のオブジェクトを全削除したくなるときがあります…

bpyをpip installする: Blender Python

bpyバージョンとPythonバージョンの対応に気を付けましょう。 はじめに bpyをpip installする 1. Pythonバージョンを確認する 2. bpyをpip installする おわりに 参考 はじめに Blender Pythonモジュールのbpyをローカル環境にpip installしようとしたところ…

Blender Pythonでprintが表示されない問題の対処法

Blender Pythonで、print関数の出力結果が表示されない問題の対処法を整理します。 はじめに Blender Python: print結果が表示されない問題の対処法 System Consoleを開く (Windowsのみ) Blenderをコマンドラインから起動する print関数以外を使う おわりに …

PyTorch関数名の末尾アンダーバー`_`の意味

in-place処理であることを意味します。 はじめに PyTorch関数名の末尾アンダーバー_ 意味 具体例 おわりに 参考 はじめに PyTorchを触っていると、しばしばアンダーバー_を接尾語とする関数を見かけます。 kaiming_normal_ add_ etc... 初見で意味を知らなか…

ゼロから作るGPT講義シリーズのすすめ | Andrej Karpathy

Andrej KarpathyのNeural Networks: Zero to Hero動画シリーズがとても良かったので紹介します。 はじめに 前提 Neural Networks: Zero to Hero 1. ニューラルネットワークと誤差逆伝播法への入門: microgradの構築 2. 言語モデリングへの入門: makemoreの構…

torch.tensorとtorch.Tensorの違い | PyTorch

torch.tensor()とtorch.Tensor()の違いについての備忘録です。 はじめに torch.tensorとtorch.Tensorの違い 一言で 詳しく 補足: 空のtensorを作るには おわりに 参考 はじめに PyTorchでtensorを作るときはtorch.tensor()メソッドが使われることが多いです…

GPT-4 VisionとRaspberry Piを組み合わせる | GPTをロボット頭脳にする その2

Raspberry Pi上で、カメラ/サーボモーターとGPT-4 Visionを組み合わせて簡単なロボット実験を行います。 前回はこちら: www.bioerrorlog.work はじめに GPT-4 VisionとRaspberry Piを組み合わせる コンセプト 構成 ハードウェア ソフトウェア 動作結果 おわ…

LangCheckでLLMの回答を自動評価する

Citadel AIのLLM回答評価ツール"LangCheck"を使ってみます。 はじめに LangCheckとは 基本的な使い方 評価メトリクスには何があるか 補足: 評価メトリクス判定に使われるモデル LangCheckで回答自動評価をやってみる 補足: semantic_similarity()でEmbedding…

OpenAI APIエラー: The model `gpt-4-vision-preview` does not exist or you do not have access to it.

OpenAI APIでGPT-4Vを使うにあたって、下記のエラーが出た時の対処法の備忘録です。 openai.NotFoundError: Error code: 404 - {'error': {'message': 'The model `gpt-4-vision-preview` does not exist or you do not have access to it. Learn more: http…

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を呼び出すと、デフォルトでは全ての回答生成が終わってからレスポンスが返ってきます。 これ…

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)、便利ですよね。 し…

OpenAI Python Libraryでtimeoutを設定する

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

Code interpreter/Advanced Data Analysisの仕組みを理解する | ChatGPT

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

LangChain 入門

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

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

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

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

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

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を組み合わせて何か面白いこと…

SageMakerでlocal training jobが実行できない時の対処法 | Unable to locate credentials

Unable to locate credentials のエラーで、SageMaker instanceのlocal training jobが実行できないときの対処法をまとめます。 はじめに SageMakerでlocal training jobが実行できない時の対処法 事象 原因 対処法 おわりに 参考 はじめに SageMakerでは、S…

boto3とbotoの違い | AWS SDK for Pythonの歴史を調べる

boto3とbotoの違いや、そもそもの"boto"の由来など、AWS SDK for Pythonの歴史を調べてまとめます。 はじめに AWS SDK for Pythonの歴史 boto3とbotoの違い boto2はどこに行ったのか "boto"の由来 おわりに 参考 はじめに AWS SDK for Pythonとしてboto3をい…

Raspberry Piで複数のサーボモーターを制御する

PWM/サーボ制御モジュールを使わずに、複数のサーボモーターを制御する方法の備忘録です。 はじめに Raspberry Piで複数のサーボモータを制御する OS環境の準備 回路を組む サーボモータを動かすスクリプトの用意 サーボモータを動かす おわりに 参考 はじめ…