#Embedded Python

0 フォロワー · 79 投稿

Embedded Python は InterSystems IRIS カーネルへ Python プログラミング言語を組み込み、開発者が Python を使用してデータを処理し、サーバーサイドアプリケーションのビジネスロジックを開発できるようにするものです。

ドキュメントはこちらです

記事 Mihoko Iijima · 1月 28 7m read

開発者の皆さん、こんにちは!

この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。

前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!

0
0 59
記事 Toshihiko Minamoto · 1月 14 10m read

Googleフォームは、データ収集、アンケートやクイズへの回答を行うための市場で最も人気のソリューションです。そのため、システムを拡張または開発することなく、患者データや回答を実用的な方法で収集するのに理想的な手段と言えます。本記事では、Google Cloudにアカウントを作成し、Google Forms APIを利用するアプリケーションを登録します。また、APIを利用するためのサービスユーザーを生成して、最後にEmbedded PythonとIRISを用いて新しいフォームを作成し、入力されたデータを自動的に収集する方法ついて詳しく説明します。

Google Cloudアカウントの作成

Google Cloudアカウントをお持ちでない場合、これらの手順に従ってください。すでにお持ちの場合は、次のセクションに進みます。
Google Cloud Platform(GCP)アカウントを作成するには、最初にGoogleアカウントを作成する必要があります。 次に、Google Cloudコンソールにサインインし、無料枠を利用開始するか、課金アカウントを作成できます。 ステップバイステップガイドは次のとおりです。
1.    Google Cloudコンソールに移動する。cloud.google.comにアクセスします。
2.    Googleアカウントにサインインする。

0
0 42
記事 Hiroshi Sato · 12月 8, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

PythonからIRISにアクセスするためのNative SDK for Pythonと呼ばれるインタフェースが用意されています。

Javaや.Net用に用意されているNative SDKと同等な機能が提供されています。

(一部異なる機能があります)。

また、Python用にはEmbedded Pythonと呼ばれるIRISと密に連携した機能があります。

IRISから最大限の性能を得るためには、Embedded Pythonが適していますが、以下のような場合、Native SDKが適しているケースもあります。

  1. 異なるサーバーでIRISとPythonプログラムが連携する必要がある。
  2. 同一サーバー上でIRISとPythonが稼働するが、システムが異なる(サブシステム間連携など)
  3. システムを別々の開発ベンダーが構築するなど、明確な境界を設けたい場合

Native SDKを利用することで以下のようなことを実装することができます。

  1. ObjectScriptやEmbedded Pythonで作成したメソッドの実行
  2. IRISオブジェクトの操作
  3. IRISグローバルデータの操作
  4. DBI-APIによるデータベースアクセス


以下からこれらのサンプルプログラムを取得することができます。

0
0 59
記事 Hiroshi Sato · 12月 8, 2025 1m read

これは InterSystems FAQ サイトの記事です。
 

.NETからIRISにアクセスするためのNative SDK for .NETと呼ばれるインタフェースが用意されています。

JavaやPython用に用意されているNative SDKと同等な機能が提供されています。

(一部異なる機能があります)。

    Native SDKを利用することで以下のようなことを実装することができます。

    1. ObjectScriptやEmbedded Pythonで作成したメソッドの実行
    2. IRISオブジェクトの操作
    3. IRISグローバルデータの操作
    4. ADO.NETによるデータベースアクセス

    以下からこれらのサンプルプログラムを取得することができます。

    Native SDK for .NETサンプル1

    Native SDK for .NETサンプル2

    .NETに様々な手段でアクセスするサンプル


    詳細は、以下のドキュメントをご参照ください。

    InterSystems Native SDK for .NET

    0
    0 59
    記事 Hiroshi Sato · 6月 22, 2025 1m read

    .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になる必要があるということです。

    そして以下のような環境変数の設定も必要です

    3
    0 122
    記事 Toshihiko Minamoto · 10月 7, 2025 9m read

    コミュニティの皆さん、こんにちは。
    この記事では、私のアプリケーションである iris-AgenticAI をご紹介します。

    エージェンティック AI の登場により、人工知能が世界とやりとりする方法に変革的な飛躍をもたらし、静的なレスポンスが動的な目標主導の問題解決にシフトしています。 OpenAI の Agentic SDK を搭載した OpenAI Agents SDK を使用すると、抽象化をほとんど行わずに軽量で使いやすいパッケージでエージェンティック AI アプリを構築できます。 これは Swarm という前回のエージェントの実験を本番対応にアップグレードしたものです。
    このアプリケーションは、人間のような適応性で複雑なタスクの推論、コラボレーション、実行を行える次世代の自律 AI システムを紹介しています。

    アプリケーションの機能

    • エージェントループ  🔄 ツールの実行を自律的に管理し、結果を LLM に送信して、タスクが完了するまで反復処理するビルトインのループ。
    • Python-First 🐍 ネイティブの Python 構文(デコレーター、ジェネレーターなど)を利用して、外部の DSL を使用せずにエージェントのオーケストレーションとチェーンを行います。
    • ハンドオフ 🤝 専門化されたエージェント間でタスクを委任することで、マルチエージェントワークフローをシームレスに調整します。
    • 関数ツール ⚒️ @tool で Python 関数をデコレートすることで、エージェントのツールキットに即座に統合させます。
    • ベクトル検索(RAG) 🧠 RAG 検索のためのベクトルストアのネイティブ統合。
    • トレース 🔍 リアルタイムでエージェントワークフローの可視化、デバッグ、監視を行うためのビルトインのトレース機能(LangSmith の代替サービスとして考えられます)。
    • MCP サーバー 🌐 stdio と HTTP によるモデルコンテキストプロトコル(MCP)で、クロスプロセスエージェント通信を可能にします。
    • Chainlit UI 🖥️ 最小限のコードで対話型チャットインターフェースを構築するための統合 Chainlit フレームワーク。
    • ステートフルメモリ 🧠 継続性を実現し、長時間実行するタスクに対応するために、セッション間でチャット履歴、コンテキスト、およびエージェントの状態を保持します。
    0
    0 77
    記事 Toshihiko Minamoto · 10月 1, 2025 6m read

    コミュニティの皆さん、こんにちは。
    従来のキーワードベースの検索では、ニュアンスのあるドメイン固有のクエリには対応できません。 ベクトル検索であれば、セマンティック認識を利用して、キーワードだけでなくコンテキストにも基づいたレスポンスを AI エージェントで検索して生成することができます。
    この記事では、エージェンティック AI RAG(検索拡張生成)アプリケーションを作成手順を紹介します。

    実装手順:

    1. エージェントツールを作成する
      • インジェスト機能の追加: ドキュメント(例: InterSystems IRIS 2025.1 リリースノート)を自動的にインジェストしてインデックス作成を行います。
      • ベクトル検索機能の実装
    2. ベクトル検索エージェントを作成する
    3. Triage(メインエージェント)に渡す
    4. エージェントを実行する
    0
    0 70
    記事 Toshihiko Minamoto · 9月 30, 2025 6m read

    この連載記事を終えていなかったことに気付きました!

    GIF de Shame On You Meme | Tenor

    今日の記事では、フロントエンドから最適なオプションを選択できるように、テキストに最も類似する ICD-10 診断を抽出するプロダクションプロセスについて説明します。

    診断の類似度検索:

    アプリケーション内で、HL7 で受け取った診断リクエストを示す画面から、医療従事者が入力したテキストに最も近い ICD-10 診断を検索できます。

    検索プロセスを高速化するために、HL7 メッセージを取得する際に受信した診断をベクトル化したテキストをデータベースに保存しました。 これを行うために、メッセージから診断コードを抽出し、ベクトルを生成するメソッドにそれを送信する単純な BPL を実装しました。

    受信した診断をベクトル化するコードは以下のようになります。

    ClassMethod GetEncoding(sentence As %String) As %String [ Language = python ]
    {
    import sentence_transformers
    # create the model and form the embeddings
    model = sentence_transformers.SentenceTransformer('/iris-shared/model/')
    embeddings = model.
    0
    0 49
    記事 Mihoko Iijima · 8月 7, 2025 4m read

    開発者の皆さん、こんにちは!

    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 利用までの手順は以下の通りです。

    1) サポートする Python のバージョンを確認

    サポートしている Python のバージョンを確認します。(Windows は、Python 3.9以降)

    https://docs.intersystems.

    0
    3 165
    記事 Mihoko Iijima · 7月 3, 2025 4m read

    これは InterSystems FAQ サイトの記事です。

    InterSystems 製品では、ファイルオープン時に文字コードを指定すれば指定の文字コードで正しくファイルの中身を処理できます。

    文字コードを指定しない場合、InterSystems 製品をインストールした OS に合わせて設定されたファイル I/O 用文字コードを利用してファイルをオープンします(Linux 系は UTF8、Windows は SJIS)。

    また、文字列については文字コードが判明していれば $ZCONVERT() 関数を使用して指定文字コードで文字列を処理することができます。

     例)$ZCONVERT(文字列,"I","IRIS内文字コード")

    文字コードが不明な場合、残念ながら InterSystems 製品だけでそのコードを判別することができないため、例えば Embedded Python で Python の chardet パッケージを使用して文字コード判別し、IRIS 内文字コードを取得しファイルオープン、文字列の文字コード変換をすることができます。

    chardetパッケージについては、外部サイトですが参考となります。ぜひご参照ください。

    参考ページ:[解決!Python]テキストファイルのエンコーディングを調べて、その内容を読み込むには(chardetパッケージ)

    以下、具体的な処理内容です。

    0
    1 195
    InterSystems公式 Masahito Miura · 3月 27, 2025

    インターシステムズは、InterSystems IRIS®data platformInterSystems IRIS® for HealthTM、および HealthShare® Health Connect の 2025.1 リリースを一般提供 (GA) したことを発表しました。2025.1 は、拡張メンテナンス(EM)リリースです。
    リリースハイライト
    今回のリリースには、以下のような数々の興味深いアップデートが含まれます:

    1. 高度なベクトル検索機能
      • 新しいディスクベースの近似最近傍探索 (ANN) インデックスにより、ベクトル検索クエリが大幅に高速化され、数百万のベクトルに対して秒以下の応答が得られます。詳しくは、次の演習 - Vectorizing and Searching Text with InterSystems SQL をご覧ください。
    2. ビジネス・インテリジェンスの強化
      • IRIS BI キューブの構築と同期における自動依存関係分析により、複雑なキューブの依存関係における一貫性と整合性が保証されます。
    3. SQL とデータ管理の向上
      • 標準 SQL ページネーション構文 (LIMIT.、OFFSET.、OFFSET.
    0
    0 172