← Cloudflare Workers AI / workers-ai / features / function-calling / embedded
Устранение неполадок
В этом разделе описаны инструменты для устранения неполадок и разбираются типичные ошибки.
Логирование
Общее журналирование возможности для 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 ошибку, возможно, ваши входные данные превышают текущее контекстное окно наших моделей. Чтобы устранить ошибку, уменьшите количество входных токенов.