Execution Overview
Function execution trebuie să fie rapid și robust. Utilizatorul așteaptă pe linie - fiecare milisecundă contează.
<3s
Target total time
Async
Non-blocking
Retries
Built-in
Execution Flow
1
LLM Decision
AI decide să apeleze funcția bazat pe context
2
Parameter Extraction
Extrage parametrii din conversație
3
Validation
Validează parametrii (format, required)
4
API Call
Execută funcția / apel API extern
5
Response Parse
Procesează răspunsul într-un format util
6
LLM Integration
Trimite rezultatul înapoi la LLM
7
Response Generation
AI generează răspuns natural cu datele
Execution Code Example
async function executeFunction(functionCall, context) {
const { name, arguments: args } = functionCall;
// 1. Validate parameters
const validation = validateParams(name, args);
if (!validation.valid) {
return {
error: true,
message: validation.message,
askUser: validation.missingParam
};
}
// 2. Execute with timeout
try {
const result = await Promise.race([
functions[name](args, context),
timeout(5000, 'Function execution timeout')
]);
// 3. Parse and return
return {
success: true,
data: result,
displayText: formatForVoice(result)
};
} catch (error) {
// 4. Handle errors gracefully
return handleFunctionError(error, name, args);
}
}
// Handler for get_order_status
async function get_order_status({ order_id }, context) {
const order = await api.get(`/orders/${order_id}`);
return {
status: order.status,
eta: order.estimated_delivery,
tracking: order.tracking_number
};
}Error Handling
| Error Type | Handling Strategy |
|---|---|
| Timeout | Retry or inform user "System is slow, please wait" |
| API Error (500) | Retry once, then fallback message |
| Not Found (404) | Inform user "Could not find that order" |
| Auth Error (401) | Log error, fallback to manual process |
| Validation Error | Ask user to clarify input |
User Communication
Pentru funcții care durează mai mult:
Instant feedback: "Verific status-ul comenzii tale..."
If slow: "Încă verific, mulțumesc pentru răbdare..."
On success: "Am găsit comanda ta. Este în drum și ajunge mâine."