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

Использование KV API

Взаимодействие с постоянным хранилищем для получения или сохранения информации открывает возможности для мощных сценариев использования.

В этом примере показано, как встроенный вызов функций может взаимодействовать с другими ресурсами Cloudflare Developer Platform всего в нескольких строках кода.

Предварительные требования

Чтобы этот пример заработал, вам потребуется подготовить KV пространство имён. Для этого выполните действия, описанные в KV - Get started руководство.

Важно, что ваш файл Wrangler необходимо обновить, включив в него KV определение привязки к соответствующему пространству имён.

код Worker

Пример встроенного вызова функций с KV API
import { runWithTools } from "@cloudflare/ai-utils";

type Env = {
	AI: Ai;
	KV: KVNamespace;
};

export default {
	async fetch(request, env, ctx) {
		// Define function
		const updateKvValue = async ({
			key,
			value,
		}: {
			key: string;
			value: string;
		}) => {
			const response = await env.KV.put(key, value);
			return `Successfully updated key-value pair in database: ${response}`;
		};

		// Run AI inference with function calling
		const response = await runWithTools(
			env.AI,
			"@hf/nousresearch/hermes-2-pro-mistral-7b",
			{
				messages: [
					{ role: "system", content: "Put user given values in KV" },
					{ role: "user", content: "Set the value of banana to yellow." },
				],
				tools: [
					{
						name: "KV update",
						description: "Update a key-value pair in the database",
						parameters: {
							type: "object",
							properties: {
								key: {
									type: "string",
									description: "The key to update",
								},
								value: {
									type: "string",
									description: "The value to update",
								},
							},
							required: ["key", "value"],
						},
						function: updateKvValue,
					},
				],
			},
		);
		return new Response(JSON.stringify(response));
	},
} satisfies ExportedHandler<Env>;

Проверьте результаты

Чтобы проверить результаты, выполните следующую команду

npx wrangler kv key get banana --binding KV --local