記事 Toshihiko Minamoto · 2024年4月18日 13m read レシピデータセットを外部テーブルで読み込み、組み込みPythonでLLMを使って分析する (Langchain + OpenAI) 我々には、Redditユーザーが書いた、おいしいレシピデータセット がありますが, 情報のほとんどは投稿されたタイトルや説明といったフリーテキストです。埋め込みPythonやLangchainフレームワークにあるOpenAIの大規模言語モデルの機能を使い、このデータセットを簡単にロードし、特徴を抽出、分析する方法を紹介しましょう。 データセットのロード まず最初に、データセットをロードするかデータセットに接続する必要があります。 #AI #Code Snippet #CSV #Embedded Python #JSON #ObjectScript #Python #SQL #ターミナル #InterSystems IRIS 0 0 0 24
記事 Toshihiko Minamoto · 2024年4月1日 5m read Embedded Python と OpenAI API を使った IRIS でのデータのタグ付け 大規模言語モデル(OpenAI の GPT-4 など)の発明と一般化によって、最近までは手動での処理が非現実的または不可能ですらあった大量の非構造化データを使用できる革新的なソリューションの波が押し寄せています。 データ検索(検索拡張生成に関する優れた紹介については、Don Woodlock の ML301 コースをご覧ください)、センチメント分析、完全自律型の AI エージェントなど、様々なアプリケーションが存在します。 #AI #API #Embedded Python #ObjectScript #Python #分析 #非構造化データ #InterSystems IRIS 0 0 0 22
記事 Toshihiko Minamoto · 2024年3月28日 12m read 150 行未満のコードで IRIS クロスファンクショナルアプリを作成する ローコードへの挑戦 こんな状況を思い浮かべてください。「ウィジェットダイレクト」というウィジェットとウィジェットアクセサリーを販売する一流のネットショップで楽しく勤務しています。先日、上司から一部の顧客がウィジェット商品にあまり満足していないという残念な話を聞き、苦情を追跡するヘルプデスクアプリケーションが必要となりました。さらに面白いことに、上司はコードのフットプリントを最小限に抑えることを希望しており、InterSystems IRIS を使って 150 行未満のコードでアプリケーションを提供するという課題をあなたに与えました。これは実際に可能なのでしょうか? 免責事項: この記事は、非常に基本的なアプリケーションの構築を記すものであり、簡潔さを維持するために、セキュリティやエラー処理などの重要な部分は省略されています。このアプリケーションは参考としてのみ使用し、本番アプリケーションには使用しないようにしてください。この記事ではデータプラットフォームとして IRIS 2023.1 を使用していますが、それ以前のバージョンでは記載されているすべての機能が提供されているとは限りません。 #JSON #ObjectScript #REST API #SQL #キューブ # データのインポートとエクスポート #分析 #相互運用性 #管理ポータル #InterSystems IRIS Open Exchange app 1 1 0 32
記事 Mihoko Iijima · 2022年12月7日 1m read ObjectScript クックブック 開発者の皆さん、こんにちは! InterSystems全製品のサーバ側コードで利用できる「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方など、日本語ドキュメントの逆引きになるようなページを目指して、「ObjectScriptクックブック」を作成しました! - ObjectScriptの基本の「き」 Hello Worldの出力から始めたい方に最適です。 2024/3/25更新:8. デバッグ方法 を追加しました。ぜひご参照ください。 - CookBook(こんなときどうする?集) ObjectScriptの記述に困ったときに読んでいただけるヒント集です。コミュニティに寄せられたご質問をどんどん掲載していきます。 - ObjectScriptでエラーが発生したら ObjectScriptのプログラムでエラーが発生したときのエラーメッセージの読み方から、エラー情報の取得方法などを解説しています。 #ObjectScript #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 4 1 0 266
記事 Megumi Kakechi · 2024年3月11日 2m read SQLのINSERT/UPDATE文でデータ更新時にインデックスを作成しない方法 これは InterSystems FAQ サイトの記事です。 SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。 1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する 2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする 1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。 クエリ実行例は、以下のようになります。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 62
記事 Mihoko Iijima · 2024年3月11日 2m read Embedded Pythonで$LIST()形式のデータを扱う方法 これは InterSystems FAQ サイトの記事です。 現時点(2024年3月)では、コミュニティに掲載されているPythonライブラリ「iris-dollar-list」を利用することでIRISの$LIST()形式のデータをPythonのリストとして利用することができます。 ※標準ツールではありませんがご利用いただけます。詳細はコミュニティの記事「もう1つの $ListBuild() の実装:Pythonライブラリ「iris-dollar-list」」をご参照ください。 WindowsにインストールしたIRISで使用する場合は、以下の方法で「iris-dollar-list」をインストールしてください。 ※Windows以外にインストールしたIRISでは、pipコマンドを利用した通常の方法でインストールできます。 #Embedded Python #ObjectScript #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 28
記事 Mihoko Iijima · 2024年2月27日 7m read REST経由で情報を入力する場合の Interoperability(相互運用性機能)のサンプル これは InterSystems FAQ サイトの記事です。 InterSystems製品のInteroperability(相互運用性機能)を利用する際、REST経由で情報入力を行う場合の作成方法についてサンプルプロダクションを利用しながらご紹介します。 サンプルはこちら👉https://github.com/Intersystems-jp/FAQ-Interop-REST 作成概要 サンプルプロダクションの流れ 作成方法 サンプルのインポート #ObjectScript #REST API #ヒントとコツ #ビジネスサービス #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 44
記事 Mihoko Iijima · 2024年1月18日 5m read Webサーバ(IISやApache)を利用してVSCodeからInterSystemsサーバに接続するときの注意点(バージョン2023.1以下) 開発者の皆さん、こんにちは! VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。 (*1) プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです) 対象バージョン:2023.1以下のInterSystems製品 追加が必要なパス: /api #ObjectScript #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #VSCode 0 0 0 129
記事 Toshihiko Minamoto · 2023年12月20日 15m read Dockerfile と共同開発ユーザー。InterSystems IRIS で ObjectScript プロジェクトの共同作業を実行するには 開発者の皆さん、こんにちは! 多くの方が、Open Exchange と GitHub で InterSystems ObjectScript ライブラリを公開しています。 でも、開発者がプロジェクトの使用とコラボレーションを簡単に行えるようにするにはどうしていますか? この記事では、ファイルの標準セットをリポジトリにコピーするだけで、ObjectScript プロジェクトを簡単に起動して作業する方法をご紹介します。 では始めましょう! #Docker #Git #ObjectScript #チュートリアル #ベストプラクティス #開発環境 #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 50
記事 Mihoko Iijima · 2023年10月10日 15m read 複雑なJSONの生成に便利な「JSONテンプレートエンジン」の使い方ご紹介 開発者の皆さん、こんにちは。 この記事では、複雑なJSON形式の文書を「JSONテンプレートエンジン」を利用して生成させる方法をご紹介します。 「JSONテンプレートエンジン」については、6月のウェビナーで使用例をご紹介しましたが、JSON生成対象として医療情報交換標準規格であるFHIRリソースのJSON(例:Patientリソース)を例に解説しています。 このエンジンは、JSON形式の文書であればどのような種類のデータでもご利用いただけますので、一般的なJSON形式の文書を利用して使い方をご紹介します。 #JSON #ObjectScript #オブジェクトデータモデル #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 425
記事 Mihoko Iijima · 2023年9月20日 2m read VSCode:エラー発生行に移動する方法 開発者の皆さん、こんにちは! ObjectScriptのコード実行中にエラーが発生した場合 "<UNDEFINED>HelloWorld+2^Simple.Demo.1 *name" のようなエラーメッセージが表示されます。 エラーメッセージの読み方については、ObjectScriptクックブックの「ObjectScriptでエラーが発生したら」のエラーメッセージの読み方 をご参照ください。 エラー行の特定を行う際、VSCodeのコマンドパレットを利用すると簡単に対象行にジャンプできますので、以下、方法をご紹介します。 1)VSCodeのView→Command Palette... を開きます。 2) 「ObjectScript:Open Error Location...」を選択します(初回は表示項目に登場しないため > の後ろに ObjectScript と入力すると表示されます)。 3) テキストボックスが表示されるので、エラーメッセージの出力情報の中から ラベル名+行数^生成ルーチン名 をコピーして貼り付け、Enterをクリックします。 ※スタジオにも同様の機能がありますが、VSCodeの場合対象となるコード(生成コードの元コード)をVSCode上で表示していなくても対象となる生成ルーチンを開きエラー行をポイントしてくれます。 #ObjectScript #ヒントとコツ #開発環境 #InterSystems IRIS #InterSystems IRIS for Health #VSCode 3 0 0 266
記事 Mihoko Iijima · 2023年9月18日 4m read VSCode:管理ポータルやスタジオにある「XMLファイルのインポート/エクスポート 」が追加されました 開発者の皆さん、こんにちは! スタジオを利用されている方にはお馴染みのソースコードの「XMLファイルへのエクスポート/インポート機能」がVSCodeのObjectScriptエクステンションに追加されました! (ObjectScript 2.10.0以降に含まれています。こちらのリクエストが元となりました👉https://github.com/intersystems-community/vscode-objectscript/issues/1158 エクステンションの追加番号は#1171です) 今まで、過去エクスポートしたXMLファイルをVSCodeから参照するためには、管理ポータル(またはスタジオ)を利用してインポートする必要がありましたが、VSCodeの画面だけでできるようになりました! 💡注意1: InterSystems IRIS /InterSystems IRIS for Health 2023.2以降のバージョンに接続した状態でご利用いただける機能です。 💡注意2:この機能は管理ポータルやスタジオのインポート/エクスポートのVSCode版のような機能となるため、インポートしたソースコードはサーバ側にインポートされ、エクスポートはサーバ側コードを選択してXMLファイルにエクスポートする動作となります。XMLファイルインポート後、VSCodeのワークスペースでローカルファイル(*.cls や *.mac)として編集 したい場合は、 ObjectScriptエクステンションマークをクリックし、対象のコードを選択→エクスポート の手順でローカルにエクスポートする必要があります。 #ObjectScript #ヒントとコツ #開発環境 #InterSystems IRIS #InterSystems IRIS for Health #VSCode 2 0 0 221
記事 Megumi Kakechi · 2023年8月1日 2m read BACK^%ETN でスタックトレースを確認する方法 あるメソッドやルーチンを実行してエラーとなった場合、エラー発生個所はエラーメッセージより取得することができますが、処理の呼び出し履歴(スタックトレース)はエラーメッセージのみではわかりません。また、.Net や Python など IRIS 外からの呼び出しの場合に、エラー情報の詳細がクライアントに返らない場合などもあるかと思います。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 82
記事 Megumi Kakechi · 2021年3月2日 2m read $ZF(-100) で実行したコマンドの出力を取得する方法 これは InterSystems FAQ サイトの記事です。※記事後半に、「2>&1」で 標準エラー出力(2) を 標準出力(1) にリダイレクトする方法を追記しました。 $ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。 詳細は、以下ドキュメントをご参照ください。 コマンド・パイプ デバイスを使用する方法について こちらを %File クラスで使用した例が以下になります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 378
記事 Megumi Kakechi · 2023年2月6日 4m read ファイル操作関連のTips ファイルとディレクトリの操作に使用できる API 、%Library.File クラス (%File が省略形) の便利なサンプルコードをご紹介します。 こちらのAPIを使用して、ディレクトリやファイルの中身をのぞいたり、作成・書込み・読込みを行ってみます。 ★ディレクトリ内のファイル一覧をリストする 以下のサンプルは、C:\temp フォルダ内の *.txt ファイルをリストします(ファイルパス_サイズ_作成日)。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 1 0 372
記事 Megumi Kakechi · 2023年7月11日 3m read エラーのステータス値を表示する方法 クラスメソッドの多くは、%Status データ型を使用して、成功 または 失敗 の情報を返します。成功の場合は 1 が返り、失敗の場合はエラーステータス および 1 つ以上のエラーコードとテキストメッセージを含むエンコードされた文字列が返ります。このようなメソッドでは、戻り値を必ず取得して確認するようにしてください。 こちらの記事では、失敗の場合の具体的なエラー情報を確認する方法をご紹介します。 #ObjectScript #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 100
記事 Toshihiko Minamoto · 2023年7月5日 39m read 開発者コミュニティの記事によるInterSystems IRISの学習 この記事では、InterSystems IRIS の学習に関連したトピックについて、開発者コミュニティでの厳選された記事にアクセスすることができます。機械学習や Embedded Python、JSON、API と REST アプリ、InterSystems環境の構築と管理、DockerとCloud、VSCode、SQL、Analytics/BI、グローバル、セキュリティ、DevOps、インターオペラビリティNative API、それぞれでランク付けされたトップの記事を見ることができます。ぜひ、楽しみながら学んでください! 機械学習 機械学習は、高度なデータ分析を構築し、優れた効率で手動活動を自動化するための必須技術です。既存のデータから学習する認知モデルを作成し、自己調整されたアルゴリズムに基づいて予測、確率計算、分類、識別、「非創造的」な人間の活動の自動化を実行します。 #Docker #Embedded Python #ObjectScript #REST API #SQL #クラウド #グローバル #分析 #機械学習 #InterSystems IRIS 0 0 1 122
記事 Seisuke Nakahashi · 2023年6月29日 1m read BOMつきUTF-8をObjectScriptで読む BOMつきのUTF-8ファイルを、ObjectScriptで読むとき、どんなコードを書くべきでしょうか? そんなときは、 %Stream.FileCharacter クラスを利用するのが便利です。 #ObjectScript #InterSystems IRIS 3 0 0 123
記事 Mihoko Iijima · 2023年6月6日 5m read ルーチン/クラスの一括コンパイルの結果からエラー情報を取得する方法 これは InterSystems FAQ サイトの記事です。 ターミナルでルーチンやクラスのコンパイルを行う際、コンパイル結果が画面に表示されるのでエラーが発生した場合でも確認しやすいですが、一括コンパイルの場合は、大量のコンパイル結果の中にエラー情報が含まれてしまうためエラー情報だけを取得したい場合には少し工夫が必要です。 以下、ルーチン/クラスの一括コンパイル時の結果からエラー情報を取得する方法をご紹介します。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 136
記事 Toshihiko Minamoto · 2023年5月23日 8m read Embedded Python による Web スクレイピングの基礎 - Python のお仕事を抽出しよう Web スクレイピングとは: 簡単に言えば、Web スクレイピング、Web ハーベスティング、または Web データ抽出とは、Web サイトから大量のデータ(非構造化)を収集する自動プロセスです。 ユーザーは特定のサイトのすべてのデータまたは要件に従う特定のデータを抽出できます。 収集されたデータは、さらに分析するために、構造化された形式で保存することができます。 Web スクレイピングの手順: #Embedded Python #ObjectScript #ベストプラクティス #InterSystems IRIS for Health 1 0 0 247
記事 Megumi Kakechi · 2023年5月15日 2m read グローバルの kill で <SLMSPAN> エラーとなる原因と対処方法 これは InterSystems FAQ サイトの記事です。 サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。 これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 60
記事 Megumi Kakechi · 2023年5月1日 6m read 一時グローバルと IRISTEMP データベースについて IRISTEMPというデータベースをご存じでしょうか? 特定の処理に対してデータを無期限に保存する必要がなく、「同一プロセス内でのみ使用したい場合」や「IRISが起動中のみ使用したい場合」に、IRISTEMPデータベースに保存されるグローバルを使用できます。IRISTEMPデータベースに保存されるグローバルに対する操作は ”一切ジャーナルされない” ため、効率性を最大限にしたい作業に使用できます。 IRISTEMPデータベースに保存されるグローバル(データ)には、以下の種類があります。 #ObjectScript #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 163
記事 Megumi Kakechi · 2023年3月28日 3m read テーブル名、カラム名、インデックス名の変更方法 これは InterSystems FAQ サイトの記事です。 テーブル名/カラム名/インデックス名を変更したい場合、以下のケース別に変更方法をご案内します。 A. テーブル名・カラム名の変更B. インデックス名の変更 -------------------------------------------------------------------------A. テーブル名・カラム名の変更する方法------------------------------------------------------------------------- #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 142
InterSystems公式 Toshihiko Minamoto · 2023年3月12日 3m read クラスの生成方法、呼び出し方法の変更(IRIS 2023.1~) IRIS 2023.1でのメソッドコードの生成と呼び出し方法の変更について、お知らせしたいと思います。 IRIS のクラスは、2 つの主要なランタイムコンポーネントで構成されています。 クラスディスクリプタ - クラスを構成するメソッド、プロパティ、クラスパラメータ、およびこれらのそれぞれに関連する属性(パブリック/プライベート設定など)が最適化されたリストです。 ObjectScriptコード - メソッドが呼び出されたときに実行される ObjectScript コードを含むルーチンのセットです。 クラス/オブジェクトのメソッドを呼び出すと、ディスパッチコードがクラス記述子からメソッドを探し、呼び出しが許可されているかどうかを確認し、正しいクラスコンテキストを設定し(その過程で $this を更新)、最後に関連するクラスルーチンにある ObjectScript コードを呼び出します。 #ObjectScript #InterSystems IRIS #InterSystems公式 2 0 0 148
記事 Megumi Kakechi · 2023年3月8日 2m read 2つのグローバルの内容を比較する方法 これは InterSystems FAQ サイトの記事です。 ^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。 例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 72
記事 Mihoko Iijima · 2023年2月21日 3m read InterSystems Developer Hub:クリック1回で開始できるチュートリアル(4種)のご紹介 開発者の皆さん、こんにちは! 開発者向け情報を集めた「Developer Hub」ページが新たに登場しました! このページには、4種類のチュートリアルが用意されています。チュートリアはブラウザ上で動作し、VSCodeやIRISターミナル、管理ポータルなどチュートリアルで使用するすべての画面が1つのタブ内で開くようになっています。 チュートリアルを試すための事前準備は不要で、クリック1回ですぐにお試しいただけます!(ユーザ登録も不要です)(チュートリアル開始方法は、ページ末尾をご覧ください。) #ObjectScript #Python #REST API #SQL #チュートリアル #初心者 #機械学習 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 196
記事 Toshihiko Minamoto · 2023年1月31日 1m read Chat GPTを使う 皆さん、こんにちは。 最近話題のChat GPTですが、試しに使ってみました(今更かもしれませんが)。 ObjectScriptを知っているみたいです なので、 と質問すると、 #ObjectScript #InterSystems IRIS 5 0 0 351
記事 Toshihiko Minamoto · 2022年11月22日 5m read 時間の支配者になるには - タイムトラベル タイムトラベルとはパリを訪ねるようなもの。 ガイドを読むだけじゃなく、そこに足を踏み入れなければならない。 ご飯を食べて、動詞の使い方を間違えたり、2 倍の料金を請求されたり、見ず知らずの人とキスするものさ。 ドクター これから時空を超えた旅をしましょう。未来と過去の日付を見て、様々なフォーマットで計算する方法を説明します。 ターディスは待ちません。コントロールに就いてしっかりつかまりましょう。 #ObjectScript #ヒントとコツ #Caché 0 0 0 97
記事 Toshihiko Minamoto · 2022年11月2日 7m read 時間の支配者になるには ー誕生 良識のある人にはルールなんていらない。 ドクター 日付と時間のマスターになるのは簡単なことではありません。いつも問題になる上、どのようなプログラミング言語でも混乱することがあります。そこでこのタスクが可能な限り単純になるように、分かりやすく説明していくつかのヒントをご紹介しましょう。 さぁ、ターディスに乗り込みましょう。あなたを時間の支配者にして差し上げます。 #ObjectScript #ヒントとコツ #Caché 1 1 0 186
記事 Mihoko Iijima · 2022年10月19日 1m read VSCode:クラスメソッド実行文をワンクリックでコピーできるようになりました!(VSCode:ObjectScriptエクステンション) 開発者の皆さん、こんにちは! ターミナルでクラスメソッドを実行するとき、パッケージ名やクラス名などの入力候補が出てこないので、 ##class(パッケージ名.クラス名).メソッド名() の記述をミスったりちょっと面倒だな・・と感じること、ありませんか??(第1回 InterSystems Idea-A-Thon(アイデアソン) でも、もっとシンプルに呼び出せるようにしよう!のアイデアが投稿されていたようです。) (私も含めて)そんな方に、朗報です!📣 #ObjectScript #ターミナル #ヒントとコツ #InterSystems IRIS #VSCode Open Exchange app 2 0 0 295