登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 timestamped
timestamped コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
timestamped を含む検索結果
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの「お財布事情」を可視化しましょう。トークン使用量の追跡で、テナント別課金もステップ別モニタリングも実現できます。 Usage API を使えば、実行全体のトークン消費量から、ツール呼び出し・ハンドオフごとの内訳まで、きめ細かくコストを把握できます。 📌 タイトル:Usage 🔗 URL: 🧩 概要 OpenAI Agent SDK の Usage 機能は、エージェント実行のトークン消費を追跡するための仕組みです。`result.context_wrapper.usage` で実行全体の合計トークン数を取得でき、`result.context_wrapper.usage.request_usage_entries` でステップごと(ツール呼び出し・ハンドオフ・ガードレール)の内訳を確認できます。さらに RunHooks の `on_agent_end` でリアルタイムにログを記録したり、サードパーティモデル使用時に `ModelSettings(include_usage=True)` で使用量レポートを有効化したりできます。 🛠 使い方 `Agent(name="Assistant", instructions="ユーザーの質問に回答してください。")` でエージェントを作り、`result = await "量子コンピュータについて教えてください")` を実行します。` で合計・入力・出力トークン数を取得できます。`result.context_wrapper.usage.request_usage_entries` をループすれば、各リクエストの `entry.input_tokens` と `entry.output_tokens` でステップごとの内訳も確認できます。 🏗 実践的な使い方 **テナント/ユーザー別コスト計算** SaaS で「テナントごとにいくら使ったか」を記録し、課金や予算管理に活用するパターンです。 `handle_request(tenant_id, user_id, message)` のような関数で `result = await message)` を実行し、`calculate_cost(model="gpt-4.1", input_tokens=result.context_wrapper.usage.input_tokens, output_tokens=result.context_wrapper.usage.output_tokens)` でコストを算出、`await billing_db.record(tenant_id=tenant_id, user_id=user_id, total_tokens= cost_usd=cost, timestamp= でテナント別に記録します。 **ステップ別モニタリング** `request_usage_entries` で、どのツール呼び出しやハンドオフがトークンを消費しているかを特定します。 `result = await "売上レポートを作成して")` の後、`result.context_wrapper.usage.request_usage_entries` を `enumerate` でループし、各ステップの `entry.input_tokens` と `entry.output_tokens` を確認します。`entry.input_tokens > 5000` のような閾値で警告を出せば、トークン消費の多いステップを特定できます。 **RunHooks でリアルタイムログ** `on_agent_end` フックでエージェント終了時に使用量をログに記録します。 `RunHooks` を継承した `UsageLoggingHooks` クラスを作り、`on_agent_end(self, context: RunContextWrapper, agent: Agent, output)` メソッドで `context.usage` からトークン使用量を取得し、`"agent_completed", agent_name= total_tokens= ...)` で構造化ログに記録します。`await "質問", hooks=UsageLoggingHooks())` のように `hooks` パラメータで渡します。 **サードパーティモデルでの使用量レポート有効化** OpenAI 以外のモデルアダプタを使う場合、明示的に使用量レポートを有効にする必要があります。 サードパーティモデルでは `Agent(name="ThirdPartyAgent", instructions="...", model=my_custom_model_adapter, model_settings=ModelSettings(include_usage=True))` のように `ModelSettings(include_usage=True)` を明示的に設定して、使用量レポートを有効化します。 💡 ユースケース 💰 テナント別・ユーザー別のトークン消費をDBに記録し、従量課金の基盤を構築 📊 request_usage_entries でステップ別のトークン消費を可視化し、コスト最適化のボトルネックを特定 🔔 RunHooks の on_agent_end で使用量を構造化ログに記録し、リアルタイムでダッシュボード監視 🔌 サードパーティモデル利用時に ModelSettings(include_usage=True) で使用量追跡を漏れなく有効化 ⚠️ 注意点 - ` はリトライやガードレール再実行分も含まれるため、表示上のステップ数より多くなる場合があります。 - サードパーティモデルでは `include_usage=True` を設定しないと使用量がゼロで返ることがあります。アダプタのドキュメントを確認してください。 - コスト計算はモデルの料金体系に依存します。モデルごとの入力/出力トークン単価を正確に反映させましょう。 ✨ トークン使用量を3つのレベル(合計・ステップ別・フック)で追跡すれば、コスト管理も品質監視も万全です。まずは result.context_wrapper.usage から始めて、必要に応じてステップ別やフックでの追跡を追加していきましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# Elasticsearchの機能と実践的な使い方 🔎 「検索→変換→集計」を1本のパイプで書ける。SQLライクで学習コストが低い新世代のクエリ言語、それがES|QLです。 🏷️ タイトル: ES|QL(パイプ型クエリ言語) 🔗 URL: 📘 概要 ES|QLはElasticsearchのデータを問い合わせ・集計・可視化・アラート化まで一気通貫で扱える新しいクエリ言語です。Unixのパイプのように `|` でコマンドを連結し、データを段階的に絞り込み・変換・集約していきます。JSONの集計DSLを書かずに、アドホック分析を素早く進められます。 ⚙️ 機能の説明 クエリは必ずソースコマンドから始まり、処理コマンドをパイプで連結する構造です。 ・`FROM` でインデックス/データストリームを指定(時系列向けの `TS` もある) ・`WHERE` で行を絞り込み ・`STATS ... BY` で集計とグルーピング ・`EVAL` で派生列を生成、`SORT` で並べ替え、`LIMIT` で件数制限 ・`KEEP`/`DROP`/`RENAME` で出力列を制御 ・`DISSECT`/`GROK` で非構造テキストをパース ・`LOOKUP JOIN` でマスタデータと結合、`ENRICH` でポリシー付与 コマンドや関数名は大文字小文字を区別しません(`FROM` も `from` も同じ)。 🛠️ 実践的な使い方 障害調査では、検索から集計までを次のように1本で書けます。 `FROM logs-* | WHERE status >= 500 | STATS count = COUNT(*) BY BUCKET(@timestamp, 5m) | SORT count DESC` Kibanaのエディタはオートコンプリート、インライン補完、Prettifyボタンによる自動整形を備え、実行後はフッターに処理ドキュメント数などの統計が出ます。同じES|QLがDiscover・ダッシュボードのパネル・アラートルール・Elastic Securityで共通に使えるのが大きな利点です。クエリ履歴やお気に入り(スター)機能で定番クエリの再利用も可能です。 💡 ユースケース ・SREのアドホックなログ分析(エラー率のサービス別・時間バケット別集計) ・ダッシュボードのES|QL可視化パネル ・セキュリティの検知ルールやアラート条件の記述 ・`LOOKUP JOIN` でサービス名→チーム名のようなマスタ結合を行う運用分析 ⚠️ 注意点 ・フィルタなしで多数のインデックスを横断するとレスポンスが肥大化するため、`KEEP`/`DROP` で列を絞ること。 ・Kibana内では `SET time_zone` ではなく `dateFormat:tz` 設定でタイムゾーンを扱う。 ・自然言語からのクエリ生成はEnterpriseライセンスとコネクタ設定が必要です。 ・マッピングされていないフィールド参照は既定で失敗するため注意が必要です。 #Elasticsearch# #ESQL#
もっと見る
# Neo4jの機能と実践的な使い方 ♻️ 「なければ作る、あれば更新する」——イベントストリームを何度流しても重複ノードを生まない冪等な書き込みは、`MERGE` 一文で実現できます。 🏷️ タイトル: CREATE / MERGE / SET / DELETE 🔗 URL: 📘 概要 `MERGE` は、パターンが存在すればマッチして束縛し、なければ作成して束縛する upsert クラウズです。`MATCH` と `CREATE` を一体化し、過去にデータが在ったかどうかで条件分岐できます。日次バッチやストリーム取り込みの冪等化に不可欠です。 ⚙️ 機能の説明 ・全体一致か全体作成か: `MERGE` はパターン全体に対して「すべてマッチ」か「すべて作成」のどちらかで、既存パターンを部分的に再利用しません。部分的に扱いたい場合は `MERGE` を複数に分解します。 ・`ON CREATE SET` / `ON MATCH SET`: 作成時だけ・マッチ時だけ実行されるプロパティ設定です。作成時刻の刻印やアクセス回数のインクリメントに使えます。両方を同時に書けます。 ・リレーションシップの `MERGE`: 少なくとも片方のノードが束縛済みである必要があります。無向 `-[r:KNOWS]-` は双方向で探してから左→右で作成します。 ・制約との連動: 一意制約があると `MERGE` は競合検知を行い、重複生成を防ぎます。性能上もラベル/プロパティへのインデックス作成が強く推奨されます(無いと毎回フルスキャン)。 🛠️ 実践的な使い方 イベントストリームの冪等な upsert 例です。 ```cypher MERGE (u:User {id: row.userId}) MERGE (p:Page {url: row.url}) MERGE (u)-[v:VIEWED]->(p) ON CREATE SET v.count = 1 ON MATCH SET v.count = v.count + 1 ``` 派生ノードを重複なく作る定番パターンです。 ```cypher MATCH (person:Person) MERGE (loc:Location {name: person.bornIn}) MERGE (person)-[r:BORN_IN]->(loc) ON CREATE SET r.createdAt = timestamp() ``` 💡 ユースケース ・クリックストリーム/IoTイベントの取り込みで、同一ユーザー・ページを一意化しながらカウントを積み上げる。 ・複数パイプラインからマスタを書き込んでもエンティティが二重化しない取り込み基盤。 ⚠️ 注意点 ・`MERGE` のキーには一意制約を併用するのが鉄則です。制約が無いと並行実行で一瞬の重複が生じ得ます(制約は最終的整合のみ保証)。 ・`MERGE` のプロパティに `null` は使えません。条件付き設定は後段の `SET` で行います。 ・同一 `MERGE` 内で作成中ノードの値を相互参照できません。先に `MATCH` するか `SET` に分けます。 ・`DELETE` はリレーションシップ付きノードに失敗します。`DETACH DELETE` を使います。 #Neo4j# #Cypher#
もっと見る
# Elasticsearchの機能と実践的な使い方 🌊 もう` 🏷️ タイトル: Data stream(追記型時系列データの論理ストリーム) 🔗 URL: 📘 概要 データストリームは、追記型(append-only)の時系列データ格納に最適化された複数インデックスを、1つの名前で扱う抽象レイヤーです。ログ・イベント・メトリクスのように次々と流れ込むデータに向いており、利用者は隠された「バックインデックス」群を意識せず、単一のリソース名へ読み書きできます。 ⚙️ 機能の説明 ・データストリームの実体は、自動生成される複数の隠しバックインデックスです。命名は`.ds-<データストリーム名>-<>-<世代>`で、世代は`000001`から始まる6桁ゼロ詰めの整数です(例: `.ds-logs-myapp-prod-2026.06.10-000001`)。 ・書き込みは常に最新の「ライトインデックス」1つだけが受け付けます。古いバックインデックスへは直接書き込めません。 ・検索は自動的にすべてのバックインデックスへルーティングされ、データセット全体を横断して問い合わせられます。 ・各ドキュメントには`date`または`date_nanos`型の`@timestamp`フィールドが必須です。テンプレートに無ければ既定の`date`マッピングが自動適用されます。 ・利用には`data_stream`定義を含むインデックステンプレートが必須で、マッピング・設定・ライフサイクルポリシーをここで定義します。1つのテンプレートを複数のデータストリームで共有できます。 ・年齢やサイズの閾値に達すると「ロールオーバー」が走り、新しいバックインデックスが作られてライトインデックスが切り替わります。これはILMやデータストリームライフサイクルで自動化されます。 🛠️ 実践的な使い方 まず`data_stream`を含むインデックステンプレートを用意します。 `PUT _index_template/logs-myapp-template` `{ "index_patterns": ["logs-myapp-*"], "data_stream": {}, "template": { "mappings": { "properties": { "@timestamp": { "type": "date" } } } } }` あとはアプリから常に同じ名前へ書くだけです。 `POST logs-myapp-prod/_doc` `{ "@timestamp": "2026-06-10T09:00:00Z", "level": "INFO", "message": "started" }` 💡 ユースケース アプリケーションログを`logs-myapp-prod`というデータストリームへ書き込み、バックインデックスのロールオーバーは自動管理に任せる構成が定番です。アプリ側は日付別インデックス(` ⚠️ 注意点 ・バックインデックス名は内部実装の詳細です。restoreやshrinkで変わることがあるため、名前から日付などのロジックを組まないでください。 ・頻繁に同じIDで上書き更新(last-write-wins)したい用途には不向きで、その場合は通常のインデックスやエイリアスを使います。 ・更新・削除は`update by query`・`delete by query`など専用APIを使い、ライトインデックス以外への直接書き込みはできません。 ・データストリームが使用中のインデックステンプレートは削除できません。 #Elasticsearch# #データストリーム#
もっと見る