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

Устранение неполадок

В этом разделе описаны инструменты для устранения неполадок и разбираются типичные ошибки.

Логирование

Общее журналирование возможности для Workers также применимы к встроенному вызову функций.

Обращения к функциям

Вызовы инструментов можно логировать так же, как в любом Worker, с помощью console.log():

Логирование вызовов инструментов
export default {
	async fetch(request, env, ctx) {
		const sum = (args: { a: number; b: number }): Promise<string> => {
			const { a, b } = args;
      // Logging from within embedded function invocations
      console.log(`The sum function has been invoked with the arguments a: ${a} and b: ${b}`)
			return Promise.resolve((a + b).toString());
		};
    ...
  }
}

Логирование в runWithTools

runWithTools функция имеет verbose режим, который выводит полезные логи для отладки вызовов функций, а также статистику входных и выходных данных.

Подробный режим включён
const response = await runWithTools(
  env.AI,
  '@hf/nousresearch/hermes-2-pro-mistral-7b',
  {
    messages: [
      ...
    ],
    tools: [
      ...
    ],
  },
  // Enable verbose mode
  { verbose: true }
);

Производительность

Чтобы ответить на промпт LLM со встроенной функцией, может потребоваться несколько запросов на инференс ИИ и обращений к функциям, что способно повлиять на удобство работы пользователя.

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

Пример потокового ответа
async fetch(request, env, ctx) {
  const response = (await runWithTools(
    env.AI,
    '@hf/nousresearch/hermes-2-pro-mistral-7b',
    {
      messages: [
        ...
      ],
      tools: [
        ...
      ],
    },
    {
      // Enable response streaming
      streamFinalResponse: true,
    }
  )) as ReadableStream;

  // Set response headers for streaming
  return new Response(response, {
    headers: {
      'content-type': 'text/event-stream',
    },
  });
}

Распространенные ошибки

Если у вас появляется BadInput ошибку, возможно, ваши входные данные превышают текущее контекстное окно наших моделей. Чтобы устранить ошибку, уменьшите количество входных токенов.