🥇

【python トピック】今週の人気記事TOP5!(2025/3/23 更新)

2025/03/12に公開

【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パッケージマネージャーを利用。uvnpmのようにpyproject.tomlで依存関係を管理し、uv syncで環境構築、uv runで実行可能にする。requirements.txtからuvへの移行、Pythonバージョン変更(3.10→3.9)を経て、langchain-communitynltk追加で最終的に実行成功。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=TrueEnumの特性により再代入を防止。__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_managercreate_memory_store_managerの2つのAPIを提供し、前者は独立したメモリ管理、後者はLangGraphのStoreと連携した永続化を実現する。 create_manage_memory_toolcreate_search_memory_toolはエージェントと連携し、記憶の管理・検索を容易にする。さらに、create_prompt_optimizer APIは過去の会話からプロンプトを最適化する。 これらの機能により、LLMの精度向上に貢献する。

【学習ログ】スクレイピングの始め方

Pythonを用いたWebスクレイピングの実装例を紹介。requestsBeautifulSoupライブラリを使い、書籍情報サイトから書籍名と価格を抽出。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クラウドにデプロイできる。スプレッドシートデータのリアルタイム反映と安全なデータ共有を実現する。

GitHubで編集を提案
CareNet Engineers

Discussion