GradioとStreamlitのアプリをnginxでサブディレクトリにルーティングさせる
287{icon} {views} 1つのドメイン直下にサブディレクトリを作り、複数のGradio、Streamlitのアプリを配置するパターンをコンテナベースで実装してみます。nginxによるリバースプロキシを使います […]...
PDFMinerを並列化して読み込みを高速化する
150{icon} {views} PDFMinerというMITライセンスで利用できる、PythonベースのPDFパーサーを並列化する方法を紹介します。このライブラリ、パースが遅いというデメリットがあるのですが、並列化が […]...
MoviePyで一定間隔でフレームを抽出する
417{icon} {views} MoviePyを使い、動画から一定間隔でフレームを抽出する方法を見ていきます。iter_framesを使うとできます。動画編集と組み合わせたいときにこの方法は便利です。 はじめに 動画 […]...
Streamlitで動的に作ったコンテンツをダウンロードする方法
1.5k{icon} {views} Streamlitでメソッドなどで作った動的なデータについて、ボタンをクリックするとダウンロードするような処理を実装します。これは2023年10月現在のStreamlitでは不可能で […]...
asyncioを使ったLangChain+Streamlitでの非同期処理:複数のストリーミングチャットを同時に動かす
1.6k{icon} {views} asyncioを使い、StreamlitのUIを非同期化することを目指します。非同期化することで、複数のストリーミングチャットを同時に動かすことが可能になります。LangChainと […]...
Streamlit+LangChainでストリーミング対応しつつPDFに複数の質問をさせる
1.4k{icon} {views} Streamlit+LangChainでChatGPTのストリーミング表示を実装してみます。PDFの検索ベースで、かつテンプレートの質問を連続的に行うという実践的な例を紹介します。L […]...
Gradioにおけるステート管理を考える
780{icon} {views} Gradioは簡単にデモアプリを作るときは便利ですが、アプリケーションが複雑になってきたときにステート管理が問題になってきます。ステート用のクラスを用意して、それでラップするのが良さそ […]...
Pythonで表をHTMLに変換する
1.2k{icon} {views} Pythonで表をHTML形式に簡単に変換するための手法です。特定条件を強調表示するという、スタイリング周りも込みでPandasで可能です。インデックスの非表示や抽出周りがややこしか […]...
Chrome Driverとバイナリーのバージョンを一致させるためのDockerfileの書き方
1.6k{icon} {views} Seleniumでスクレイピングするには、Chrome Driveとバイナリーの両方が必要になりますが、両者のバージョンの一貫性をDockerfile内で保つことにややハマったので自 […]...
Jupyter Lab上からChatGPTを使える「Jupyter AI」をDockerから利用する
1k{icon} {views} Jupyter Lab上から簡単にChatGPTを使える「Jupyter AI」をカスタムDockerで動かしてみました。使用するライブラリに応じてオリジナルな開発環境を自在に構築するこ […]...