AI / MLCloudflareLLM

LangChain.jsとLangSmithをCloudflare Workersで動かす場合の環境変数について

LangSmithを使用して、LLMアプリのトレースと分析方法を調査中。Cloudflareにデプロイする際の環境変数の扱いについて説明。LangSmithでは環境変数のexportが必要であり、Cloudflareでは実行時の引数で設定。LangSmithの方法だとトレースが開始できないため、実行時に直接値を設定する方法を紹介。Honoを使用する際はmiddlewareを利用して全リクエストで処理可能。詳細は参考資料をご覧ください。

広告ここから
広告ここまで

https://langchain.com/langsmith を使って、LLMアプリのトレースと分析を行う方法を調べています。今の所アプリケーションをCloudflareにデプロイすることが多いので、その場合の環境変数の扱い方についてまとめてみました。

環境変数のexportがLangSmithには必要

LangSmithでのトレースを行うには、下の画像のように環境変数のexportが必要です。通常のNode.js実行環境では、CI / CDパイプラインでの登録や、AWSのSystems Managerなどを活用することで、簡単に情報をアプリケーションに送信することができます。

しかしCloudflareでは、環境変数は実行時の引数で受け取ります。

import { Hono } from 'hono';
import { env } from 'hono/adapter';
const app = new Hono();
app.get('/ask', async c => {
  const { LANGCHAIN_TRACING_V2, LANGCHAIN_API_KEY } = env(c);

そのため、LangSmithが紹介している方法では、トレースを開始することができません。

実行時に値を直接設定すると、一応動く

いろいろ試した結果、かなり力技ですが次のような実装で動きました。

import { Hono } from 'hono';
import { env } from 'hono/adapter';
const app = new Hono();
app.get('/ask', async c => {
  const { LANGCHAIN_TRACING_V2, LANGCHAIN_API_KEY } = env(c);
  process.env.LANGCHAIN_API_KEY = LANGCHAIN_API_KEY
  process.env.LANGCHAIN_TRACING_V2 = LANGCHAIN_TRACING_V2

LangSmithのコードが、process.envから値を読み取っているため、実行時に値を直接設定させています。Honoを使っている場合は、middlewareを使うことでこの処理を全リクエストにて動かせると思います。

あまりスマートな感じはしませんが、「動かない・・・」と困っている方は、とりあえずこれを試してみたください。

参考にした資料など

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts