開発者の皆さん、こんにちは!
この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。
前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!
Pythonは、汎用プログラミング用のインタープリター型の高水準のプログラム言語です。 Guido van Rossumによって作成され、1991年に最初にリリースされたPythonは、特に重要な空白を使用してコードの可読性を強調する設計哲学を持っています。 公式サイト。
InterSystems Python Binding Documentatión.
開発者の皆さん、こんにちは!
この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。
前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!
メール送信は、統合シナリオでは一般的な要件です。クライアントへのリマインダー、自動レポート、トランザクション確認などに使用されます。 固定メッセージは、管理やパーソナライズが難しくなりがちです。 そこで登場するのが templated_email モジュールです。InterSystems IRIS InteroperabilityをJinja2テンプレートの機能を組み合わせます。
Jinja2はPythonエコシステムで人気のあるテンプレートエンジンで、完全に動的なコンテンツ生成を可能にします。 次をサポートします:
簡単なメール本文テンプレートの例:
血液検査の結果を見て、何が書いてあるのか全然わからないあの感じ、分かるかと思います。 その問題を解決してくれるのがFHIRInsightです。 そもそも医療データは怖いものや分かりにくいものではなく、誰もが活用できるものであるべきだ、という考えから始まりました。 血液検査は健康チェックではとても一般的ですが、正直なところ、理解するのは多くの人にとって難しく、臨床検査を専門としない医療スタッフにとっても難しいことがあります。 FHIRInsightは、血液検査のプロセスをもっと分かりやすくし、情報をより活用しやすくすることを目指しています。
すべては、シンプルながら強力なこの質問から始まりました。
「なぜ血液検査の結果を読むのは、時には医師にとってもこんなに難しいのか?」
血液検査の結果を見たことがあるなら、大量の数字、意味の分かりにくい略語、そして自分の年齢や性別、状態に合っているかどうかもわからない「基準範囲」を見たことがあると思います。 確かに診断ツールではありますが、状況が分からなければ、結局推測することになります。 経験豊富な医療従事者でさえ、すべてを理解するためにはガイドラインや論文、専門家の意見を照らし合わせる必要があることがあります。
そこで登場するのがFHIRInsightです。
前の記事では、smolagentsとInterSystems IRISを使用して、SQL、ベクトル検索を使用したRAG、interoperabilityを組み合わせたカスタマーサービスAIエージェントをビルドしました。
その際、LLMと埋め込み表現のためにクラウドモデル(OpenAI)を使用しました。
今回はさらに一歩進めます。Ollamaを利用して、同じエージェントをローカルモデルで実行します。
カスタマーサポートの質問は、構造化データ(オーダー、製品 🗃️)、非構造化知識(ドキュメント/よくある質問 📚)、およびライブストリーム(出荷更新 🚚)と多岐にわたります。 この投稿では、以下を使用して、3つすべてに対応するコンパクトなAIエージェントを作成します。
開発者の皆さん、こんにちは。
先日の 第3回InterSystemsJapan開発者コミュニティミートアップでは、Google Colab を使ったワークショップを実施しました。
その際、解説を読みながら、その場でコードを実行できる Jupyter Notebook の良さを改めて実感しました。
こうした課題は、Notebook 形式にするだけで驚くほど解決します。
サンプルコードのすぐ横に解説を置けるので、迷う時間が減り、そのまま作業ドキュメントにもできます。
ObjectScript でも同じことができれば、学習にも現場作業にもとても便利ですよね。

このセクションでは、IRISでPythonを主要言語として使用する方法について紹介します。これにより、IRISの強力な機能を活用しながら、Pythonでアプリケーションのロジックを書くことができます。
これは InterSystems FAQ サイトの記事です。
PythonからIRISにアクセスするためのNative SDK for Pythonと呼ばれるインタフェースが用意されています。
Javaや.Net用に用意されているNative SDKと同等な機能が提供されています。
(一部異なる機能があります)。
また、Python用にはEmbedded Pythonと呼ばれるIRISと密に連携した機能があります。
IRISから最大限の性能を得るためには、Embedded Pythonが適していますが、以下のような場合、Native SDKが適しているケースもあります。
Native SDKを利用することで以下のようなことを実装することができます。
以下からこれらのサンプルプログラムを取得することができます。
これは InterSystems FAQ サイトの記事です。
.NETからIRISにアクセスするためのNative SDK for .NETと呼ばれるインタフェースが用意されています。
JavaやPython用に用意されているNative SDKと同等な機能が提供されています。
(一部異なる機能があります)。
Native SDKを利用することで以下のようなことを実装することができます。
以下からこれらのサンプルプログラムを取得することができます。
詳細は、以下のドキュメントをご参照ください。
OHDSI のウェブブックからアキレスに続くこの OMOP の旅シリーズに沿って、適切に記述された R と SQL の組み合わせによって、組織間で共有可能な大規模な分析の結果が導き出されるのを見れば、OMOP 共通データモデルの威力を理解し始めることができます。 とは言え、私には第 3 正規形の知識がないので、約 1 か月前の旅において、Databricks Genie を使って、InterSystems OMOP と Python 相互運用性を活用して SQL を生成しました。 非常にうまくいきましたが、RAG「モデル」がどのように構築され、それを実現するための LLM の使用については、Databricks の内部に魔法が残されています。
OMOP の旅のこの時点で、同じ道で Vanna.ai と出会いました...
Vanna は、LLM を使用してデータベースの正確な SQL クエリを生成するのに役立つ、検索拡張を使った Python パッケージです。Vanna は、データに対して RAG「モデル」をトレーニングしてから質問をするという 2 つの簡単なステップで機能し、それによりデータベースで自動的に実行するようにセットアップできる SQL クエリが返されます。
この記事では、Pythonでの仮想環境の概念を紹介します。仮想環境は、依存関係を管理してプロジェクトをOSから分離するために不可欠です。
仮想環境とは、次が含まれているフォルダのことです。
仮想環境により、OSのPythonインストールとその他のプロジェクトからプロジェクトを分離できるようになります。
仮想環境を使用するには、これらの手順に従います。
コミュニティのみなさまに嬉しいお知らせです。
今年冒頭より、InterSystems IRIS, InterSystems IRIS for Health, Health Connect 向けの多くのクライアントSDKが、各外部リポジトリ (Maven, NuGet, npm, PyPI)に公開されております。これにより、ユーザのみなさまに以下のような多くのメリットがあります。
モジュールは重要なテーマです! ObjectScriptにはこの概念はありませんが、Pythonでは基本的な考え方です。 一緒に見ていきましょう。
モジュールは、クラスとパッケージの間にある中間層だと私は考えています。 例を見てみましょう。
悪い例:
# MyClass.py
class MyClass:
def my_method(self):
print("Hello from MyClass!")
別のスクリプトでこのクラスを使用する場合、次のようになります。
# class_usage.py
from MyClass import MyClass # weird, right?
my_instance = MyClass()
my_instance.my_method()
なぜこれは悪い例なのでしょうか?
まず最初に、PEP 8によると、ファイル名は snake_case(スネークケース)にする必要があり、my_class.py にするべきです。
次に、クラスと同じ名前のファイルからクラスをインポートしています。 Phthonではこれは良いプラクティスではありません。
特に、ObjectScriptのようにクラスと同じ名前のファイルにクラスを定義する環境から来ると、これは分かりにくいかもしれません。
この記事では、PythonスタイルガイドであるPEP 8について簡単に紹介します。
簡単に言うと、PEP 8は、Pythonコードの書き方に関するガイドラインとベストプラクティスを提供します。
snake_case(スネークケース)にする必要がありますCamelCase(キャメルケース)にする必要がありますsnake_case(スネークケース)にする必要がありますUPPER_CASE(大文字)にする必要があります_)で始める必要があります
全部を覚える必要はありませんが、頭の片隅に入れておくと他人のコードを理解するのに役立ち、自分のコードも他の人にとって分かりやすくなります ^^。
また、pythonic という言葉を聞いたことがあるかもしれません。 PEP 8に従うことは、「pythonic」なコードを書く方法の一つです(それだけではありませんが、重要な要素です)。

新しい InterSystems IRIS® Cloud SQL と InterSystems IRIS® Cloud IntegratedML® クラウド製品のユーザーであり、デプロイメントのメトリクスにアクセスして独自の可観測性プラットフォームに送信しようと考えている方のために、メトリクスを Google Cloud Platform Monitoring(旧称 StackDriver)に送信して手っ取り早く行う方法をご紹介します。
この記事では、IRIS環境におけるPythonプログラミングの基礎について紹介します。
本題に入る前に、重要なトピックである「Pythonの仕組み」について説明します。これは、IRIS環境でPythonを使用して作業する際に起こりうる問題や制限を理解するのに役立ちます。
すべての記事と例は、以下のgitリポジトリで確認できます: iris-python-article
Pythonはインタープリター型言語であり、コードはランタイム時に1行ずつ実行されます。スクリプトをインポートする場合でも同様です。
これはどういうことでしょうか? 以下のコードを見てみましょう。
# introduction.py
def my_function():
print("Hello, World!")
my_function()
このスクリプトを実行すると、Pythonインタープリターはコードを1行ずつ読み取ります。 まず最初に関数 my_function を定義してから、その関数を呼び出すと、コンソールに「Hello, World!」と出力されます。
スクリプトを直接実行している例:
python3 /irisdev/app/src/python/article/introduction.py
出力は以下のようになります。
Hello, World!
この記事では、マジックメソッドとしても知られるPythonダンダーメソッドについて簡単に解説します。
ダンダーメソッドは、始めと終わりに2つのアンダースコア(__)が付いているPythonの特殊メソッドです。 このメソッドを使用することで、加算や減算、文字列表現など、組み込みの操作に対するオブジェクトの動作を定義することができます。
よくあるダンダーメソッドには、次が含まれます。
コミュニティの皆さんこんにちは。
ベクトル検索関連の処理が完全にノーマークだった私が、一先ず「やってみよう!」との事で、2つの動画のサンプルを実行してみました。
Pythonは初心者なので、アレな箇所があっても目をつぶっていただけると幸いです。
また、間違っている箇所があったら、ご指摘いただけると幸いです。
■参考にした動画
■参考にしたコミュニティ記事
本記事では、動画で紹介された内容を実際にIRIS環境上で実行できるよう、具体的な環境構築とコーディングを記載致します。
コミュニティの皆さんが簡単に試せるようになれば幸いです。
またGithubにサンプルソースを配置しているので、必要な方は参考にして下さい。
※環境作成方法に問題のない方は、読み飛ばしていただいて構いません。
| 項目 | バージョン情報・他 |
|---|---|
| OS | WIndowsServer2019 |
| IRIS | IRIS Community 2025.2.0.227.0 |
| Python | 3.12.10 |
| 開発環境 | VS Code 1.105.1 |
.pyファイルの中でIRISのEmbedded Pythonを動作させる際にirispythonコマンドで実行する方法はドキュメント上で紹介されていましたので、以前より使用していました。
しかし、普通のpythonコマンドを使用するとうまく実行できなかったのですが、最近その謎(原因)が解けたので紹介します。
これは、Mac特有の問題である可能性が高くWindowsやLinuxでは何の問題もなく実行できるのかもしれません。
エラーは以下のようなエラーです。
File "/opt/iris/lib/python/iris.py", line 34, in <module>
from pythonint import *
ImportError: IrisSecureStart failed: IRIS_ATTACH (-21)
このエラーの原因は、シェルの実行ユーザーとirisのオーナーが異なることが原因とのことです。
Macで普通にIRISをインストールするとそのオーナーはrootです。
従ってpython3コマンドを実行する時にsudoコマンドでrootになる必要があるということです。
そして以下のような環境変数の設定も必要です。
開発者の皆さん、こんにちは!
この記事では、Developer Hub にあるチュートリアルに新しいチュートリアル:InterSystems IRIS ベクトル検索を使用した RAG が追加されましたので内容をご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
このチュートリアルでは、生成 AI アプリケーションの精度向上に向けて、ベクトル検索と検索拡張生成(Retrieval Augmented Generation)の活用を体験できます。
具体的には、InterSystems IRIS のベクトル検索機能を活用し、生成 AI チャットボット向けのナレッジベースをサンプルコードを利用して作成します。
また、Streamlit を使用して作成したチャットボットを動かしながら、ナレッジベースの情報を追加することで生成 AI からの回答が変化していくことを確認していきます。
アカウント作成やログインも不要で
ボタンをクリックするだけで始められます👍
チュートリアルへのリンクは「開発者コミュニティのリソース」からも辿れます!
ぜひ、お試しください!
.png)
コミュニティの皆さん、こんにちは。
この記事では、私のアプリケーションである iris-AgenticAI をご紹介します。
エージェンティック AI の登場により、人工知能が世界とやりとりする方法に変革的な飛躍をもたらし、静的なレスポンスが動的な目標主導の問題解決にシフトしています。 OpenAI の Agentic SDK を搭載した OpenAI Agents SDK を使用すると、抽象化をほとんど行わずに軽量で使いやすいパッケージでエージェンティック AI アプリを構築できます。 これは Swarm という前回のエージェントの実験を本番対応にアップグレードしたものです。
このアプリケーションは、人間のような適応性で複雑なタスクの推論、コラボレーション、実行を行える次世代の自律 AI システムを紹介しています。
開発者の皆さん、こんにちは!
Windows 版 IRIS/IRIS for Health 2025.1 以降で Embedded Python をご利用いただく場合、Windows に Python のインストールが必要になりました。
以前のバージョンから Embedded Python をご利用いただいている場合は、新しいバージョンにアップグレードした後、Python のインストールと IRIS 側に必要な設定がありますのでご注意ください。
※ 2024.1 以前のバージョンでは、IRIS インストールと同時にインストールされる Python ご利用いただく必要があったため、Windows への Python インストールは不要でした。
補足:フレキシブル Python ランタイム機能の導入により、OS にインストールされた Python のバージョンを IRIS 側で指定できるようになりました。
詳細はドキュメントもご参照ください:フレキシブル Python ランタイム機能の概要
Embedded Python 利用までの手順は以下の通りです。
サポートしている Python のバージョンを確認します。(Windows は、Python 3.9以降)
これは InterSystems FAQ サイトの記事です。
InterSystems 製品では、ファイルオープン時に文字コードを指定すれば指定の文字コードで正しくファイルの中身を処理できます。
文字コードを指定しない場合、InterSystems 製品をインストールした OS に合わせて設定されたファイル I/O 用文字コードを利用してファイルをオープンします(Linux 系は UTF8、Windows は SJIS)。
また、文字列については文字コードが判明していれば $ZCONVERT() 関数を使用して指定文字コードで文字列を処理することができます。
例)$ZCONVERT(文字列,"I","IRIS内文字コード")
文字コードが不明な場合、残念ながら InterSystems 製品だけでそのコードを判別することができないため、例えば Embedded Python で Python の chardet パッケージを使用して文字コード判別し、IRIS 内文字コードを取得しファイルオープン、文字列の文字コード変換をすることができます。
chardetパッケージについては、外部サイトですが参考となります。ぜひご参照ください。
参考ページ:[解決!Python]テキストファイルのエンコーディングを調べて、その内容を読み込むには(chardetパッケージ)
次回の Python コンテストでは、Python を使用して IRIS をデータベースとして使用する簡単な REST アプリケーションを作成する方法についての小さなデモを作成しようと思います。 以下のツールを使用します。
Django フレームワークは長年学習したいと思ってきましたが、いつも他の差し迫ったプロジェクトが優先されてきました。 多くの開発者と同様に、機械学習においては Python を使用していますが、初めてウェブプログラミングについて学習したころは、PHP がまだまだ優勢でした。そのため、機械学習の作品を公開する目的でウェブアプリケーションを作成するための新しい複雑なフレームワークを選択する機会が訪れても、私は依然として PHP に目を向けていました。 ウェブサイトの構築には Laravel と呼ばれるフレームワークを使用してきましたが、この PHP フレームワークから最新の MVC(モデルビューコントローラー)というウェブプログラミングのパターンに出会いました。 さらに複雑なことに、私は最新の JavaScript フレームワークを使用してフロントエンドを構築するのを好んでいます。 React を使用するのがより一般的のようですが、私は Vue.js に一番慣れているため、このプロジェクトではそれを使用することにしました。
なぜ複雑なフレームワークを使用するのでしょうか? Django、Laravel、React、または Vue などのフレームワークを学習する際の最大の難関は何でしょうか?
これは、InterSystems FAQサイトの記事です。
メソッドの実装に使用する言語を明示する場合は、下記のようにメソッドキーワードで「Language=~~~」と指定します。
Method name(formal_spec) As returnclass [ Language = language ]
{ //implementation }指定できるLanguageの値は下記のとおりです。
上記の通り、ObjectScriptで記載する場合は、「Language=objectscript」と指定します。
但し、CSP内の<SCRIPT>タグ内で指定する場合は、下記の通り、「LANGUAGE=’cache’」と指定することにご注意ください。
<SCRIPT LANGUAGE='cache', ~~~>
※CSPページは、IRISでは非推奨の機能です。
これは、ネイティブウェブアプリケーションとして IRIS にデプロイできる Django アプリケーションのテンプレートです。
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
ベース URL は http://localhost:53795/django/ です。
/iris - IRISAPP ネームスペースに存在する上位 10 個のクラスを持つ JSON オブジェクトを返します。/interop - IRIS の相互運用性フレームワークをテストするための ping エンドポイント。/api/posts - Post オブジェクトの単純な CRUD エンドポイント。WSGI 導入記事をご覧ください: wsgi-introduction。
IRIS 2024.3 で発生する2つの製品障害が確認されました。お使いの環境が該当する場合は、それぞれの解決方法にしたがってご対応いただきますよう、よろしくお願いします。
これは、ネイティブウェブアプリケーションとして IRIS にデプロイできる FastAPI アプリケーションのテンプレートです。
git clone
cd iris-fastapi-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
ベース URL は http://localhost:53795/fastapi/ です。
/iris - IRISAPP ネームスペースに存在する上位 10 個のクラスを持つ JSON オブジェクトを返します。/interop - IRIS の相互運用性フレームワークをテストするための ping エンドポイント。/posts - Post オブジェクトの単純な CRUD エンドポイント。/comments - Comment オブジェクトの単純な CRUD エンドポイント。WSGI 導入記事をご覧ください: wsgiサポートの概要。