#Embedded Python

0 フォロワー · 75 投稿

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

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

記事 Toshihiko Minamoto · 4月 1, 2024 5m read

大規模言語モデル(OpenAI の GPT-4 など)の発明と一般化によって、最近までは手動での処理が非現実的または不可能ですらあった大量の非構造化データを使用できる革新的なソリューションの波が押し寄せています。 データ検索(検索拡張生成に関する優れた紹介については、Don Woodlock の ML301 コースをご覧ください)、センチメント分析、完全自律型の AI エージェントなど、様々なアプリケーションが存在します。

この記事では、IRIS テーブルに挿入するレコードに自動的にキーワードを割り当てる単純なデータタグ付けアプリケーションの構築を通じて、IRIS の Embedded Python 機能を使って、Python OpenAI ライブラリに直接インターフェース接続する方法をご紹介します。 これらのキーワードをデータの検索と分類だけでなく、データ分析の目的に使用できるる単純なデータタグ付けアプリケーションを構築します。ユースケースの例として、製品の顧客レビューを使用します。

要件

  • IRIS の実行インスタンス
  • OpenAPI API キー(こちらで作成できます)
  • 構成済みの開発環境(この記事では VS Code を使用します)

Review クラス

0
0 142
記事 Kosaku Ikeda · 10月 2, 2023 8m read

皆さまこんにちは。
IRIS for Healthを用いてFHIRの開発に携わっている者です。

FHIRリポジトリの導入を検討している方々に向けて、足がかり的な記事になればと思い投稿致します。

<アジェンダ>
■IISでの環境構築
■POSTMANを利用しないリソースへのデータアクセス
■Patientリソースの作成について
■FHIRリポジトリを使ってみての感想

■おまけEmbedded Pythonを使って、サンプルファイルからFHIRリソースへアクセスする方法

3
1 549
記事 Toshihiko Minamoto · 11月 15, 2023 9m read

前の記事 - AI による臨床文書の保管、取得、検索の単純化

この記事では、AI を使用した文字起こしと要約によってヘルスケアに変革を起こす OpenAI の高度な言語モデルの可能性を探ります。 OpenAPI の最先端 API を活用して、録音データを文字起こしし、自然言語処理アルゴリズムを使って簡潔な要約を生成するための重要なインサイトを抽出するプロセスを掘り下げていきます。

似たような機能は Amazon Medical Transcibe や Medvoice などの既存のソリューションでも提供されていますが、この記事では、OpenAI テクノロジーを使用してこれらの強力な機能を InterSystems FHIR に実装することに焦点を当てています。

Vue.js の録音データ

Vue.js アプリのボイスレコーダーは、完全にネイティブであり、Mediarecorder インターフェースを使って JavaScript で記述されています。 これは、アプリケーションを軽量に維持しながら、録音オプションを完全に制御できるようにすることを目的としています。 以下は、録音入力の開始と停止を行うスニペットです。

0
1 296
記事 Junichi Sakata · 11月 6, 2023 6m read

Python流行ってますよね。(一時は圧倒的な支配力のあったJavaも、O社に買われてライセンスが云々とか言われ始めた頃からブレーキが掛かってしまった気がします。)

Pythonの魅力の一つがパッケージで様々な機能が提供されていることがあげられるかなと思っています。

私もこれまでPythonのコードをそこそこ書いてきました。実のところ、ここ1年では間違いなくObject ScriptよりPythonのほうが書いた量が多いです。Excelのドキュメントがそれらよりも遥かに多いのは何とかしたいところですが😅

IRISと連携するため$ZF(-1)を使ってPythonプログラムをコールしているものもあります。

IRIS 2021.2からPythonがIRISにEmbedded Pythonとして組み込まれたということで、どのように使えるかを試してみました。

なお、使用した環境は以下です。

0
0 685
記事 Toshihiko Minamoto · 10月 26, 2023 4m read

問題

あわただしい臨床環境では迅速な意思決定が重要であるため、文書保管とシステムへのアクセスが合理化されていなければいくつもの障害を生み出します。 文書の保管ソリューションは存在しますが(FHIR など)、それらの文書内で特定の患者データに有意にアクセスして効果的に検索するのは、重大な課題となる可能性があります。

動機

AI により、文書の検索が非常に強力になりました。 ChromaLangchain のようなオープンソースツールを使用して、ベクトル埋め込みを保存して使用し、生成 AI API 全体でクエリを実行することで、ドキュメント上での質疑応答がかつてないほど簡単になっています。 より献身的に取り組む組織は、既存のドキュメントにインデックスを作成し、エンタープライズ用に微調整されたバージョンの GPT を構築しています。 GPT の現状に関する Andrej Karpathy の講演では、このトピックに関する素晴らしい概要が提供されています。

このプロジェクトは、医療関係者が文書を操作するあらゆるタッチポイントにおいて発生する摩擦を緩和する試みです。 医療関係者が情報を保管し、必要な情報を難なく検索できるように、入力と処理から保管と検索まで、IRIS FHIR と AI を活用しました。

ソリューション

0
0 168
お知らせ Mihoko Iijima · 8月 29, 2023

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

InterSystems Python プログラミングコンテスト 2023 のテクノロジーボーナス詳細が決定しました!

  • Embedded Python - 3
  • Python Native API  - 3
  • Python Pex Interoperability - 4
  • Python libs: sqlalchemy and dbt - 2
  • LLM AI or LangChain usage: Chat GPT, Bard and others - 4
  • NoObjectScriptLine - 5
  • Questionnaire - 2
  • Docker コンテナの利用 - 2 
  • ZPM Package によるデプロイ - 2
  • オンラインデモ - 2
  • コミュニティ(USコミュニティ)に記事を投稿する(最初の記事) - 2
  • コミュニティ(USコミュニティ)に2つ目の記事を投稿する - 1
  • YouTubeにビデオを公開 - 3

詳細は以下の通りです。<--break->

<--break->Embedded Python - 3 ポイント

応募されるアプリケーションに Embedded Python を使用している場合、4ポイント獲得できます。Embedded Python を利用する場合は、IRIS 2021.2以降のバージョンをご利用ください。

0
0 93
お知らせ Mihoko Iijima · 8月 8, 2023

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

次の InterSystems オンラインプログラミングコンテストは、Pythonに特化した内容を予定しています!

🏆 InterSystems Python プログラミングコンテスト 🏆

期間: 2023年9月4日~24日

賞金総額: $13,500

0
0 377
記事 Toshihiko Minamoto · 7月 24, 2023 8m read

Python は世界で最も使用されているプログラミング言語になり(出典: https://www.tiobe.com/tiobe-index/)、SQL はデータベース言語としての道をリードし続けています。 Python と SQL が連携して、SQL だけでは不可能であった新しい機能を提供できれば、素晴らしいと思いませんか? 結局のところ、Python には 380,000 を超える公開ライブラリがあり(出典: https://pypi.org/)、Python 内で SQL クエリを拡張できる興味深い機能が提供されています。 この記事では、Embedded Python を使用して、InterSystems IRIS データベースに新しい SQL ストアドプロシージャを作成する方法を詳しく説明します。

サンプルとして使用する Python ライブラリ

この記事では、IRIS で SQL を扱う人にとって非常に便利な GeoPy と Chronyk という 2 つのライブラリを使用します。 

Geopy は、ジオコーディング(住所と地理座標の修飾)を住所データに適用するために使用するライブラリです。 これを使用すると、通りの名前から郵便番号と完全な住所を郵便局の形式で取得することができます。 多くのレコードには住所が含まれるため、非常に便利です。

0
0 355
記事 Nobuyuki Hata · 7月 10, 2023 1m read

最近人気上昇中のプログラミング言語Python、ご存じのとおりIRISでは2通りの使い方が出来ます。

組み込みPython(Embedded Python)

PythonコードはIRISプロセス内でObjectScriptコードと並列に実行

具体的には

  1. IRISクラス内のメソッド
  2. SQL関数とストアドプロシージャ
  3. ターミナルからPythonシェルを起動
  4. irispythonコマンド実行

が該当します。

ネイティブAPI(Native API)

IRISの外からグローバルへのアクセス、クラスメソッドを呼び出し

上の4種類以外は全てネイティブAPIを使用します。

Pythonコードが実行される場所でIRISへのアクセス手段が決まりますが、ライブラリ名が双方とも”iris”のため注意が必要です。

* 従来からのirisnativeはDeprecated(非推奨)となりました

サンプルコードを探す時やドキュメントを参照する時、どちらのPython APIを使用しているか頭の片隅にあると予期せぬエラーに遭遇する機会が減るかも知れません。

組み込みPythonのirisパッケージ

 

組み込み Python | InterSystems IRIS Data Platform 2022.1
 

ネイティブSDKのirisパッケージ

0
0 357
記事 Toshihiko Minamoto · 7月 5, 2023 39m read

この記事では、InterSystems IRIS の学習に関連したトピックについて、開発者コミュニティでの厳選された記事にアクセスすることができます。機械学習や Embedded Python、JSON、API と REST アプリ、InterSystems環境の構築と管理、DockerとCloud、VSCode、SQL、Analytics/BI、グローバル、セキュリティ、DevOps、インターオペラビリティNative API、それぞれでランク付けされたトップの記事を見ることができます。ぜひ、楽しみながら学んでください!  

機械学習

機械学習は、高度なデータ分析を構築し、優れた効率で手動活動を自動化するための必須技術です。既存のデータから学習する認知モデルを作成し、自己調整されたアルゴリズムに基づいて予測、確率計算、分類、識別、「非創造的」な人間の活動の自動化を実行します。

0
1 228
質問 Yuji Ohata · 4月 13, 2023

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

現在、Embedded Pythonを用いて開発を行おうとしているのですが、
別のNMSPに存在するグローバルをiris.gref()で参照する方法がわかりませんでした。

> iris.gref("^[NMSP]GBL")   <-----こうしても自身のNMSPのグローバルを参照してしまう。

諦めてznでネームスペースを切り替えてみようかな、とも思ったのですが、
python上でznをかける方法もよくわからず、対応方法に悩んでいます。

どなたか、上記の対応方法についてご存じな方はいらっしゃいませんでしょうか?

5
1 203
記事 Toshihiko Minamoto · 6月 29, 2023 13m read

         

コミュニティの皆さん、こんにちは。
この記事では、InterSystems Embedded Python の使用方法を説明します。以下のトピックが含まれます。

  • 1- Embedded Python の概要
  • 2- Embedded Python の使用方法
    • 2.1- ObjectScript から Python ライブラリを使用する
    • 2.2- Python から InterSystems API を呼び出す
    • 2.3- ObjectScript と Python を同時に使用する
  • 3- Python 組み込み関数の使用
  • 4- Python モジュール/ライブラリ 
  • 5- Embedded Python のユースケース
  • 6- まとめ

では、概要から始めましょう。

 

1- Embedded Python の概要

0
0 497
お知らせ Mihoko Iijima · 6月 12, 2023

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

InterSystems グランプリコンテスト2023 では、InterSystems IRIS data platform を使用する機能であればどんな内容でもご応募いただけます。

以下の機能を含めた場合、ボーナスポイントを獲得できます。

詳細は以下の通りです。

0
0 100
記事 Mihoko Iijima · 6月 1, 2023 7m read

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

先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC

《サンプルのテーマ》

店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。

IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。
新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。

担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。

0
0 192
記事 Mihoko Iijima · 5月 30, 2023 2m read

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

%SYSTEMパッケージには沢山の便利なシステムクラスがあり、Embedded Pythonでも一般クラスと同様に%SYSTEMパッケージ以下クラスを操作できます(iris.cls("クラス名").メソッド名()で呼び出せます)。

ObjectScriptでは、$SYSTEM特殊変数を利用して、%SYSTEMパッケージ以下クラスのメソッドを呼び出すことができますが、Embedded Pythonでは、iris.system を利用して実行することができます。

以下実行例をご紹介します。

現在のネームスペースを取得する

一般クラスと同じ呼び出し方の例

iris.cls("%SYSTEM.SYS").NameSpace()

iris.systemを利用する例

iris.system.SYS.NameSpace()

 

binディレクトリのパスを返す

一般クラスと同じ呼び出し方の例

iris.cls("%SYSTEM.Util").BinaryDirectory()

iris.systemを利用する例

iris.system.Util.BinaryDirectory()

 

SQL関連をまとめたSQLクラスの例は以下の通りです。

YYYY-MM-DDから$horolog形式の日付を返す

一般クラスと同じ呼び出し方の例

0
0 120
記事 Toshihiko Minamoto · 5月 23, 2023 8m read

Web スクレイピングとは:

簡単に言えば、Web スクレイピングWeb ハーベスティング、または Web データ抽出とは、Web サイトから大量のデータ(非構造化)を収集する自動プロセスです。 ユーザーは特定のサイトのすべてのデータまたは要件に従う特定のデータを抽出できます。 収集されたデータは、さらに分析するために、構造化された形式で保存することができます。

Web スクレイピングの手順:

  1. スクレイピングする Web ページの URL を見つけます。
  2. 検査により、特定の要素を選択します。
  3. 選択した要素のコンテンツを取得するコードを記述します。
  4. 必要な形式でデータを保存します。

たったそれだけです!!

Web スクレイピングに使用される一般的なライブラリ/ツール

  • Selenium - Web アプリケーションをテストするためのフレームワーク
  • BeautifulSoup – HTML、XML、およびその他のマークアップ言語からデータを取得するための Python ライブラリ
  • Pandas - データ操作と分析用の Python ライブラリ

Beauthiful Soup とは?

0
0 402
記事 Toshihiko Minamoto · 5月 18, 2023 9m read

請求、支払いや領収、アイテムの配送や在庫を処理するアプリケーションでは、バーコードや QR コードの使用が必要となるのが一般的です。 単純なバーコードよりも多くの情報を格納できる QR コードは、さらに幅広いシナリオで使用されています。 したがって、バーコードと QR コードを生成する機能、またはそれらに格納されたデータを画像または PDF から読み取る機能が重要となります。 この記事では、Python と無料のライブラリを使用してこれを行う方法を説明します。

Pyzbar ライブラリ

pyzbar ライブラリは、zbar ライブラリを使って、Python 2 と 3 から 1 次元バーコードと QR コードを読み取ります。 以下の特徴が備わっています。

  • 純粋な Python。
  • PIL / Pillow 画像、OpenCV / ImageIO / NumPy ndarray、および raw バイトで動作。
  • バーコードの場所をデコード。
  • zbar ライブラリ以外の依存関係なし。
  • Python 2.7、Python 3.5~3.10 で検証済み。
詳細: https://github.com/NaturalHistoryMuseum/pyzbar/

Zbar ライブラリ

0
0 1573
記事 Toshihiko Minamoto · 5月 11, 2023 10m read

はじめに

データ分析は、急速に展開するこの時代において、ビジネス上の意思決定を行う上で欠かせない側面です。 組織はデータ分析に大きく依存して、十分な情報に基づく意思決定と競合優位の維持を行っています。 この記事では、Pandas と InterSystems Embedded Python を使ってデータ分析を実行する方法について説明します。 Pandas の基本、InterSystems Embedded Python を使用するメリット、および両方を組み合わせて有効なデータ分析を実行する方法について説明します。

0
0 313
記事 Mihoko Iijima · 2月 24, 2023 4m read

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

InterSystems デベロッパーツールコンテスト2023 の21の応募作品の中から、Experts Nomination 第4位に輝いた @Muhammad Waseem さんのiris-geo-map(インタラクティブに地図を生成し、地理データを視覚化するツール)についてご紹介します。

このツールは、Embedded Pythonを利用していて Folium Python ライブラリを使用されています。

特徴については @Muhammad Waseem さんの Open Exchange のREADMEもぜひご参照ください。

それでは、さっそく、使用開始までの手順です。(とても簡単です)

IPM(InterSystems Package Mangaer:以前はZPMとも呼ばれていました)のクライアントツールを管理ポータルかスタジオからインポートしたら、以下コマンドを実行するだけでツールの準備が整います。

クライアントツールのインポートはどのネームスペースでも大丈夫です。管理ポータルからインポートされる場合は、以下メニューを利用します。

管理ポータル→システムエクスプローラ→クラス→インポート対象ネームスペースを選択→インポートボタンクリック

ツールを配置したいネームスペースに移動し、ZPMコマンドを利用してインストールします。

0
0 274
記事 Toshihiko Minamoto · 1月 16, 2023 7m read

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

InterSystems IRIS で embedded python を使用する一般的なプロジェクトの出発点として推奨できる、最小限の embedded python テンプレート をご紹介しましょう。

特徴:

  • Embedded python対応
  • Embedded Pythonの3つの開発方法の例
  • VSCode開発対応
  • Dockerが利用可能
  • オンラインデモが可能
  • ZPM First開発対応。

以下、その特徴について説明しましょう。

0
0 205
記事 Toshihiko Minamoto · 12月 21, 2022 7m read

Django の可能性と IRIS の使用方法を引き続き観察しています。 初めにモデルの定義方法と、IRIS に存在しているテーブルへの接続方法を確認し、次に組み込みの Django 管理ポータルを拡張して、モデルに含まれるデータの表示、フィルタ、編集、そしてページネーションの機能を追加しました。

では、実際の動作を確認しましょう。posts-and-tags パッケージで使用したデータで Django に REST API を作成します。

それには、Django REST Framework を使用します。

Django REST Framework

Django REST Framework は、Web API を構築するための強力で柔軟性を備えたツールキットです。

REST Framework の使用を推奨するのには、以下のような理由があります。

  • Web で閲覧可能な API には、開発者のユーザビリティにおいて大きなメリットがあります。
  • OAuth1a と OAuth2 の認証ポリシーを含むパッケージ
  • ORM と非 ORM データソースの両方をサポートするシリアル化
  • すべてをカスタマイズ可能。強力な機能が必要なければ、通常の関数ベースのビューを使用できます。
  • 詳細なドキュメントと優れたコミュニティサポート
  • Mozilla、Red Hat、Heroku、Eventbrite など、世界的に有名な企業が使用・信頼
0
0 287
お知らせ Mihoko Iijima · 11月 10, 2022

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

開発者コミュニティのYouTubeプレイリストにEmbedded Pythonの新しいセルフラーニングビデオを公開しましたのでお知らせします📣!

◆ Embedded Pythonでデータベースプログラミング:オブジェクトアクセス編

※YouTubeに移動していただくとプレイリストの中から好きなビデオを選択してご覧いただけます。

0
0 135
お知らせ Mihoko Iijima · 11月 7, 2022

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

開発者コミュニティのYouTubeプレイリストに新しいセルフラーニングビデオを公開しましたのでお知らせします📣!

◆ IRISでPythonを使ってみよう!

※YouTubeに移動していただくとプレイリストの中から好きなビデオを選択してご覧いただけます。

0
0 228
記事 Toshihiko Minamoto · 10月 25, 2022 8m read

私が一番興味を持っているのは、組み込み Python におけるグローバルの使用についてです。
そこで、提供されている公式ドキュメントを確認しました。

#1 グローバルの導入
グローバルとは何かについての一般的な説明。 次の章につながっています。

#2 ObjectScript の詳細について
組み込み Python の記述はありません。
さらに先に進むと...

#3 組み込み Python

3.1 組み込み Python の概要
3.1.1 グローバルの使用

グローバルを使ったことなければ、素晴らしい内容です。
が、驚くほど原始的な例が使われています。
3.2 組み込み Python の使用
最後の望み: >>> でも、目に見えるものが何もありません
残念どころではありません! Python 用の IRIS Native API でさえ、もっと説明されています。
何を期待していたかと言うと...

グローバルノードの SET、GET、KILL

Native API: 基本的なノード操作  そして

$DATA()、$ORDER()、$QUERY() によるナビゲーション

Native API: nextSubscript() と isDefined() によるイテレーション
そこで、自分で調査し、リバースエンジニアリングを行って、実験しなければなりませんでした。

そしてわかったこと:

0
1 295
記事 Toshihiko Minamoto · 10月 5, 2022 4m read

IRIS における Python サポートの最近の改善と、InterSystems による Python DB-API サポートへの継続的な作業により、 Django プロジェクトに IRIS サポートを実装しました。Python DB-API の使用により、他のデータベースと連携することが可能です。

Django で、IRIS にデータを保存する単純なアプリケーションを試してみましょう。

ToDo アプリ

0
0 343
記事 Toshihiko Minamoto · 9月 26, 2022 8m read

プログラムによる本番環境アクセス

プログラムで本番環境(インターフェース)を編集するには、相互運用性 apis と SQL クエリを組み合わせて使用できます。

現在のネームスペース

大まかに言えば、その時点で作業しているネームスペースと本番環境を知ることが重要です。

// Object script 
// アクティブなネームスペースはこの変数に格納される
$$$NAMESPACE 
// ネームスペースを出力
Write $$$NAMESPACE
# Python
import iris
# このメソッドからアクティブなネームスペースが返される
iris.utils._OriginalNamespace()
# ネームスペースを出力
print(iris.utils._OriginalNamespace())
>>> DEMONSTRATION

現在の本番環境(アクティブまたは最後に実行した本番環境)

本番環境の名前を知ることも重要です。次の API を使用してネームスペース内のアクティブな本番環境を取得できます。

0
0 190
記事 Toshihiko Minamoto · 9月 10, 2022 49m read

このフォーメーション私の GitHub にあり、30 分で csv ファイルと txt ファイルの読み取りと書き込み方法、Postgres を使ったIRIS データベースリモートデータベースの挿入とアクセス方法、FLASK API の使用方法について説明します。これらすべてに、PEP8 命名規則に従った、Python のみのインターオペラビリティフレームワークを使用します。

このフォーメーションは、ほとんどをコピー&ペースト操作で実行でき、グローバル演習を行う前に、ステップごとの操作が説明されています。
記事のコメント欄、Teams、またはメール(lucas.enard@intersystems.com)でご質問にお答えします。

このフォーメーションに関するあらゆる点において、ご意見やご感想をお送りいただけると幸いです。

1. Ensemble / Interoperability のフォーメーション

このフォーメーションでは、Python および特に以下を使用した InterSystems のインターオペラビリティフレームワークを学習することを目標としています。

  • 本番環境
  • メッセージ
  • ビジネスオペレーション
  • アダプター
  • ビジネスプロセス
  • ビジネスサービス
  • REST サービスと運用

目次:

0
0 230
お知らせ Mihoko Iijima · 8月 1, 2022

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

InterSystems 技術文書ライティングコンテスト: Python エディションでは、素晴らしい記事の投稿がありました!

🌟 12 の投稿はこちら! 🌟

この記事ではコンテスト受講者を発表します 📢​​​​​​

0
0 110
記事 Megumi Kakechi · 7月 26, 2022 5m read

Embedded Python で Excel のデータを IRIS グローバルに格納する方法 では Excel データを pandas.DataFrame に取り込んで、それを InterSystems IRIS グローバルに保存する方法をご紹介しました。

今回は「lxml を使用し Web スクレイピングした表(テーブル)のデータを InterSystems IRIS グローバルに格納する」方法をご紹介します。


※以下は Windows 上の IRIS でのインストール方法になります。
 UNIX ベースのシステムでは、pip3 コマンドを使用してインストールします。詳細は ドキュメント をご覧ください。

最初に、irispip コマンドで必要なライブラリをインストールします。
今回は、pandas、lxml の2つのライブラリをインストールします。

>cd C:\InterSystems\IRIS\bin
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python pandas
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python lxml
0
0 278