python

【メモ】RAGシステムの救世主となるか?MarkItDownの可能性を探る

前回はDoclingというドキュメントコンバートツールを紹介しました。その後、他の変換ツールを探していた所、MicrosoftさんのGitHubにMarkItDownというツールがある事がわかりました。用途はDoclingと大きく変わりませんが、対応フォーマットが特殊ものもあり…

【メモ】RAGシステム構築の強い味方 - Doclingによるドキュメント変換入門

IBM watsonx.ai DojoでRAGとして様々なファイルのフォーマットを使用するための変換ツールを紹介していただきました。 それが今回紹介するDoclingです Doclingとは? Doclingは、簡単にいうならば様々なドキュメントに対応したHTML、Markdown、JSONへのコン…

【Python】printじゃないよ、loggingだよ!効率的なログ管理のすすめ

最近はPythonでいろいろなプログラムを書くことが増えてきました。デバッグにprint文をよく使っていたのですが、本番環境でのログ管理となると、もう少しちゃんとした方法を使わないといけないのではと度々思っていました。ただ、変更するのはかなり億劫でも…

【イベント参加レポート】生成AIを使ったアプリ開発、応用編~watsonx.ai Dojo #4~

毎月開催されているwatsonx.ai Dojoのハンズオンの内容の復習の続きになります。 イベントページ ibm-developer.connpass.com 応用編として開催された今回のハンズオンでは、これまでのプロンプトエンジニアリングから一歩進んで、RAG(Retrieval-Augmented …

【メモ】イベント参加者のX投稿を促進するQRコードジェネレーター

はじめに イベントなどでXへの投稿を促してもなかなかポストされないので、以下のようなQRコードをスライドに貼り付け、読み取ってもらうとポスト率が爆上がり❤️‍❤️‍❤️‍になります。文章の雛形やハッシュタグを含めればボタンひとつで投稿され便利。 イベン…

【メモ】Pythonのf文字列の実力がすごい

Pythonのバージョン3.6から導入されているf文字列(f-string:フォーマット文字列)は普通は便利なので普段遣いしていますが、色々と知らない機能があったのでメモ。 テキストの配置と整形 プログラムで標準出力に途中結果を表示することはあるかなと思いま…

【メモ】【コピペでOK】PythonでURLやJSONを安全に扱う方法

ネットを見ていて、以下の情報を見つけました。入力情報などでURLがあった場合にURL.canParse()メソッドを使用して、その妥当性を判定できます。アクセス前にURLの妥当性を確かめられるのはとても便利です😊 azukiazusa.dev 私は、JavaScriptではなくPythonを…

【イベント参加レポート】プロンプト・エンジニアリング入門~watsonx.ai Dojo #3~(その2)

毎月開催されているwatsonx.ai Dojoのハンズオンの内容の復習の続きになります。 今回は2部構成の後半ですが、前回とは切り離して行える形です。 イベントページ ibm-developer.connpass.com 今回の内容はプロンプト・エンジニアリング入門ということで、プ…

【イベント参加レポート】生成AIを使ったアプリ開発、入門編 〜watsonx.ai Dojo #2〜

すでに一ヶ月ほど経ってしまっていますが、生成AIを使ったアプリ開発、入門編 〜watsonx.ai Dojo #2〜に参加しましたので、そのハンズオン内容の復習レポートとして記してみたいと思います。 参考 uepon.hatenadiary.com 前回は概論的な予備知識的な内容でし…

初めてのグラフ可視化!Graphvizで関係性を見える化しよう

とある、案件で情報の関係性をグラフ化するという話がありました。グラフ化に関しては全く知識外だったので、話をしやすくするために一旦グラフのイメージを資料化して、話をしやすくしようと考えました。 グラフを描画するツールはPowerPointなどのスライド…

【メモ】LevelDBをPythonから使用する

LevelDBを使用することがあったので、その使い方をメモします。 LevelDBはGoogleの以下のリポジトリによって公開されているデータストアの仕組みになります。 github.com LevelDBはGoogleで書かれた高速なKey-Valueストレージ・ライブラリで、文字列キーから…

【イベント参加レポート】生成AIと向き合うための準備編 〜watsonx.ai Dojo #1〜

先日、オンラインで生成AIと向き合うための準備編 〜watsonx.ai Dojo #1〜に参加しましたので、その内容をレポートとともに次回に向けての環境設定を行ってみます。 今回は知人から紹介を受けて、watsonx.aiに興味があったので参加です。自分のAIの知識は我…

ローカル環境でAIを活用する新時代:OllamaとPythonの強力タッグ

以前のエントリでは、Ollamaを使ってローカル環境でLLMを構築する手順を説明しました。それだけでも十分に活用できるのですが、さらに一歩進めて、Ollamaをより深く活用する方法について考えてみました。Ollamaをセットアップすると、REST APIを介してシステ…

APIキーを安全に扱う!Google Colabでアクセスキーをセキュアに使用する方法

Google Colaboratory(以下Colab)でAPIにアクセスするコードを書こうかなと思ってみたのですが、一般的なコード例では環境変数にAPIキーを設定して、環境変数の読み出しによって取得するような書き方をしますが、Colabの場合だとソース(ノートブック)にあ…

ビジュアルプログラミングの未来: EduBlocksでPythonを体験!

先日(2024.05.29)、開催された『ビジュアルプログラミングIoTLT vol.17』に参加して、LightningTalk(以下LT)をしてきました。 speakerdeck.com 今回のLTの内容は? ビジュアルプログラミングということで、何を選定しようかなと思っていましたが、「Scra…

Pythonで深堀り!QRコードの生成方法を理解する!

実は、今年から学生になりました。学校の課題が多くなかなか技術的な内容をまとめられていなかったのですが、ふとした頼まれごとでPythonを使用してQRコードのPNG画像を生成するという作業があったので、忘れると嫌なので使い方などをメモしておきます。 Wik…

PEP668エラー回避のヒント:pipxの活用

最近のUbuntuやRaspberryPiを使用しているとpipコマンドでライブラリのインストールをするときにPEP668のエラーが出てきます。 以下は最新のRaspberryPi OSであるDebian GNU/Linux 12 (bookworm)でpipコマンドを使用してnumpyを インストールしてみた結果に…

煩雑なインストール不要!Pythonから簡単にOpenJTalk

ここ最近VOICEVOXを使用して音声合成を楽しんでいましたが、その中でよくOpenJTalkを使用すればもっと軽くリアルタイムにできるのに…ということも言っていました。以前は自分もOpenJTalkを使っていたのですが、インストールの手順が煩雑だったのでいまいち手…

UbuntuやRaspberry Piでも利用可能な音声合成エンジンEdge-TTSの導入方法

先日来使用しているVOICEVOXですが、PCであればかなり高速に処理をすることができるとはいえ、リアルタイム性?というところではやはり処理時間がかかるため会話というところには使用が難しいと思いました。そこで、他にもなにかないかなと思い探してみるこ…

VOICEVOX COREをRaspberryPiにインストールしてCLIで便利に音声合成を行おう

前回のエントリではVOICEVOXをPCにインストールされたUbuntuへインストールしたという内容でしたが、今回はRaspberryPiにVOICEVOXをインストールするという内容です。ただ、RaspberryPiの運用ではモニタのないヘッドレス環境での使用の可能性もあるため、こ…

Raspberry PiとMiniforgeで始める、Pythonの仮想開発環境

Pythonの開発環境はPCでは基本的にDockerを使用するようにしているのですが、RaspberryPiでもPythonの開発環境構築をなんとかしたいなあと思っていました。といっても、それほど大掛かりな感じではなく仮想環境やライブラリの依存性をなんとかしてくれるだけ…

データ共有の未来: 自治体のイベント情報をもっとプログラマーに優しく

ふと、普段働いているところのイベントをなんとなく知りたいと思いました。ホームページには一覧が公開されていました。 この自治体です。 www.city.nagoya.jp ただ、情報の共有という観点からするとちょっとどうよというような内容のフォーマット。 オープ…

Pythonでの多言語翻訳の探求

前回のエントリーでは音声ファイルからテキスト化を行いましたが、日本語音声から日本語テキストへの変換でした。実は英語の変換に関してはWhisperの解析時のオプション(task=”translate”)の追加を行うだけで行えるのですが、英語以外の言語に変換するには…

Whisperを使ってYouTube字幕ファイルの作成がこれほど簡単だったなんて!

少し前のエントリでYouTubeから音声データをダウンロードするといった内容のことをやっていたのですが、それならその音声データをWhisperに入力し、生成された音声解析のテキストデータをYouTubeの字幕ファイルに変えてみたらどうなるかなと思っていました。…

日経Linux11月号に寄稿しました!おすすめPython小ネタを紹介!

日経Linux11月号が今月発売されています。今回もちょっとだけですが、記事を書かせていただいていたので、 発売されているところを見に行きました。書かせていただいていると、こういうのことが楽しかったりする 内容としては「お薦めコマンド&スクリプト」…

CSVデータの入力ミスを瞬時に検出!pandasで欠損値をチェックする方法

先日大量のデータの入ったCSVファイルを渡されたのですが、処理を作ってもうまく処理できずエラーが発生してしまい、怒りが爆発してプログラムを見直していたのですが、最終的に判明したのはデータの入力なし・・・そんなことあるのかよ そんな感じの悲劇が…

MarkdownをPDFに!Pythonのパワーで実現する変換テクニック

私はほぼMarkdownファイルでメモを取っています。 ja.wikipedia.org Markdownファイルは記述はとても簡単でWordなどとは異なりレイアウトは最低限度という感じではありますが、対応したViewerでレンダリングを行うことで割と見栄えが良くなる点で非常に重宝…

Pythonとyt-dlpを活用した動画・音声のダウンロード方法

ちょっと前まで、とある原稿を書いていたのですが、その時の没ネタを少しメモしておきます。 Pythonを使用した便利な処理ということでのネタ探しでしたが、紙面の関係と、微妙に権利関係の懸念もあって没としていました。 内容としてはYouTubeの動画および、…

Node-REDのfunctionノードだけで解決が難しいときにフロー内にPythonの処理を導入する

Node-REDを使用していると、偶にこのPythonの処理をそのまま埋め込めればいいのになと思うことがあります。 自分も以前のエントリでwordcloudの画像生成に関して拡張ノードがなかったのでexecノードを使用して回避したことがありました。 参考 uepon.hatenad…

reTerminalで収集したテキストを常時wordcloud画像化して表示するデバイスを作成

先日、NGK2022Sという名古屋合同懇親会という名のIT系コミュニティの合同新年会のLT大会が開催されました。 note.com そのイベントの中で以下のような内容のLTを行いました。 一応、コロナ禍で名ばかりのSeeedJP UGのメンバーにはなっているのですが、Seeed…

/* -----codeの行番号----- */