INTEGRITY Документация

Начало работы

Это руководство проведёт вас через настройку и развёртывание первого проекта Workers AI с embedded function calling. Вы будете использовать Workers, привязку Workers AI, ai-utils package, и большую языковую модель (LLM) для развёртывания вашего первого приложения на базе ИИ со встроенным вызовом функций в глобальной сети Cloudflare.

1. Создайте проект Worker с Workers AI

Следуйте Руководство по началу работы с Workers AI до шага 2.

2. Установите дополнительный пакет npm

Затем выполните следующую команду в репозитории вашего проекта, чтобы установить пакет утилит Worker AI.

npm i @cloudflare/ai-utils

3. Добавьте Workers AI Embedded function calling

Обновите index.ts файл в каталоге приложения со следующим кодом:

index.js
import { runWithTools } from "@cloudflare/ai-utils";

export default {
	async fetch(request, env, ctx) {
		// Define function
		const sum = (args) => {
			const { a, b } = args;
			return Promise.resolve((a + b).toString());
		};
		// Run AI inference with function calling
		const response = await runWithTools(
			env.AI,
			// Model with function calling support
			"@hf/nousresearch/hermes-2-pro-mistral-7b",
			{
				// Messages
				messages: [
					{
						role: "user",
						content: "What the result of 123123123 + 10343030?",
					},
				],
				// Definition of available tools the AI model can leverage
				tools: [
					{
						name: "sum",
						description: "Sum up two numbers and returns the result",
						parameters: {
							type: "object",
							properties: {
								a: { type: "number", description: "the first number" },
								b: { type: "number", description: "the second number" },
							},
							required: ["a", "b"],
						},
						// reference to previously defined function
						function: sum,
					},
				],
			},
		);
		return new Response(JSON.stringify(response));
	},
};
index.ts
import { runWithTools } from "@cloudflare/ai-utils";

type Env = {
	AI: Ai;
};

export default {
	async fetch(request, env, ctx) {
		// Define function
		const sum = (args: { a: number; b: number }): Promise<string> => {
			const { a, b } = args;
			return Promise.resolve((a + b).toString());
		};
		// Run AI inference with function calling
		const response = await runWithTools(
			env.AI,
			// Model with function calling support
			"@hf/nousresearch/hermes-2-pro-mistral-7b",
			{
				// Messages
				messages: [
					{
						role: "user",
						content: "What the result of 123123123 + 10343030?",
					},
				],
				// Definition of available tools the AI model can leverage
				tools: [
					{
						name: "sum",
						description: "Sum up two numbers and returns the result",
						parameters: {
							type: "object",
							properties: {
								a: { type: "number", description: "the first number" },
								b: { type: "number", description: "the second number" },
							},
							required: ["a", "b"],
						},
						// reference to previously defined function
						function: sum,
					},
				],
			},
		);
		return new Response(JSON.stringify(response));
	},
} satisfies ExportedHandler<Env>;

В этом примере утилиты импортируются с помощью import { runWithTools} from "@cloudflare/ai-utils" и соответствует справочнику API ниже.

Кроме того, в этом примере мы определяем и описываем список инструментов, которые может использовать LLM, чтобы ответить на запрос пользователя. Здесь список содержит только один инструмент: sum функцию.

Абстрагировано с помощью runWithTools функции происходят следующие действия:

sequenceDiagram
    participant Worker as Worker
    participant WorkersAI as Workers AI

    Worker->>+WorkersAI: Send messages, function calling prompt, and available tools
    WorkersAI->>+Worker: Select tools and arguments for function calling
    Worker-->>-Worker: Execute function
    Worker-->>+WorkersAI: Send messages, function calling prompt and function result
    WorkersAI-->>-Worker: Send response incorporating function output

ai-utils package также доступна с открытым исходным кодом на Github.

4. Локальная разработка и развёртывание

Выполните шаги 4 и 5 из Руководство по началу работы с Workers AI для локальной разработки и развёртывания.

Справочник по API

Подробнее см. в Справочник по API.