LlamaIndex を使って Python でSage Intacct データに自然言語でクエリを実行する方法
CData Python Connector for Sage Intacct を使用して、Sage Intacct からリアルタイムデータへのクエリを開始しましょう。LlamaIndex と AI の力を活用して、複雑な SQL クエリを書くことなく、シンプルな自然言語でインサイトを取得できます。意思決定を強化するリアルタイムデータアクセスのメリットを享受しながら、既存の Python アプリケーションと簡単に統合できます。
CData Python Connector は、組み込みの最適化されたデータ処理により、Python でリアルタイムのSage Intacct のデータを操作する際に比類のないパフォーマンスを提供します。Python から複雑な SQL クエリを発行すると、ドライバーはフィルターや集計などのサポートされた SQL 操作を直接 Sage Intacct にプッシュし、埋め込み SQL エンジンを使用してサポートされていない操作(多くの場合 SQL 関数や JOIN 操作)をクライアント側で処理します。
トレンド分析、レポート作成、データの可視化など、CData Python Connector を使用すれば、リアルタイムのデータソースの可能性を最大限に活用できます。
Sage Intacct データ連携について
CData は、Sage Intacct のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:
- API の更新や変更を気にすることなく、Sage Intacct にアクセスできます。
- 追加の構成手順なしで、Sage Intacct のカスタムオブジェクトやフィールドにアクセスできます。
- Basic 認証による組み込み Web サービス認証情報を使用して、Sage Intacct にデータを書き戻すことができます。
- SQL ストアドプロシージャを使用して、ベンダーの承認・却下、エンゲージメントの挿入、カスタムオブジェクトやフィールドの作成・削除などの機能的な操作を実行できます。
ユーザーは、Tableau、Power BI、Excel などの分析ツールと Sage Intacct を統合し、当社のツールを活用して Sage Intacct データをデータベースやデータウェアハウスにレプリケートしています。
他のお客様が CData の Sage Intacct ソリューションをどのように使用しているかについては、ブログをご覧ください:Drivers in Focus: Accounting Connectivity
はじめに
概要
LlamaIndex を使用して、CData Python Connector forSage Intacct のデータでリアルタイムデータにクエリを実行する方法の概要です:
- ロギング、データベース接続、NLP に必要な Python、CData、LlamaIndex モジュールをインポートします。
- アプリケーションからの API リクエストを認証するための OpenAI API キーを取得します。
- CData Python Connector を使用してリアルタイムのSage Intacct のデータに接続します。
- OpenAI を初期化し、自然言語クエリを処理するための SQLDatabase と NLSQLTableQueryEngine のインスタンスを作成します。
- クエリエンジンと特定のデータベースインスタンスを作成します。
- 自然言語クエリ(例:「最も稼いでいる従業員は誰ですか?」)を実行して、データベースから構造化されたレスポンスを取得します。
- 取得したデータを分析してインサイトを得て、データドリブンな意思決定に役立てます。
必要なモジュールのインポート
CData、データベース接続、自然言語クエリに必要なモジュールをインポートします。
import os import logging import sys # ロギングの設定 logging.basicConfig(stream=sys.stdout, level=logging.INFO, force=True) logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout)) # CData と LlamaIndex に必要なモジュールをインポート import cdata.sageintacct as mod from sqlalchemy import create_engine from llama_index.core.query_engine import NLSQLTableQueryEngine from llama_index.core import SQLDatabase from llama_index.llms.openai import OpenAI
OpenAI API キーの設定
OpenAI の言語モデルを使用するには、API キーを環境変数として設定する必要があります。システムの環境変数で OpenAI API キーが利用可能であることを確認してください。
# 環境変数から OpenAI API キーを取得 OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] ''または、コード内で直接 API キーを追加することもできます(ただし、セキュリティリスクのため、本番環境ではこの方法は推奨されません):'' # API キーを直接設定(本番使用には非推奨) OPENAI_API_KEY = "your-api-key-here"
データベース接続の作成
次に、必要な接続プロパティを含む接続文字列を使用して、CData Connector で Sage Intacct への接続を確立します。
Sage Intacct 接続プロパティの取得・設定方法
独自のWeb サービスクレデンシャル、埋め込みクレデンシャル(Basic 認証)、またはOkta クレデンシャルのいずれかを使用して、Sage Intacct への接続を確立できます。
Sage Intacct への認証
Sage Intacct は2種類の認証をサポートします。Basic およびOkta です。選択した認証方法に関連するプロパティを設定して、接続を構成します。
Basic 認証
Basic 認証スキームでは、埋め込みクレデンシャルを使用してデータの読み書きが可能です。オプションとして、独自のWeb サービスクレデンシャルを指定することもできます。
Basic 認証を使用して認証を行うには、以下のプロパティを設定します。
- AuthScheme:Basic。
- CompanyID:Sage Intacct にログインする際に会社を識別するために使用するID。
- User:Sage Intacct へのログインに使用するログイン名。
- Password:ログインクレデンシャル用のパスワード。
- (オプション)SenderID およびSenderPassword:Web サービスのSender ID およびパスワード(独自のWeb サービスクレデンシャルを使用している場合のみ)。
独自のWeb サービスクレデンシャルではなく、埋め込みクレデンシャルを使用する場合は、以下を実行する必要があります:
- Web サービスダッシュボードで、会社 -> 会社情報 -> セキュリティタブに移動します。
- Web サービス認証に"CData" を追加します。これは大文字・小文字が区別されます。これを行うには、会社 -> 会社情報(新しいUI では、設定 -> 会社)-> セキュリティ -> Web サービス認証 / 編集に移動します。
Sage Intacct への接続
# CData Python Connector for Sage Intacct を使用してデータベースエンジンを作成
engine = create_engine("cdata_sageintacct_2:///?User=User=myusername;CompanyId=TestCompany;Password=mypassword;SenderId=Test;SenderPassword=abcde123;")
OpenAI インスタンスの初期化
OpenAI 言語モデルのインスタンスを作成します。ここで、temperature やモデルバージョンなどのパラメータを指定できます。
# OpenAI 言語モデルインスタンスを初期化 llm = OpenAI(temperature=0.0, model="gpt-3.5-turbo")
データベースとクエリエンジンの設定
SQL データベースとクエリエンジンを設定します。NLSQLTableQueryEngine を使用すると、SQL データベースに対して自然言語クエリを実行できます。
# SQL データベースインスタンスを作成 sql_db = SQLDatabase(engine) # すべてのテーブルを含む # 自然言語 SQL クエリ用のクエリエンジンを初期化 query_engine = NLSQLTableQueryEngine(sql_database=sql_db)
クエリの実行
これで、リアルタイムのデータソースに対して自然言語クエリを実行できます。この例では、最も稼いでいる従業員上位 2 名をクエリします。
# クエリ文字列を定義 query_str = "Who are the top earning employees?" # クエリエンジンからレスポンスを取得 response = query_engine.query(query_str) # レスポンスを出力 print(response)
CData Python Connector for Sage Intacct の無料 30 日間トライアルをダウンロードして、リアルタイムデータへのシームレスなクエリを始めましょう。自然言語処理の力を体験し、データから貴重なインサイトを引き出してください。