python
ワークフローシステムの構成を考えてまして。 完了ノードが必要な上流ノードの処理をリクエストする構成が美しいんだけど、その形式だとワークフロー設計者の手続き的なイメージと乖離が生まれないか、と思うなどしていた。たとえば「10分待つ」というノード…
codexでTextualize/richを使った少しややこしい画面を作らせてみたがおおむね期待通りに動いていてすごいなと思う。 markdownのレンダリングもビルトインされているのでコードシンタックスなども色分けされる。マウス対応のターミナルであれば画面内のテキス…
そーいや代入の式ができていたのを忘れていた。PEP-572で定義されている。 >>> while a:= input(): ... print("input:", a) ... hello input: hello foo input: foo bar input: bar こういう書き方ができるようになっている。:=は結合順が弱々しいので、a :=…
みなさんこんにちは。株式会社はてなで働いている id:ma2saka です。普段はクラウドサービスの利用状況の詳細データにSQLを書いたり、壊れたスプレッドシートを直したり、更新されたエンドユーザーライセンスのdiffを目grepする仕事をしています。 この記事…
諸事情によりコンテナでWhisperを実行したくなったと思いねえ。しかし初回ダウンロードにはとても時間がかかる。毎回ロードするのがわかっているならモデルファイルは焼いておきたい。 FROM python:3.13-trixie ENV DEBIAN_FRONTEND=noninteractive \ WHISPE…
標準の slack_send_message ツールはブロックを受け付けてないので全てテキストモードで投稿される。 tools/src/strands_tools/slack.py at main · strands-agents/tools · GitHub まあでも小さいコードなので、以下のようなパッチをいれてしまえば自然な動…
GitHub - strands-agents/sdk-python: A model-driven approach to building AI agents in just a few lines of code. import readline # noqa: F401 from strands import Agent, tool from strands.models import BedrockModel @tool def word_count(text):…
デコレータで関数を返す以外のことができる、ということで試してみた。できる。使い道は...なんかある? import sys def closable(func): class _: def __enter__(self): print("enter") return self # exc_type は例外型、exc_value は例外に渡されたオブジ…
google-crc32cの警告が鬱陶しいので抑制する - 0xf に関連して 以下のようにエラーが出てくるのが抑制のしようがなくて、 WARNING: All log messages before absl::InitializeLog() is called are written to STDERR E0000 00:00:1760337382.027649 10064653…
無念である。 def stream( self, input: InputT | Command | None, config: RunnableConfig | None = None, *, context: ContextT | None = None, stream_mode: StreamMode | Sequence[StreamMode] | None = None, print_mode: StreamMode | Sequence[Stream…
前回: リスト内包表記で改行入れるとスマートじゃん - 0xf ちょっとローカルで立てた gpt-oss とお話しするCUIを書いていた。で、LangGraph 経由で Ollama から戻ってくるメッセージを処理するところでどうしてもループが重なってインデントが深くなってしま…
OllamaのAPIからメタデータを取得しようとしたらうまくいかない、という場面。 DEBUG] token_info type: , value: {'input_tokens': 141, 'output_tokens': 121, 'total_tokens': 262} [DEBUG] Parse error: Expecting property name enclosed in double quo…
書き方すぐわかんなくなるのでメモ。 # google-crc32c のC拡張がない環境では大量の警告が出るため抑制する warnings.filterwarnings( "ignore", category=RuntimeWarning, module="google_crc32c", ) from langchain_google_vertexai.model_garden import C…
こういう話。 fruit = ["apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew"] fruit_dict = { name: len(name) for name in fruit if name.endswith("e") } print(fruit_dict) #=> {'apple': 5, 'date': 4, 'grape': 5} 辞書を…
LangChain本読んでて、@chain の作りがスマートだなー! と思った。 langchain/libs/core/langchain_core/runnables at master · langchain-ai/langchain · GitHub 実装はゴツい! ともあれ、デコレータで関数を返す以外の発想がなかった。こんな感じですよ。 …
3.5から導入されてたやつ。見慣れた感じだ。はい。 import asyncio async def greet(message: str): await asyncio.sleep(1) print(message) async def main(): await greet("Hello, world!") if __name__ == "__main__": asyncio.run(main())
普通に match でいけるようになってた。便利。 import fire from typing import Union, Tuple def try_parse(value) -> Union[float, str]: try: return float(value) except (ValueError, TypeError): return str(value) def parse_input(a, b) -> Tuple[Un…
.cursor/rules .cursor/rules 以下は開発しようとする対象のタイプによってテンプレートを取り込み分けるみたいなイメージなんだなたぶん。 たとえば python でアプリケーションを作る際に、app/*.py についてはこう、scripts/*.py についてこう、みたいなル…
python の sdkがあるので眺めていこう。 GitHub - modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients まずは手元で動作を確かめる。python -m pip install mcp "mcp[cli]"して mcp モジュールをイ…
こうなるやつ 原因 boto3-stubsはそのままインストールしただけでは、個別のサービスについてのスタブがインストールされない。 python -m pip install "boto3-stubs[s3]" みたいにサービスごとにインストールしないといけない。 boto3.client() は渡された…
ちょっと Parquet ファイルのスキーマを確認したいことがあった。 こんな感じのスクリプトを書いた。 import argparse import pyarrow.parquet as pq from pyarrow.parquet import ParquetFile def main(input_file: str) -> None: try: parquet_file: Parqu…
google.cloud.bigquery.client.Clientのload_table_from_json について。 googleapis.dev BQにデータ突っ込むスクリプトで、一時ファイル作りたくなくて、load_table_from_json を使おうとして少しハマっていた。 第一引数は json_rows と仮引数名設定されて…