「LLM開発、ROS2、ベイズ最適化…次はどれに挑戦する?」~【python】今週の人気記事TOP5(2025/7/6)
【2025/7/6】「LLM開発、ROS2、ベイズ最適化…次はどれに挑戦する?」~今週の人気記事TOP5(2025/7/6)
Claude Codeの指示忘れ問題を解決!HooksでPython環境をpip禁止&uv統一にする
Claude CodeにおけるLLMの指示忘れ問題を、Claude Code Hooksで解決した事例を紹介。Hooksは、Python環境でpipを禁止しuvを強制するスクリプトを実行。これにより、LLMが長い会話で指示を忘れたり、暗黙的にpipを使用したりする問題を解消。Hooksは、pip install
などをuv add
に置き換え、仮想環境での実行を徹底。設定は簡単で、.claude/hooks/
にスクリプトを配置し、settings.json
で定義。これにより、CLAUDE.md
の記述量を削減し、AIの自律性を向上。
ROS2でライトローバーを自律走行させてみた
ROS2とライトローバーを用いた自律走行の実装方法を解説。ROS2環境構築、SLAMによる地図作成、Nav2による自律走行について、具体的な手順と設定を記載。特に、LiDARのセットアップ、パラメータ修正、TFツリーの重要性、コストマップの活用について詳しく解説。地図保存から自律走行までの一連の流れを網羅し、ROS初学者や自律走行に興味がある人にとって有益な情報を提供。
tokenizer.pad_token = tokenizer.eos_tokenって問題ないの?
LLMのFine-Tuningで tokenizer.pad_token = tokenizer.eos_token
が使われるケースがあるが、attention_maskと損失計算でパディングトークンが適切に処理されていれば、大半のケースで問題ない。厳密に分けたい場合は [PAD]
トークンを追加できるが、埋め込み行列の拡張が必要。pad_tokenがないモデルは、事前学習やSFTでパディングが不要な場合に存在する。eos_token
を pad_token
として利用する場合、自分で実装する際は注意が必要。
複数目的関数でのベイズ最適化: シミュレーション回数を抑える実践的アプローチ
NTTデータは、複数目的関数でのベイズ最適化において、シミュレーション回数を抑えるアーキテクチャを提案。各パラメータに個別の目的関数を設定しつつ、共通のシミュレーションを実行することで計算リソースを節約。OptunaのAsk-and-Tell Interfaceを用いて実装し、パラメータの真値に近い最適化結果を得ることに成功。比較実験でも、提案手法が従来の同一目的関数を用いる方法より安定した結果を示した。
Claude Codeの新機能「Hooks」イベントトリガーとコマンド実行の解説
Claude Codeの新機能「Hooks」は、特定のイベント時にシェルコマンドを実行し、Claude Codeの動作を拡張・カスタマイズする機能です。ファイル編集後の自動フォーマットや独自コーディング規約の強制など、開発ワークフローの自動化に貢献します。Matcherで実行条件を絞り込み、PreToolUseでAIの動作を制御することも可能です。ただし、ローカル環境でコマンドが直接実行されるため、セキュリティリスクを理解し、安全なフックを実装する必要があります。
【2025/6/29】「AI開発支援、ジョブ管理…効率化の波、乗り遅れてない?」~今週の人気記事TOP5(2025/6/29)
Slurmジョブ管理を楽にする「srunx」
ksterx氏が開発した「srunx」は、Slurmのジョブ依存関係管理をYAMLで直感的に記述し、自動並列実行を可能にするPython CLIツールです。手動でのジョブID管理や依存関係指定の煩雑さを解消し、YAMLファイルによるワークフロー定義で、依存関係の可視化、再利用性、エラー削減を実現します。Slack通知による死活監視機能も搭載。リソース効率を最大化し、ジョブ実行時間を短縮します。
IT初心者でもわかる!モックの基本と活用方法
この記事では、プログラミングにおける「モック」の基本と活用方法を解説します。モックとは、未完成の外部APIやデータベースの代わりに使用する偽の機能のことです。モックを利用することで、開発効率の向上やテストの簡略化に繋がります。APIテスト、データベース依存の回避、他チームの進捗待ちの解消といった場面で活用できます。Pythonのunittest.mock
を使った具体的なコード例も紹介されており、モックAPIクライアントでfetch_user_data
関数をテストする方法を説明しています。
「Claude Code × ClaudePoint」で最強環境!AI開発にチェックポイントを導入する方法
Claude Codeの弱点であるチェックポイント機能を補完するツール、ClaudePoint MCPが紹介されています。自然言語やCLIでチェックポイントの作成・復元・履歴確認が可能となり、実験的なコード変更からのロールバックや、成功時のGitコミットを容易にします。セットアップが容易で、自動バックアップやドキュメント化、セッションの継続性、高速復元などの利点があります。Gitとの併用で、実験段階をClaudePoint、確定した変更をGitで管理する運用が推奨されています。
設計書や仕様書のMarkdownファイルをまとめる方法
設計書や仕様書のMarkdownファイルを単一化するPythonスクリプトが紹介されています。指定ディレクトリ以下のMarkdownファイルを結合し、README.mdを先頭に、ファイル名順でソートして出力。imagesディレクトリもコピーすることで、画像参照も維持されます。生成AIへの入力に役立ちますが、PDF化を推奨。将来的にはMarkdown統合からPDF作成まで自動化されることを期待しています。
Claude CodeにPythonをRustに変えてもらった
AtCoderのヒューリスティックコンテストで、Pythonで作成したBeam Searchと焼きなまし法のコードをClaude CodeでRustに変換した結果を検証。Beam SearchではPythonの半分の時間で動作したが、焼きなまし法では当初Pythonより低速。しかし、乱数生成を最適化することで高速化に成功。Claude Codeは、コード変換精度は高いが、最適化やエラー処理に課題が残る。Pythonのrandom.randint(a,b)
のような間違いやすい箇所も正確に変換する一方、変数名の衝突には気づかない点も。
【2025/6/22】「LLM開発、どこまで自動化できる?あなたの最適解は?」~今週の人気記事TOP5(2025/6/22)
Pythonでゼロから作るコーディングエージェント
FinatextのTakumi氏が、LangChainとAzure OpenAI GPT-4.1を用いて、コーディングエージェント「Takumi」をスクラッチで構築。ProgrammerAgent(コード生成)、ReviewerAgent(コードレビュー)、AgentCoordinator(両者の連携)で構成。各エージェントはTool(ファイル操作、検索、テスト実行、レビューなど)を使用。実装例として、ファイル読み取り/上書き/作成、コードレビューのToolを紹介。APIサーバー化、ドキュメントインデックス化、LLMクライアントの抽象化が今後の課題。
Claude Code中心の開発のためのPythonテンプレートの設計
フルスタックエンジニアの動詞氏が、Claude Code中心の開発を効率化するPythonテンプレートを開発。
Claude Codeが指示なしに意図通り動作するよう、標準的な実装ルールと支援ツール(mypy, ruff, pre-commit, Makefile)を導入し、厳格な静的解析と自動テストで品質を確保。
デバッグを容易にするため、詳細なログ出力を必須とし、単体・プロパティベース・統合テストの3層構造を採用。
モデルケースをリポジトリ内に配置し、実装パターンを示す。
CLAUDE.mdの自動更新やセットアップ自動化、チートシートの提供など、人間工学的な配慮も。
[Tips] PyTorch Lightning を利用した学習 Tips
PyTorch Lightningを用いた分散学習におけるトラブルシューティングと解決策を紹介。
-
マルチノード学習時のGLOBAL_RANK重複問題: 環境変数の設定不備により発生。
NODE_RANK
を正しく設定することで解決。 -
lightning.pytorch
とpytorch_lightning
の混在: モジュール判定でエラー発生。import文を統一することで解決。NVIDIAのNeMo-Aligner利用時に発生しやすい事例も紹介。
これらのエラーはAIでは解決が難しく、根本原因の理解が重要。環境変数の設定ミスやライブラリのバージョンの不整合に注意し、適切な対処を行うことで分散学習を円滑に進められる。
異なる時系列間でもGBDTの予測結果をロバストに 〜WrapGBMとDirectional Era-Splitting〜
この記事では、時系列データの予測精度向上を目指すWrapGBMとDirectional Era-Splitting(DES)を紹介。DESは、分割後の予測方向の一貫性を重視して分割点を決定する点が特徴。Numeraiの株式予測データを用いた実験では、WrapGBMがLightGBMと比較して相関係数の平均値とシャープ・レシオで優れた結果を示し、予測の安定性が向上。実装コードも掲載。
[Tips] NGC PyTorchのversion lockを解除する方法
NVIDIA NGC PyTorchコンテナ利用時のversion lock問題とその解除法を紹介。NGC PyTorchは便利だが、ライブラリのversionが固定されており、特定のモデルをサポートしない場合がある。version lockは/etc/pip/constraint.txt
を編集することで解除可能。ただし、不要なpackageの上書きを避けるため、必要なものだけ解除を推奨。transformersとnvidia-modeloptの競合問題に対する具体的な解決策も提示。
【2025/6/15】「Python開発、次は「Rust製ツール」と「AI協働」?」~今週の人気記事TOP5(2025/6/15)
uv, ruff, devcontainer, Claude Codeを使ったモダンなPython開発環境のテンプレート
モダンなPython開発環境テンプレートがGitHubで公開されました。
主要技術は以下の通りです。
- uv: Rust製の高速仮想環境・パッケージ管理ツール
- ruff: Rust製の高速Formatter/Linter
- devcontainer: 統一された開発環境を提供
- Claude Code, Cursor: AI開発支援
-
GitHub Actions: CI
Copierでテンプレートからプロジェクトを簡単に作成でき、uv sync
で環境構築。
pyproject.tomlでプロジェクト設定、型ヒントでAI支援の精度向上。
Docker, Docker Composeでポータブルな実行環境を提供します。
AIルール定義による開発支援も特徴です。
Claude Codeでトークン使用量を削減するアプローチ
Claude Codeのトークン使用量削減のため、具体的な指示によるコード生成、必要最小限のファイル共有、repomix活用、部分的な更新でコンテキストを最適化。
設計を事前にClaudeで固め、Claude Codeの限界を理解し、役割分担を明確に。関連タスクをまとめ、エラー対応を効率化。型ヒント、依存関係の定義、テスト同時生成などPython特有の最適化も有効。
知見管理システム構築で説明の繰り返しを避け、大幅なトークン削減を実現。
MCPホスト構築:非同期処理とリソース管理の基礎と実装
この記事では、AIエージェント開発におけるMCPホスト構築を題材に、非同期処理とリソース管理の重要性を解説しています。
AIエージェントが外部サーバと連携する際の課題(通信待ち時間、リソース管理)に対し、async/awaitを用いた非同期プログラミングと、コンテキストマネージャによるリソース管理が有効な解決策であると示しています。
具体的には、asyncioライブラリ、AsyncExitStackを用いた実装例を提示し、LLMとの連携フローにおける各要素の役割を解説しています。サンプルコードを通じて、MCPを使ったAIエージェント開発における主要な概念と実装方法を学ぶことができます。
Claude Codeで挫折しないための開発方法論 - 要件定義が品質の80%を決める
Claude CodeによるAI支援開発では、要件定義の品質が成否の80%を握る。Claude Sonnet 4との対話でビジネス仮説・KPI設計を自動化し、要件定義の質を向上させる。TDDを徹底し、AIが生成するテストの品質はレビューで補完。開発ルールのドキュメント化でAIを制御し、自動品質チェックを導入する。重要なのは、上流工程でのAI活用と人間とAIの適切な役割分担である。
textual紹介
Python製TUIフレームワークTextualの紹介記事です。Textualはターミナル上で高度なUIを容易に作成でき、非同期処理、直感的なAPI、CSSライクなスタイルカスタマイズが可能です。クロスプラットフォーム対応で、pipで簡単にインストールできます。一方、GUIには不向きで学習コストがあり、コンポーネントが限られるなどのデメリットも存在します。著者はTextualの癖の強さを指摘しつつも、当面利用していく意向を示しています。
【2025/6/9】集計 新着週間Like数 ランキング Top5
Anthropicで利用されているモダンなPython開発のベストプラクティス
AnthropicのPython開発ガイドライン「CLAUDE.md」から、モダンなベストプラクティスを紹介。パッケージ管理ではuv
のみを使用しpip
を禁止、再現性を重視。コード品質では型ヒント必須、関数は小さく、行長88文字。テストはpytest
で非同期はanyio
を使用、エッジケースもテスト。開発ツールはruff
でコード整形、pyright
で型チェック、pre-commit
でコミット前チェックを自動化。これらの徹底により、安定性と保守性の高いPython環境を構築し、効率的な開発を可能にする。
シンプルな MCP サーバを作って動作を理解する
Anthropic社提唱のMCP(Model Context Protocol)は、LLMとデータソース/ツールを繋ぐ標準化プロトコル。
本記事では、Pythonで実装したシンプルなMCPサーバを例に、その動作を解説。
JSON-RPCをベースに、mcpモジュールでツールリスト(機能の定義)とツール実行(機能の実装)を定義。
クライアントからのリクエストを標準入出力で受け付け、テキスト変換などの簡単な機能を提供する。
Claude Desktopとの連携も可能であり、既存機能をMCP化することで、AIの能力を拡張できると述べている。
Snowflake Summit 2025 : ハンズオンでSQLとPythonによるデータオーケストレーションを学ぶ
Snowflake Summit 2025のハンズオン「DE107」参加報告。SQL中心のSnowflake利用者が、Python連携(UDF, Snowpark)によるデータオーケストレーションを学習。
S3データロード、Python UDF作成、Snowpark DataFrame操作、外部API連携(OpenWeatherMap)を体験。
特にExternal Access Integrationに衝撃。
Stored Procedure作成、タスクによるスケジューリング、Pythonコード監視も習得。
SQLとPythonの融合、Snowflakeのデータ処理・分析基盤としての可能性を感じた。
Task機能の本番環境での性能・安定性に課題も残るが、今後の進化に期待。
What's New: Scaling Data Pipelines with SQL, dbt Projects, and Python
Snowflake Summit 2025で発表されたデータ変換パイプライン関連の新機能が紹介されました。
- dbt Projects on Snowflake: Snowflake上でdbtの開発、テスト、デプロイ、スケジュール、監視が可能になり、開発効率とコラボレーションが向上します。Snowflake Trailとの統合でトレーシングも強化。
- Dynamic Tableの機能拡張: Apache Icebergのサポート、ニアリアルタイムパイプライン(最短15秒間隔)の構築、増分更新のための日時フィルタリングをサポート。
- pandas on Snowflake: pandas APIでSnowflakeデータを扱えるようになり、大規模データセットの分析が容易になります。hybrid executionによりlocal実行とSnowflakeエンジン実行を自動で切り替えます。
[アルゴリズム解説] シフト・スケジューリング問題(バイトのシフト作成、面倒から卒業する方法)
シフト・スケジューリング問題を数理モデルと最適化アルゴリズムで解決する方法を紹介。
現実のシフト作成における課題を制約条件として整理し、線形計画法や整数計画法を用いて自動化するアプローチを解説。
PythonとGoogle OR-Toolsを用いた実装例では、従業員ごとの制約条件を記述し、最適なシフトを算出。
責任者の配置、NGな組み合わせ回避、勤務時間制約など、複雑な条件を考慮したシフト作成の自動化に有効。
【2025/6/1】集計 新着週間Like数 ランキング Top5
[Tips] PyTorchにおける動的リンク
PyTorchのインストール方法(pip install vs. source build)によるCUDA Toolkitの動的リンク挙動の違いを解説。pip installではPyTorchに必要なCUDA Toolkit等のライブラリがパッケージに同梱され、バージョンは固定される。一方、source buildでは実行時にmodule load
でCUDA Toolkitのバージョンを動的に指定できる。source buildは実行時にライブラリ参照先を指定する必要があり、module load
をしないとエラーとなる。pip installではmodule load
は不要だが、torch.compile
などカスタムカーネル構築時は必要となる場合がある。
Kaggle Drawing with LLMs 振り返り & 上位解法まとめ
Kaggleの「Drawing with LLMs」コンペは、テキストからSVGを生成する課題で、評価指標の繰り返し変更とハッキング合戦が特徴だった。上位解法は、LLM(SegmindのSSD-1Bなど)で画像生成し、軽量な変換手法でSVGに変換。 評価指標であるPaliGemma VQAと審美性スコアを最適化するため、OCRを回避しつつVQAスコアを上げるためのテキストやアーティファクトを画像に埋め込む手法が主流だった。 上位チームは、diffvgによる最適化や遺伝的アルゴリズム、山登り法なども活用していた。 最終的な評価指標はPaliGemma TIFA VQA & OCRと審美性スコアを複合的に評価するもので、OCRのハルシネーション対策も課題となった。
Gemini API TTS(Text-to-Speech)で漫才音声を生成してみた
Google Gemini 2.5 APIのネイティブTTS機能を用いて漫才音声を生成する実験が行われた。Gemini 2.5の自然で感情豊かな音声、複数スピーカー対応を活かし、PythonとGemini APIを用いて台本生成と音声合成を自動化。生成された漫才音声は自然な会話で、技術的には成功したが、漫才としての面白さには課題が残る。 Gemini APIのTTS機能はエンタメだけでなく、教育やカスタマーサポートなど幅広い用途への応用が期待される。
Amazon Q CLIでゲームが簡単に作れた
Amazon Q CLIとPygameを用いて、2時間半でビリヤード風ゲームを開発しました。AWSアカウント不要で、自然言語による指示からコード生成、README/LICENSE作成まで自動化されます。GitHubリポジトリ(https://github.com/iwamot/amazon-q-billiard-triangle)に公開済みです。Amazon Q CLIの容易性とイベントによるTシャツ獲得機会を示唆しています。
Youtubeの動画をpythonでMP4形式にする方法
本記事は、Pythonとyt-dlpライブラリを用いたYouTube動画のMP4ダウンロード方法を紹介する。yt_dlp.YoutubeDL
を用いて、URLと出力パスを指定することで、動画をMP4形式でダウンロード・保存できる。pip install -U yt-dlp
でライブラリをインストール後、提供されたPythonスクリプトを実行する。応用として、ファイル名自動変更、プレイリストダウンロード、MP3保存などが可能。 記事は、初心者にも分かりやすいコード例と実行手順を提供している。
【2025/5/25】集計 新着週間Like数 ランキング Top5
uv + ruff + tyを使ったモダンな環境でdiscord bot作ってみよう
この記事は、Astral社のuv、ruff、tyを用いたモダンなDiscord Bot開発を解説する。uv(高速パッケージマネージャー)でdiscord.py等を導入し、ruff(高速Linter/Formatter)、ty(高速型チェッカー)でコード品質を担保する。$hello
コマンドでメンション、リアクション、埋め込みメッセージ送信、ピン留めを行うBotを作成し、更に/hello
(ボタン付きView)、/zipcode
(郵便番号検索モーダル)コマンドを実装。Cogによるコード分割とreload_extensionによるホットリロードも紹介。型チェックの重要性と、大規模開発におけるこれらのツールの有用性が強調されている。
MCPをちょっとだけ理解できるかもしれない記事
本記事は、LLMとツールを接続する標準プロトコルMCP(Model Context Protocol)の概要と、Pythonを用いたMCPサーバー構築、デバッグ、Azure OpenAI GPT-4.1との連携例を紹介。Google NewsをデータソースとしたMCPサーバーをFastMCPで構築し、Inspectorでデバッグ、Agent SDKでGPT-4.1と接続、ニュース検索を実現した。Function Callingより簡潔なLLMとツール間の連携が実現できる点がメリットとして挙げられている。 様々なアプリケーションがMCPサーバーを提供することで、LLMとツールの接続が容易になると結論付けている。
Swift Translation APIとGoogle翻訳の精度を比較してみた
AppleのSwift Translation APIとGoogle翻訳の精度を、BLEU、BERTscore、COMET、GPT-4.1による定性評価で比較した結果、精度はほぼ同等だった。Swift APIは無料で高速なため、UX重視ならSwift APIが有利。定量評価指標だけでは精度の正確な比較は困難であり、生成AIを用いた定性評価が有効であることが示された。 iOS18以降で利用可能。
TechCrunch記事を要約・翻訳してDiscord経由で自動投稿するBotを構築する
本記事は、TechCrunch記事をDiscordに自動投稿するBotの構築について記述している。AWS(EventBridge, Lambda, AppRunner, DynamoDB)、FastAPI、feedparser、ChatGPT、BeautifulSoupなどを用いて、RSSから記事を取得し、DynamoDBで重複チェック、ChatGPTで日本語翻訳と要約を行い、Discordに投稿する。さらに、ユーザーからの記事に関する質問にもChatGPTで回答する機能を実装。意図分類により、記事取得、記事関連質問、一般質問への対応を自動化している。 結果、最新テックニュースの日本語要約をチームに即時共有し、効率的な情報収集を実現した。
SHAPによるモデル解釈 ── ゲーム理論ベースで“なぜその予測になったか”を説明する
本記事は、機械学習モデルの説明手法であるSHAP(Shapley Additive exPlanations)を解説する。SHAPはゲーム理論に基づき、特徴量の寄与を公平かつ一貫して数値化する。既存手法と比べ、グローバル・ローカル両方の説明を同一枠組みで実現し、数学的に公平性と一貫性が保証される点が優れている。LightGBMを用いた実装例と、Summary、Bar、Force、Dependence、Decision plot等の豊富な可視化手法が紹介されている。計算コストや特徴量間の相関といった限界にも触れつつ、実務への適用可能性を示唆している。
【2025/5/18】集計 新着週間Like数 ランキング Top5
爆速 Python 型チェッカーの ty を触ってみる
Rust製の高速Python型チェッカーty
は、mypy
に比べ圧倒的に高速(1000回実行で100秒→14秒)で、エラー箇所を明確に表示する。uv
またはpip
でインストール可能で、VSCode拡張機能も提供。# ty: ignore
でエラー抑制、@no_type_check
で関数単位の抑制もできる。プレリリース版のためバグの可能性あり。
データの上にMCP Serverを構築してその上にLLMを乗っける
Accenture社員有志が、Claude for Desktop(MCPクライアント)とFirebase Firestoreを用いたチケット管理システムのプロトタイプをPythonで開発。 チャットベースのインタフェースでチケット管理を実現し、LLMとMCPを用いた新しい業務システムの可能性を示唆。 GitHubでソースコードを公開しており、セキュリティや業務プロセスの検討が必要と結論付けている。 迅速なプロトタイピングを重視した構成で、RDBMSやJavaScriptへの置き換えも容易としている。
BigQuery Python UDF 完全に理解した
BigQueryのPython UDFプレビュー版を用いた開発体験記。Pandas, NumPy等を活用したUDF作成と、外部ライブラリ(scipy等)の利用方法を紹介。 scipy
を用いた対応のあるt検定の例では、Nレコードから1結果を得るため、SQL側でdistinct
を用いた工夫が必要。速度面では初回実行にコンテナビルド時間がかかり、実行速度にもばらつきがあるものの、キャッシュは効かない。全体として、利便性が高い反面、速度と安定性には課題が残る機能であると結論づけている。
kaggleコミュニティコンペ開催報告と上位解法
Kaggle Master Ryushiとyuki氏主催の画像認識コンペでは、与えられた写真の撮影国を5ヶ国から分類する課題が提示された。上位解法は、1,2,4位が生成AI(SigLIP、StreetCLIP、Qwen/Qwen2.5-VL-72B-Instruct-AWQ)を活用し、3,5位が従来型の画像認識モデル(ConvNeXt)を用いた。生成AIを用いた手法では、画像と月情報をプロンプトとして質問形式で解かせるアプローチや、ImageEncoderのみを使用する効率的なファインチューニングなどが用いられた。上位解法は高い精度(Private LBスコア0.97以上)を達成し、生成AIの画像認識分野における有用性を示した。
mise + uv + dbt-coreで、ゼロから爆速でdbtの環境構築
mise, uv, dbt-coreを用いた高速なdbt環境構築手順を紹介。miseでPythonバージョンを管理、uvでプロジェクトごとのPythonパッケージを管理することで、コマンド数が削減され、OS環境を汚染せず、venv管理の手間を軽減できる。uvはpip代替としてdbt-coreをインストール、dbtプロジェクトを初期化し、動作確認を行う。 最終的に、数コマンドでdbt開発環境が構築できることを示した。
【2025/5/11】集計 新着週間Like数 ランキング Top5
読みやすいコードを書く
読みやすいコードとは、脳への負荷が少ないコードであり、情報理論に基づき、頻出情報は圧縮され、失われた情報は復元不可能な点を考慮する必要がある。 本記事では、可読性向上のため、(1)処理単位をディスプレイ表示範囲に収める、(2)データ・処理に適切な名前を付け関数化する、(3)一貫した命名規則を用いる、(4)意図をコメントで残す、の4点を提案。これにより、トップダウン・ボトムアップ両アプローチでの理解・想起を容易にする。Pythonを例に解説しているが、他の言語にも応用可能。
作りながら学ぶLLM入門:前処理
本記事は、『作りながら学ぶLLM入門』第2章を基に、LLMの前処理工程をPythonコード付きで解説する。トークン化、サブワード分割(BPEなど)、特殊トークン付与、PyTorchを用いたデータローダー作成、埋め込み、位置埋め込みを詳細に説明。日本語処理における形態素解析とサブワード分割の比較、tiktokenライブラリの活用例も示し、LLM学習データの準備パイプライン構築を可能にする。 特に、サブワード分割による未知語問題の軽減と、スライドウィンドウによるデータサンプリング手法が重要であると結論づけている。
Pythonで始めるGraphQL【Strawberry】
この記事は、PythonのGraphQLライブラリStrawberryを用いたGraphQL API構築を解説する。Strawberryを用いることで、特定フィールドのみの取得やネストしたフィールドの取得をエンドポイントを増やすことなく実現できる。 Query
、Mutation
型でCRUD操作を実装可能で、resolver
関数でデータ取得処理を記述する。 複雑なデータ関係(循環参照)も、型指定を工夫することで解決できることを示し、具体的な実装例とクエリ、レスポンスを提示している。
uvを使ったdbt Coreの導入手順
macOS(Apple Silicon)環境で、uv
を用いたdbt Coreの導入手順を紹介する記事。Homebrewでuv
をインストール後、uv
コマンドでPython 3.13系を指定、dbt CoreとBigQueryプラグインを導入する。uv
は仮想環境(.venv)と依存関係を管理し、uv run dbt -V
でバージョン確認が可能。Pythonバージョン不一致等のトラブルシューティングも記載。uv
による効率的なdbt環境構築を実現する。
OCRに関する技術調査その2(PaddleOCRベースの精度改善検討)
PaddleOCRを用いたOCR精度改善調査の結果、前処理(リサイズ、コントラスト補正)と、高精度検出モデルch_PP-OCRv4_det_server_infer
への変更により、検出精度が大幅に向上した。さらに、det_db_thresh
, det_db_box_thresh
, det_db_unclip_ratio
パラメータ調整により、ほぼ全ての文字を検出できるようになった。ただし、「¥」「〒」等の記号やテーブルヘッダーの誤認識は残るため、ルールベースでの修正が必要と結論付けられた。認識モデルのファインチューニングについても記述されているが、データ不足によりモデル崩壊が発生した。
【2025/5/4】集計 新着週間Like数 ランキング Top5
【保存版】 2 万文字で語る Python の with 文で始めるリソース管理 ── C++/Go/TypeScript の技法を横断
Pythonのwith
文を起点に、複数言語のリソース管理手法を比較した記事。with
文はtry...finally
の糖衣構文で、リソースの取得と解放を自動化し、例外発生時にも確実に解放を保証する。Goのdefer
、TypeScriptのusing
なども同様の機能を持つ。C++/RustのRAIIはコンパイラがリソース解放を保証するが、GC言語ではwith
文などの明示的なスコープが必要。Pythonでは__enter__
/__exit__
メソッド、contextlib.contextmanager
で独自with
文を実装可能。contextlib.ExitStack
は複数リソースの逆順解放をサポート。非同期処理にはasync with
とcontextlib.asynccontextmanager
が利用できる。ただし、SIGKILLなどOSレベルの強制終了ではfinally
句も実行されない点に注意が必要。
GPT-image-1 × Streamlit で作る画像生成AIアプリ - Entra ID認証連携からAzureデプロイまで完全解説
本記事は、GPT-image-1を用いた画像生成AIアプリをStreamlitとAzureで開発・デプロイする手順を解説する。テキストプロンプトからの画像生成(txt2img)と画像編集(img2img)に対応し、Microsoft Entra ID認証、Azure Key Vaultによるシークレット管理、Dockerコンテナ化、Azure App Service/Container Appsへのデプロイを網羅する。 img2imgはAzure OpenAI Service利用時はREST API直接呼び出しが推奨される。 ソースコードはGitHubで公開。
PDFからテキスト抽出~AIを使って論文を要約してみる~
本記事は、PythonとAzure OpenAIを用いてPDF論文を効率的に要約するスクリプトを紹介している。pymupdf4llm
ライブラリでPDFからテキストを抽出し、Azure OpenAI APIで要約を行う。コマンドライン引数で入出力フォルダを指定可能で、複数論文の一括処理にも対応。標準ライブラリに加え、dotenv
, pymupdf4llm
, openai
ライブラリを使用。得られた要約はmarkdown形式で出力され、論文の概要、手法、結果、結論、今後の展望を構造的に提示する。 AIによる要約の精度には限界があるものの、論文の全体把握に役立つと結論付けている。
Snowflake Cortex Search Boosts & Decays で RAG チャットアプリを強化する
Snowflake Cortex SearchにBoosts/Decays機能が追加され、RAGチャットアプリの検索精度が向上した。数値メタデータ(いいね数など)や経過時間に基づき検索スコアを調整できるため、人気のある最新情報を優先表示できる。Streamlit in Snowflakeを用いたRAGチャットボットアプリが開発され、ファイルアップロード、チャンク化、Cortex Searchによる検索、回答生成、いいね機能などを実装。 これにより、FAQボットの精度向上や社内ナレッジの鮮度維持、マーケティング用途への活用が可能となった。
ネイティブスマホアプリにAIを活用する
本記事は、ネイティブスマホアプリにAIチャットボットを導入する事例を紹介。Pythonで構築したカテゴリ分類AIモデルをFlaskでAPI化し、Swiftアプリと連携させた。 モデルはTransformers等のライブラリを用いて構築、FAQデータでファインチューニングを実施。 アプリ側はAPIに質問を送信し、回答を受信する。LLMの活用も可能だが、ローカル環境では処理負荷が高いと結論付けている。
【2025/4/27】集計 新着週間Like数 ランキング Top5
Python開発者必見!FastMCPでLLMアプリケーション開発を10倍速く
FastMCPは、LLMアプリケーション開発を高速化するPythonライブラリです。Model Context Protocol(MCP)の複雑なサーバー実装を簡素化し、デコレータを用いたシンプルなインターフェースを提供します。v2では、プロキシ、コンポジション、OpenAPIからの自動生成など高度な機能が追加され、開発効率の大幅な向上を実現。公式MCP Python SDKにも一部組み込まれています。少ないコード量で高速に、Pythonicな開発が可能です。
開発チーム・AIチーム間のシステム境界と責任境界について
AIチーム(Python)と開発チーム(Go)の連携における開発効率と運用負担の課題に対し、複数の技術的アプローチを検討。 cgo、Pythonコマンド実行などの方法はパフォーマンスや保守性の問題から却下。最終的にAIチームもGoで開発する方式を採用。これにより、開発速度が向上(プロトタイプ2週間、実装2週間)、チーム間の連携強化、プロダクト愛の向上という成果を得た。 Clean ArchitectureとGo言語の採用が成功要因。
AI系のコーディング基礎的お作法まとめ
本記事は、AI関連Pythonコードの可読性向上のための作法を初学者向けに解説している。 要点として、モジュール化(機能単位の.py
ファイル化、src
ディレクトリへの配置)、main
関数による実行制御、型ヒント(typehint
)とdocstringによるコードの可読性向上、コード整形ツール利用、そしてGitHubを用いたコードレビューの重要性が挙げられている。 これらの実践により、保守性が高く、他者と共有しやすい「美しい」コードが記述可能となる。
Todoアプリを作ろう(中級編)
この記事は、Djangoを用いたTodoアプリ開発チュートリアルです。 Djangoフレームワークの特徴として、データベース管理、ルーティング、テンプレートエンジンなどが最初から提供される利点を強調し、初心者向けにモデル、ビュー、フォーム、テンプレートの作成、マイグレーション、ルーティング設定を詳細に解説しています。Bootstrapを用いた装飾も取り入れ、CRUD(作成、読み込み、更新、削除)機能を実装したTodoアプリの完成を目指します。最終的には、ローカル環境で動作するTodoアプリが構築されます。
n番煎じだけど、WindowsだとクセがあるMCPサーバ実装
筆者は、JR北海道の運行情報を取得するModel Context Protocol (MCP) サーバーをPythonで実装した。 FastMCP
ライブラリとBeautifulSoup
を用い、JR北海道のウェブサイトから運行情報をスクレイピングし、MCPサーバーとして提供する。Windows環境での実装に苦労した点や、claude_desktop_config.json
の設定、inspector
ツールの利用についても触れられている。GitHubにソースコードを公開している。
【2025/4/20】集計 新着週間Like数 ランキング Top5
uv on Docker をやっている
本記事は、uv
(Pythonパッケージ管理ツール) をDocker上で利用するためのDockerfileとdocker-compose
の設定例を示す。ghcr.io/astral-sh/uv
イメージを利用し、uv sync
コマンドで依存関係をインストール。UV_COMPILE_BYTECODE=1
でバイトコードコンパイルによる高速化を実現。docker compose watch
でファイル変更を監視し自動ビルドを行う。Dependabot
によるuv.lock
を使った依存関係管理も解説。マルチステージビルドによる本番環境向け軽量化も提案している。 ソースコードはGitHubリポジトリ(https://github.com/shunsock/uv_on_docker_playground)で公開。
FastAPIで始めるMCPサーバー
FastAPI-MCPライブラリを用いたFastAPIアプリケーションのMCPサーバー化手順を紹介。uvを用いた環境構築後、TinyDBをデータベースとしたシンプルなCRUD APIを実装。fastapi_mcp
ライブラリを用いて既存APIをMCPサーバーとして容易に拡張し、Claude Desktopと連携して動作確認を行った。FastAPIに慣れた開発者にとって、学習コストの低いMCPサーバー構築手法として有効である。
Dify プラグインの仕組みについて調べてみた
Dify v1で導入されたプラグイン機能は、標準機能では不可能だった処理や外部サービス連携を容易にする。Python(Goは今後対応予定)で記述されたプラグインはパッケージ化(.difypkg)されインストールされる。ローカル、デバッグ、サーバレスの3種類のランタイムが提供され、特にサーバレスランタイムはAWS Lambda等を活用し、リソース監視やセキュリティ面での課題を軽減する。OSS依存による保守・セキュリティリスクは存在するものの、開発工数削減や機能拡張の柔軟性からメリットが大きいと結論付けられる。
何もわからんけど作ってみる、なんちゃってAIエージェント
GoとPythonを用い、Next.jsフロントエンド、OpenAI Agents SDK、FastAPI、Model Context Protocol(MCP)サーバーを組み合わせたAIエージェントを開発。 既存プロジェクト管理アプリ「KANNA」の劣化版を構築し、案件作成、一覧、編集、削除をAIで制御する機能を実装。 MCPサーバーはGoで、エージェントはPythonで記述。 FastAPIがフロントエンドからのリクエストを受け付け、Vercel AI SDKを活用したチャットUIを提供。 本開発で、AI SDKの容易性と、プロダクトへの組み込みにおける課題(エラーハンドリング、Guardrailsなど)を確認した。
SaaSにおけるIdP実装の抽象化とDI活用による柔軟な設計
本記事は、SaaSにおけるIdP(Identity Provider)実装の抽象化とDI(Dependency Injection)活用による柔軟な設計について述べている。 従来の条件分岐による実装は保守性・拡張性に劣るため、共通インターフェースIdPHandler
を定義し、環境変数でIdP(Auth0, Keycloakなど)を切り替えるDI機構を構築。これにより、新しいIdP追加時のコード変更を最小限に抑え、テスト容易性、可読性、実行速度の向上を実現した。ただし、オーバーエンジニアリングやチーム内での設計共有の重要性も指摘している。
【2025/4/13】集計 新着週間Like数 ランキング Top5
MCP入門
Model Context Protocol (MCP)は、AIアシスタントが外部データやツールにアクセスするための標準プロトコルです。JSON-RPC 2.0を共通言語に、ホスト、クライアント、サーバの3層アーキテクチャで構成され、LINEのようなマルチチャット構造を実現します。 クライアントはサーバと1対1で通信し、ホストはそれらを管理、AIモデルと連携します。標準トランスポートはStreamable HTTPで、サーバは単機能に特化、容易な拡張性を提供します。Python SDKも提供され、シンプルに実装可能です。
TypeScript以外が嫌いです
筆者はTypeScript原理主義者として、静的型付け、優れた開発環境、豊富なライブラリを理由にTypeScriptを絶賛。Java、Python、Go、Rustなど他の言語の欠点(型安全性の低さ、冗長さ、エラー処理の複雑さなど)を指摘し、TypeScriptの汎用性と利便性を強調している。結論として、TypeScriptへの移行を強く推奨しているが、記事はユーモラスな表現で書かれている点に注意。
ChatGPT と外部サービスを接続する GPTs 開発ガイド
この記事は、ChatGPTのGPTsに外部サービスを接続する新機能「GPT Actions」の開発ガイドです。GPT Actionsは、OpenAPI形式で定義されたWeb APIをGPTsに接続することで、ChatGPTと既存システムの連携を容易にします。Python、TypeScript/Node.jsの具体的な実装例と、認証(Basic認証、APIキー、OAuth)の追加方法が解説されています。Cloudflare Tunnelを使ったローカル開発環境の公開方法も紹介しており、既存システムとの連携によるChatGPT拡張を容易にすることを目的としています。
GoogleアカウントでログインできるStreamlitアプリの開発方法と仕組みをわかりやすく解説
本記事は、Streamlitを用いたGoogleアカウントログイン機能の実装方法を解説する。OpenID Connect(OIDC)プロトコルとst.login()
、st.logout()
、st.experimental_user
関数を使用し、secrets.toml
にクライアントID、シークレット、リダイレクトURIなどを設定する。StreamlitはCORS、XSRF保護を自動化し、セキュリティを強化。シンプルなコードでGoogle認証を実装でき、ユーザー登録/パスワード管理は不要となる。 requirements.txt
で必要なライブラリをインストール後、streamlit run streamlit_app.py
で実行可能。
Pythonのrandom.random()を完全に予測してみた
Pythonのrandom.random()
関数は、Mersenne Twisterアルゴリズムを使用しており、暗号論的には安全ではない。本記事では、Linux環境において、random.random()
の内部状態(/proc/[pid]/mem)を外部プロセスから読み取ることで、次の乱数値を完全に予測することに成功した実験結果を示している。C言語で記述されたmt_predictor
プログラムを用いて、Pythonプロセスのメモリ領域をスキャンし、Mersenne Twisterの状態を復元、次の乱数値を計算している。ただし、random.random()
を既に呼び出している場合や、複雑なプログラム、macOS環境などでは予測が困難となる。セキュリティ目的にはsecrets
モジュールを使用すべきである。
【2025/4/6】集計 新着週間Like数 ランキング Top5
Pythonの環境をuvへ移行する方法
記事は、Python開発環境をMiniForgeからuv
に移行した経験を記述。uv
への移行はcurl -LsSf https://astral.sh/uv/install.sh | sh
で実行可能だが、PATH設定が必要な場合がある。uv sync
で仮想環境構築、uv venv
で新規作成、uv pip install -r requirements.txt
で依存関係をインストールする。uv
は環境構築が高速で、特にrequirements.txt
のみ必要な場合は便利。AIアシストによる環境構築も有効活用されている。結論として、uv
は環境構築の速度とMCPとの親和性が高く、Docker以外のGPU利用以外では推奨される。
【Python × Langchain × Gemini】AI Agent の関数実行を試してみた
LangchainとGeminiを用いたAI Agentによる関数実行を試行。OpenAIのOPENAI_FUNCTIONS AgentはGeminiで使用不可だったため、ZERO_SHOT_REACT_DESCRIPTION Agentを使用。天気情報を取得し、SQLite DBに保存するAgentを作成。get_weather
関数で天気を取得し、save_to_db
関数でDB保存。ZERO_SHOT_REACT_DESCRIPTION
Agentが関数呼び出しを実現し、GeminiでAI Agentの機能を実装可能であることを確認した。
SNS作ったけど、公開できなかった
フルスタックエンジニア(経験5-10年)が、独自開発したSNSを公開しなかった理由を要約します。
Python(バックエンド)、PostgreSQL(DB)、TypeScript(フロントエンド)、AWSインフラを用いた本格的なSNSを開発。 SSR、データベースのリーダー/ライター分離、画像処理分離、フレキシブルデザイン、匿名投稿機能などを実装。 しかし、UIの未完成さ、マネタイズ困難性、Webアプリ市場の成熟度を考慮し、クオリティ不足と判断、公開を見送った。 YAMLによるインフラ再現性の高い構成が特徴。
[Python]Google AI Studio + Code Execution + Gemini 2.5 Proで遊んでみた(PIL)
Google AI StudioとGemini 2.5 Proを用いたPythonコード実行環境で、画像編集を試行。曖昧なプロンプトでもGeminiがPIL(Pillow)とMatplotlibを用いたコードを生成し、画像のグレースケール変換、スクリーントーン化、吹き出し追加、カラーバランス調整などを実現した。ただし、コード生成の安定性や画像保存、表示の不確定性、無料枠の制限といった課題も残る。 Matplotlibと組み合わせることでPillowによる画像表示の成功率向上を確認。画像編集ソフトウェアに頼らないAIによる画像処理の可能性を示唆する一方、現状は手軽な実験環境という位置付けである。
Supabase×Pythonで爆速RAG構築する
SupabaseとPythonを用いた低コストRAG構築手法を紹介。Supabaseの無料プラン(500MB)を利用し、OpenAIのembedding APIとPostgresのベクトル拡張機能を組み合わせることで、LangChain不要でRAGを実装。 SQL関数(rpcメソッド)でコサイン類似度によるベクトル検索を実現。 コードはSupabase固有部分を分離し、他のベクトルDBへの移行容易性を考慮した設計になっている。
【2025/3/30】集計 新着週間Like数 ランキング Top5
Ruffに搭載される新しい型チェッカーRed-knotについて
Astral社が開発中のPython向け型チェッカーRed-knotは、Rustで実装され、Ruffとデータ構造を共有することで高速なフォーマット、lint、静的解析を実現する。既存チェッカーより高速なパフォーマンスを目指し、salsaによるオンデマンド計算を採用。独自のIntersection typeなど、型推論を強化する独自機能も備える。mypy/pyrightとの完全な置換は目指さないものの、移行コストは低いとされる。主要な構文解析、型検査などは既に実装済みで、数年以内(2025年内を目指す)のリリース予定。現在、red_knot check
コマンドで利用可能。
特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
Mixiのminimoは、特徴量の一貫性管理と自動化による「特徴量ドリブンなMLOps」を実現した。Python/Go/BigQuery等、複数言語・システムに渡る特徴量管理を自動化することで、モデルの再現性、保守性、可視性を向上させた。具体的には、学習時のDataFrameから特徴量リストを生成し、それを基にPython推論サーバのOpenAPI定義とGoサーバのデータモデルを自動生成するフローを構築。これにより、モデル改善サイクルの高速化と品質保証を実現した。
「gpt-4o-transcribe」、「gpt-4o-mini-transcribe」、「gpt-4o-mini-tts」について
OpenAIが3つの新しい音声AIモデル「gpt-4o-transcribe」「gpt-4o-mini-transcribe」「gpt-4o-mini-tts」をリリース。Whisperモデルより高精度で、100以上の言語に対応する。特に「gpt-4o-transcribe」と「gpt-4o-mini-transcribe」はリアルタイム処理に強く、ノイズに強い音声文字起こしを実現。一方「gpt-4o-mini-tts」は自然でカスタマイズ可能な音声生成が可能。現状Azure OpenAI上でのデプロイは不可。各モデルの料金は公開されており、mini版はコストパフォーマンスに優れる。 実証実験では、高精度な文字起こしが確認されたものの、長時間音声では途中切れる課題が見られた。
FastAPIの非同期処理と並行処理の使い分け
FastAPIのパフォーマンスチューニングにおいて、非同期処理(async def)と並行処理(def)の使い分けは重要です。FastAPIはマルチスレッドで動作するため、def
を用いた並行処理が基本推奨されます。しかし、サードパーティライブラリが非同期対応(await)していれば、async def
で非同期処理を用いることでI/O待ち時間を有効活用できます。await非対応ライブラリを使用する場合はdef
を使用すべきです。 OpenAI等の非同期クライアントを使う場合などはasync def
が有効です。 ライブラリの非同期対応状況を十分確認する必要があります。
最新のTracking技術を比較!YOLO-Tracking と SAMURAI の違い
YOLO-TrackingとSAMURAIの物体追跡技術を比較した結果、YOLO-Trackingは高速だが精度がやや低く、SAMURAIは高精度でRe-Identificationも可能だが処理速度が遅いことが判明した。SAMURAIはZero-shot能力を持ち、形状変化にも強いが、実装には追加作業が必要で難易度が高い。プロジェクトの要件(速度重視か精度重視か)に応じて最適な技術を選択する必要がある。 特にZero-shotでの物体認識は、対象によっては精度が低いことを確認した。
【2025/3/23】集計 新着週間Like数 ランキング Top5
npm感覚でPython環境を構築!非PythonエンジニアがuvでPythonプロジェクト(Talk to the City)を動かす
Node.jsエンジニアがPythonプロジェクト(Talk to the City)実行にあたり、requirements.txt
の依存関係解決と実行環境構築の困難さを経験。DevContainer
使用も、古くなった依存関係によりImportError
発生。そこでuv
というPythonパッケージマネージャーを利用。uv
はnpm
のようにpyproject.toml
で依存関係を管理し、uv sync
で環境構築、uv run
で実行可能にする。requirements.txt
からuv
への移行、Pythonバージョン変更(3.10→3.9)を経て、langchain-community
とnltk
追加で最終的に実行成功。uv
はPython環境構築の効率化に有効と結論づけた。
OpenManusでGemma3使ってみた
Windows環境で、軽量ローカルLLM Gemma3 12BとオープンソースエージェントシステムOpenManusを連携させた。Gemma3はLM Studioで実行し、API経由でOpenManusから呼び出した。OpenManusはWebUI付きのフォーク版を使用。設定ファイル修正後、OpenManusでローカルLLMに関する情報をまとめるタスクを実行。Google検索なども行い、結果をテキストファイルに出力したが、期待通りの結果とはならなかった。今後、更なる検証が必要。
GBDT系モデルで生存予測分析
Kaggleコンペ「CIBMTR」における生存予測分析をGBDT系モデルで解く手法を紹介。ベースライン手法として、Kaplan-Meier法を用いたターゲット変換による回帰への落とし込み、XGBoost/CatBoostの生存予測用目的関数(Cox比例ハザードモデル、AFTモデル)の利用が有効。上位ソリューションでは、イベント発生確率の二値分類と生存期間の回帰を組み合わせる手法が用いられ、両者の積で最終予測値を得ていた。回帰への変換はGBDT系モデル以外でも応用可能である。
Streamlit in Snowflake (SiS) と Cortex AI で実現するフロー図自動作成アプリ
Snowflake, Streamlit, Cortex AI, Graphvizを用いたフロー図自動作成アプリが開発された。Streamlit in Snowflake上で動作し、GUIによるノード・エッジ編集、テンプレート利用、DOTコード直接入力に加え、Cortex AIのLLM機能による自然言語からの図表自動生成が可能。 Graphvizによる視覚化と自動レイアウトが図表品質を向上させる。現状はPart1であり、今後の改善が期待される。
【Python】可変長引数(*args, **kwargs)の使い方
Pythonの可変長引数*args
と**kwargs
は、引数の数が可変の関数を定義する際に使用する。*args
はタプルとして複数の位置引数を、**kwargs
は辞書として複数のキーワード引数を扱う。両方を組み合わせることで、柔軟性の高い関数を構築できる。*args
は位置引数、**kwargs
はキーワード引数として関数内で利用され、それぞれタプルと辞書としてアクセスできる。 実例として、演算の種類や表示方法を指定できる柔軟な計算関数が示されている。
【2025/3/16】集計 新着週間Like数 ランキング Top5
コードを書いてから論文が出版されるまで
スケールフリーネットワークのノード削除・追加をシミュレートするC++コードと、解析スクリプト、データ、gnuplotを用いた図生成スクリプトを公開。Pythonコードを高速化するためC++で書き直され、パラメータ管理には独自フォーマットのシングルヘッダーライブラリを使用。並列計算には自作ツールcpsを用い、スパコンでの実行を容易にした。データは論文執筆用リポジトリに複製・管理。本稿は、一度限りのコード公開における開発・データ整理方法を示し、研究開始時の参考となることを目指す。
OpenAI Responses API と Agents SDK リリースのまとめ
OpenAIは、エージェント開発向けにResponses APIとAgents SDKをリリースした。Responses APIはChat Completionsの上位互換で、会話状態の管理、PDFファイル参照、組み込みツール(Web検索、ファイル検索、コンピュータ操作)の利用を可能にする。Agents SDKは、Responses APIを利用し、マルチエージェントのオーケストレーションやトレーシング機能を提供する。 今後Code Interpreterも提供予定。Python版SDKが公開され、Node.js版も予定されている。 全ての機能は、統合されたオブザーバビリティツールで監視可能。
スプレッドシートをバックエンドにした社内データアプリ構築方法
Googleスプレッドシートをバックエンドとした社内データアプリ構築手法として、コードベース(Streamlit, Evidence, Morph)、ローコード、ノーコードの3種類を比較。AI機能との親和性ではコードベースが最も高く、特にStreamlitとMorphはPythonベースで柔軟な開発が可能。ローコードは既存API利用で限定的なAI機能実装、ノーコードはAI機能のカスタマイズが困難。シンプルなアプリはノーコード/ローコードが、AI活用や複雑な機能が必要なアプリはコードベースが適しており、StreamlitやMorphが推奨される。
OpenAI Agents SDKの7つのインターフェイスをコード分析で理解する
OpenAI Agents SDKは、AIエージェント開発支援Pythonライブラリで、7つのインターフェース(Agent, Tool, Guardrail, Handoff, Model, Runner, Trace)を提供する。Agentはタスク実行、Toolは機能モジュール、Guardrailは入出力検証、Handoffはエージェント間タスク委譲、ModelはLLMとの通信、Runnerは実行ワークフロー制御、Traceは実行ログ記録を担う。特にHandoffとGuardrailは、複数エージェント連携と安全な実行を支える独自の概念である。 コード分析により、これらのインターフェースの内部構造と連携が明らかになった。
LLM APIでのOCRの精度を向上するためのPythonライブラリ 3選 + Tips
生成AIを用いたOCRは柔軟なフォーマットに対応できるが、精度向上にはデータ前処理が重要。本記事では、PythonのPillow(トリミング)、OpenCV(コントラスト調整)、pytesseract(OCR)ライブラリを用いた前処理手法を紹介。 さらに、Azure Vision AIとの連携による精度向上も示唆。これらの手法により、生成AIを活用した高精度OCRの実現が可能となる。
【2025/3/9】集計 新着週間Like数 ランキング Top5
動的なサイトもスクレピングできる【Scrapy-Playwright】
本記事は、Scrapy-Playwrightを用いた動的ウェブサイトのスクレイピング手法を紹介する。ScrapyはPython製のスクレイピングフレームワークだが、静的サイトしか扱えない。Scrapy-PlaywrightはPlaywright(E2Eテスト自動化フレームワーク)とScrapyを統合することで、JavaScriptで動的に生成されるコンテンツを含むウェブサイトからのデータ取得を可能にする。 記事では具体的なコード例と実行結果を示し、Scrapyのみでは取得できなかったデータがScrapy-Playwrightを用いることで取得できたことを確認している。ただし、メモリ消費量が増加することに注意が必要。
「chakoshi」とLINE botを連携してみる
この記事は、NTTコミュニケーションズの有害性判定API「chakoshi」をLINE Botに統合する手順を解説しています。GAS(Google Apps Script)でLINE Botを作成し、ユーザー発言をngrok経由でPython Flaskサーバーに転送。サーバーはchakoshi APIを呼び出し、判定結果をGASに返し、安全な発言にはChatGPTで応答、有害な発言には警告メッセージを返す仕組みです。GASとPython、chakoshi API、ngrok、ChatGPT APIを用いた連携システム構築と、その動作確認結果が示されています。
Webアプリケーションにおけるデータ保存戦略:フロントエンド、バックエンド、セッションの選択ガイド
本記事は、PythonバックエンドのWebアプリケーションにおけるデータ保存戦略を解説。フロントエンド、バックエンドDB、セッションの3つの選択肢を比較し、それぞれの特徴(永続性、容量、速度、セキュリティなど)とユースケースを示す。バックエンドDBにはSQLAlchemyを用いたORMによる効率的なデータベース操作を、セッション管理にはFlask、Django、FastAPIとJWTの例を紹介。フロントエンドではlocalStorage、sessionStorage、IndexedDBなどを活用する方法を示し、Next.jsとTypeScriptを用いた例も提示している。 最終的に、サンプルアプリを通じて、データの保存場所の選定と各技術の連携を実践的に学ぶことを提案している。
Pythonで定数を扱う方法 (mypy無し版)
mypy非使用環境でのPython定数実装について、dataclass、Enum、__setattr__
を用いた3手法を比較検証。dataclassとEnumはfrozen=True
、Enum
の特性により再代入を防止。__setattr__
は特殊メソッドで再代入を検知しTypeError
を発生させる。__slots__
とproperty
は迂回可能のため非推奨。 dataclassとEnumが簡潔で推奨されるが、依存性を避けたい場合は__setattr__
が有効。
CoeFontの機械学習推論を支える技術
CoeFontの機械学習推論システムは、FastAPIの非同期処理とServer Sent Eventを用いて推論結果を迅速に提供する。 中間層を削減し、JWS認証による高速化も実現している。信頼性向上のため、SentryとDatadogによるモニタリング、SLO/SLIに基づく運用、AWS WAFなどによるセキュリティ対策を実施。 リクエスト文字数も考慮したスケーリング戦略で、パフォーマンスと安定性を高めている。 これらのMLOps施策により、サービス品質の大幅な改善に成功した。
【2025/3/2】集計 新着週間Like数 ランキング Top5
LangGraph : LangMemによる記憶管理の基本
LangMemは、LangGraphのLLMエージェント用長期記憶管理ライブラリ。create_memory_manager
とcreate_memory_store_manager
の2つのAPIを提供し、前者は独立したメモリ管理、後者はLangGraphのStoreと連携した永続化を実現する。 create_manage_memory_tool
とcreate_search_memory_tool
はエージェントと連携し、記憶の管理・検索を容易にする。さらに、create_prompt_optimizer
APIは過去の会話からプロンプトを最適化する。 これらの機能により、LLMの精度向上に貢献する。
【学習ログ】スクレイピングの始め方
Pythonを用いたWebスクレイピングの実装例を紹介。requests
とBeautifulSoup
ライブラリを使い、書籍情報サイトから書籍名と価格を抽出。robots.txt
確認、利用規約遵守、過剰リクエスト回避、API利用優先といったスクレイピングのルールと注意点も解説。練習サイトからのデータ取得に成功し、今後のデータ分析への応用を展望している。
Langchain公式の Open Deep Research を触ってみる
LangChainが公開したOpen Deep Researchは、LangGraphを用いたオープンソースのDeep Research実装である。プランナー、検索モジュール、ライターからなるワークフローで、Web検索を用いて詳細なレポートを作成する。OpenAIやGoogleのDeep Researchと異なり、LangGraph Studioでグラフを可視化・実行できる。 複数のAPIキー設定が必要だが、動作確認済み。Gemini、ChatGPTのDeep Researchと比較し、情報収集速度や分析深度に違いがあることが結論付けられた。 今後の課題として、情報の信頼性とプライバシーの懸念が挙げられる。
チートシート②正規表現で扱う文字パターン35選!
記事は、日付、メールアドレス、URL、HTMLタグ、電話番号、郵便番号など35種類の文字列パターンと、それぞれの正規表現例を紹介している。 正規表現は、日付のISO形式や米国形式、メールアドレスのローカル部とドメイン部、URLのプロトコル、HTMLタグの開始・終了タグ、電話番号の国際形式など、様々なパターンに対応できる。 その他、ISBN、MACアドレス、IPv4/IPv6アドレス、クレジットカード番号、マイナンバーなども網羅している。これら正規表現を活用することで、文字列の検証や抽出を効率化できる。
ローカルのPDFファイルを引用して回答してくれるエージェントを作った
ローカルPDFファイルを引用して回答するエージェントをPythonとClaudeを用いて開発した。 このエージェントは、指定フォルダ内のPDFを質問の関連性でソートし、ClaudeのCitation機能を用いて引用付き回答を生成する。FastMCPサーバーとして実装されており、Claude Desktop等から利用可能。回答精度は自動評価され、閾値を超えると処理を終了することでトークン消費を抑える。 現状の課題はトークン消費量とページ数表示の精度向上だが、医療関連文書等の参照に有効なツールである。
【2025/2/23】集計 新着週間Like数 ランキング Top5
AI Podcast:HackerVoiceのリリース, その裏側
HackerNewsのトレンドをAIで自動生成するPodcast「HackerVoice」をリリース。Next.js、Python、TypeScript、Gemini、OpenAI TTS等を使用し、HackerNews APIからデータを取得、Geminiで原稿生成、音声合成後、Cloudflare R2に保存、VercelとGitHub Actionsで自動配信する仕組みを構築。Spotify、Apple Podcasts、RSSに対応。低コスト(1話20-30円)で実現。今後の展望として、LLMによる原稿チューニング、情報源の多様化、パーソナライズ機能の追加を予定。
OpenAI APIで複数の人格と対話してみた
OpenAI APIのname
フィールドを用いて、チャットボットに複数の人格を設定し、会話させる方法を紹介。role
フィールドと併用することで、異なる人格間の識別や、各人格への個別質問が可能になる。name
フィールドには英数字とアンダースコア、ハイフンのみ使用可能だが、日本語名はcontent
で指定することで対応できる。 複数の人格を持つAIによる会話や、ユーザー名と発言履歴を紐付けるアプリケーション開発に役立つ。ただし、レスポンスにはname
が含まれないため、クライアント側での管理が必要。
第3回金融データ活用チャレンジ奮闘記 〜PDFの読み取りが得意なLLM探しとローカルOpenSearchによるハイブリッド検索〜
SIGNATEの第3回金融データ活用チャレンジ(参加者1544名)で49位となった筆者は、RAGシステム構築において、複数LLMのハイブリッド検索を用いた解法を採用した。GeminiとClaudeを組み合わせ、Geminiでテキスト、Claudeで表・グラフのPDF文字起こしを行いコスト効率を高めた。OpenSearchを用いたハイブリッド検索では、各チャンクをベクトル化し、会社名フィルタリングと前後ページ参照による精度向上を図り、最終的に生成AIによる回答生成を実現した。
hogefugaせずにダミーデータを作る「Faker」
PythonライブラリFakerを用いたダミーデータ生成についての記事要約です。Fakerは名前、住所、クレジットカード情報など多様なダミーデータを高速に生成でき、日本語を含む多言語に対応します。 Polarsを用いたデータフレーム作成例も示され、1000件の生成に0.8秒と高速であることが確認されました。生成AIと比べ、速度、コスト、再現性の面で優位性があり、開発におけるテストデータ作成の効率化、不適切なデータ使用によるトラブル回避に有効です。
Google Sheetとマークダウンで、ダッシュボード Webアプリを構築する
本記事は、GoogleスプレッドシートのデータをPythonとMorphフレームワーク、Markdownを用いてWebダッシュボードアプリとして可視化する手順を示す。Google Sheet APIでスプレッドシートデータを取得し、Pandasでデータ加工、Plotlyでチャートを作成、MorphでWebアプリとして表示する。Morphの@morph.load_data
アノテーションにより、複数のPython関数の結果を効率的に連携可能。完成したダッシュボードはMorphクラウドにデプロイできる。スプレッドシートデータのリアルタイム反映と安全なデータ共有を実現する。
Discussion