Haji Papa's Bits & Bytes

Haji Papa's Bits & Bytes

An IT leader, business manager, and anime-loving dad of three, documenting my journey in tech, work, and language learning.

【Python】非同期処理(asyncio, aiohttp)を理解する
Programming

【Python】非同期処理(asyncio, aiohttp)を理解する

1. Pythonの非同期処理とは Pythonの非同期処理とは、時間のかかる処理を待っている間に、他の処理を先に進めるプログラミングの方法です。待ち時間がある処理を効率よく進めるときに特に効果を発揮します。 たとえば、次のような場合に、非同期処理を使うと効果を発揮します。 (1) Web APIの並列呼び出し 例:天気情報APIや路線情報API等に同時にリクエストを送りたいとき。 ・APIの応答を待っている間は、CPUをほとんど使わないので、他のリクエスト処理ができる。 ・非同期でリクエストするときは、requestsの代わりにaiohttpを使う。 (2) チャットアプリやWebSocket通信(リアルタイム処理) 例:Webチャット、オンラインゲームなどで、常時接続しながらメッセージの送受信を行う。 ・接続は維持しつつ、メッセージが来るのを「待つ」必要があり、同期処理だと待っている間、他のことができなくなる。 (3) ファイルやデータベースへの非同期アクセス 例:数千件のログファイルを読み込みながら、バックグラウンドで解析・保存する。
4 min read
【Python】英会話トレーニングアプリを作ってみよう
Programming

【Python】英会話トレーニングアプリを作ってみよう

AIが発達したおかげで、比較的簡単に英会話の練習ができるアプリを自分で作ることができるようになりました。 今回は、 (1) 日本語で話すと、自然なアメリカ英会話に翻訳して英語で話し、 (2) 英語で話すと、アメリカ英会話として不自然だったり誤っていた場合は、英語を訂正してくれて、さらに、話の続きを英会話として返答してくれる アプリを作ってみました。 1. システム構成 1. 音声入力(ASR) * Enterキーを押した後に、マイクから音声をキャプチャ。 Enterキーを再度押すまで音声を記録。 * OpenAI Whisper(API / ローカルモデル)で文字起こし 2. 言語判定 & 処理 * 文字起こし結果の言語を判定(Whisper が返す language を使用) * 日本語 → ChatGPT API に「自然なアメリカ英会話に翻訳して」もらう * 英 語 → ChatGPT API に「不自然なら訂正し、流れに合う英会話として返答して」もらう 3.
6 min read
PythonからOllama APIを使って、文章を要約する
Programming

PythonからOllama APIを使って、文章を要約する

前回「Ollama APIを使用してみる」で、Ollama APIを試してみました。 今回は、PythonとOllama APIを使って、PDFファイルの要約をGemma3にしてもらおうと思います。 春期の情報処理試験も近いですので、それに関連するPDFの要約を作成してみましょう。 必要なライブラリのインストール pip install aiohttp PyMuPDF import fitzとあるのでpip install fitzとしがちですが、pip install PyMuPDFです。 Pythonコード(ファイル名: summarize_pdf_ollama.py) import asyncio import aiohttp import fitz # pip install fitzではなく、pip install PyMuPDF import sys import os import time import json
5 min read
【Termux+Python】Pydanticを導入してみた
Programming

【Termux+Python】Pydanticを導入してみた

Pydantic は、Python用のデータバリデーションおよびデータモデルライブラリです。Pythonの型ヒント (type hints) を活用して、データのバリデーションや変換を自動で行います。 Pydanticを導入することにより、下記の利点があります。 * バリデーションの自動化型ヒントを使うだけで、詳細なバリデーション処理を簡単に定義できる。 * 可読性の向上データモデルが明確になり、コードの可読性が高まる。 * エラー対応が楽になるバリデーションエラーが詳細に表示され、デバッグしやすい。 * API開発が効率化FastAPIなどと組み合わせると、エンドポイントのパラメータバリデーションやスキーマ生成が簡単。 * 型変換が便利データベースや外部APIから取得したデータの変換が容易。 Pydanticの導入方法 1. Rustをインストールする pydantic v2は高速化のために一部をRustで実装しており、デフォルトでビルド時にRustコンパイラを要求します。したがって、Pydanticをインストールする前にRustを導入します。 $ pkg u
2 min read
【Termux+Python】AndroidでPythonを動かす
Programming

【Termux+Python】AndroidでPythonを動かす

Androidの環境でPythonを動かす方法は、いくつかありますが、ここではLinux環境に近い操作が可能なTermux上でPythonを動かす方法をご紹介します。 Termuxは、Android端末上で動作するLinux端末エミュレータ兼パッケージ管理システムです。 1. F-Droidをインストールする PlayストアからもTermuxはダウンロードできますが、バージョンが古いようですので、F-DroidまたはGitHubから最新版をインストールすることが推奨されています。ここでは、F-Droid経由でインストールしていきます。 * F-Droid公式サイト(https://f-droid.org/ja/ ) サイトに表示されているQRコードから、F-Droidのインストールを行います。 QRコードを読み込むとF-Droid.apkがダウンロードされるので、「パッケージ インストーラで開く」で開きインストールを行います。 2. F-DroidからTermuxをインストールする 2-1. F-Droidを起動したら虫眼鏡のボタンを押し
2 min read