コンテンツにスキップ

始める

このガイドでは、組み込み関数呼び出しを使用して最初の Workers AI プロジェクトを設定し、デプロイする方法を説明します。Workers、Workers AI バインディング、ai-utils パッケージ、および大規模言語モデル (LLM) を使用して、組み込み関数呼び出しを備えた最初の AI 対応アプリケーションを Cloudflare グローバルネットワーク上にデプロイします。

1. Workers AI で Worker プロジェクトを作成する

Workers AI 始めるガイドの手順 2 まで進んでください。

2. 追加の npm パッケージをインストールする

次に、プロジェクトリポジトリで以下のコマンドを実行して、Worker AI ユーティリティパッケージをインストールします。

Terminal window
npm install @cloudflare/ai-utils --save

3. Workers AI 組み込み関数呼び出しを追加する

アプリケーションディレクトリ内の index.ts ファイルを以下のコードで更新します。

組み込み関数呼び出しの例
import { runWithTools } from "@cloudflare/ai-utils";
type Env = {
AI: Ai;
};
export default {
async fetch(request, env, ctx) {
// 関数を定義する
const sum = (args: { a: number; b: number }): Promise<string> => {
const { a, b } = args;
return Promise.resolve((a + b).toString());
};
// 関数呼び出しを伴う AI 推論を実行する
const response = await runWithTools(
env.AI,
// 関数呼び出しをサポートするモデル
"@hf/nousresearch/hermes-2-pro-mistral-7b",
{
// メッセージ
messages: [
{
role: "user",
content: "123123123 + 10343030 の結果は何ですか?",
},
],
// AI モデルが利用できるツールの定義
tools: [
{
name: "sum",
description: "2 つの数を合計し、結果を返します",
parameters: {
type: "object",
properties: {
a: { type: "number", description: "最初の数" },
b: { type: "number", description: "2 番目の数" },
},
required: ["a", "b"],
},
// 以前に定義された関数への参照
function: sum,
},
],
},
);
return new Response(JSON.stringify(response));
},
} satisfies ExportedHandler<Env>;

この例では、import { runWithTools} from "@cloudflare/ai-utils" を使用してユーティリティをインポートし、以下の API リファレンスに従います。

さらに、この例では、LLM がユーザーのクエリに応答するために利用できるツールのリストを定義し、説明します。ここでは、リストには sum 関数という 1 つのツールのみが含まれています。

runWithTools 関数によって抽象化された次のステップが発生します。

sequenceDiagram
    participant Worker as Worker
    participant WorkersAI as Workers AI

    Worker->>+WorkersAI: メッセージ、関数呼び出しプロンプト、および利用可能なツールを送信
    WorkersAI->>+Worker: 関数呼び出しのためのツールと引数を選択
    Worker-->>-Worker: 関数を実行
    Worker-->>+WorkersAI: メッセージ、関数呼び出しプロンプト、および関数結果を送信
    WorkersAI-->>-Worker: 関数出力を組み込んだ応答を送信

ai-utils パッケージGithub でもオープンソースとして公開されています。

4. ローカル開発とデプロイ

ローカル開発とデプロイのために、Workers AI 始めるガイドの手順 4 と 5 に従ってください。

API リファレンス

詳細については、API リファレンスを参照してください。