ThunderPhone 2.0 ir klāt.Sāciet uzreiz — no 2 centiem minūtē.Lasīt paziņojumu

Developer cookbook

Testējiet balss aģentu pilnībā (API)

Palaidiet vienreizējas simulācijas, paralēlas scenāriju paketes un laidienu vārtejas testu komplektus, izmantojot ThunderPhone API, lai balss aģenta regresijas tiktu atklātas, pirms tās dzird klienti.

Darbs ar MI aģentu ietver tā uzvednes, rīku un robežgadījumu apstrādes pilnveidošanu. Simulāciju API veic reālus zvanus uz aģentu, izmantojot jūsu norādītu scenārija uzvedni. Mērķējot uz aģentu, tiek izveidota bota–bota izpilde; mērķējot uz tālruņa numuru, tiek izveidota SIP cilpas izpilde. Katra izpilde rada reālu zvanu žurnālu ar transkripciju, vērtējumu un norēķiniem, lai jūs precīzi redzētu, kā aģents darbojas un cik tas maksā.

Izmantojiet to šādiem mērķiem:

  • Ātrās pārbaudes pirms izvietošanas pēc katras uzvednes rediģēšanas
  • Regresijas testu komplekti, kas savienoti ar CI (piesaistiet test-call.completed tīmekļa aizķeri → neizlaidiet būvējumu, ja vērtējums samazinās)
  • Vienlaicīguma ierobežojumu slodzes testēšana

Vienreizēja palaišana: viena izpilde

curl -X POST https://api.thunderphone.com/v1/simulations \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_type":     "agent",
    "target_id":       12,
    "direction":       "outbound",
    "scenario_prompt": "You are a polite caller asking about refund policy for order 12345.",
    "consent_to_charge": true
  }'

Lauki:

LauksTipsObligātsApraksts
target_typevirkneagent vai phone_number
target_idvesels skaitlisAģenta ID (vai tālruņa numura ID)
directionvirkneoutbound (noklusējums; testa zvanītājs uzsāk zvanu) vai inbound (testa zvanītājs atbild)
scenario_promptvirkneNosaka, ko saka testa bots
language / primary_languagevirkneTesta zvanītāja valoda; neatbalstītie kodi tiek noraidīti
simulator_productvirknetesting (noklusējums) vai spark, lai iegūtu cilvēkam līdzīgāku simulētu zvanītāju, piemēram, siltās pārsūtīšanas konsultācijas testiem
consent_to_chargeBūla vērtībaJābūt true. Aprēķinā tiek iekļauta maksa gan par atlasīto aģentu, gan simulēto zvanītāju, kā arī par jebkuru telefonijas posmu
target_numbervirkneE.164 aizstāšana attālajai pusei; pretējā gadījumā tiek izmantots platformas testa numurs

mode ir tikai lasāms un tiek atvasināts no target_type: agent rada mode="bot", savukārt phone_number rada mode="sip".

Atbilde ir simulācijas izpildes objekts ar status="queued". Aptaujājiet, līdz status kļūst par completed vai failed; kad ir iestatīts call_id, ielādējiet transkripciju, izmantojot GET /v1/calls/{call_id}/transcript.

Paketes: paralēli scenāriji

Vienlaikus izpildiet N scenārijus — noderīgi regresijas testu komplektiem, kas paralēli aptver katru zināmo robežgadījumu:

curl -X POST https://api.thunderphone.com/v1/simulations/batches \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_type":     "agent",
    "target_id":       12,
    "direction":       "outbound",
    "run_count":       5,
    "stagger_seconds": 2,
    "scenario_prompts": [
      "Ask about refund policy.",
      "Ask for hours of operation.",
      "Complain about a delayed shipment.",
      "Ask to speak with a human.",
      "Ask an unrelated trivia question."
    ],
    "consent_to_charge": true
  }'

Atbildē ir pakārtoto izpildes ID saraksts run_ids. Iegūstiet paketes statusu:

curl https://api.thunderphone.com/v1/simulations/batches/{batch_id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

run_count ir ierobežots līdz 20; stagger_seconds sadala palaišanu laikā, lai nepārslogotu aģentu (0–60 s).

Integrējiet to CI

Izveidojiet laidiena vārtu komplektu lapā Simulācijas (/dashboard/simulations) — izvēlieties aģentu, pievienojiet scenārijus manuāli vai noklikšķiniet uz Ģenerēt scenārijus ar MI, lai izveidotu to melnrakstus no aģenta uzvednes (ar neobligātu robežgadījumu pārbaudi), un grupējiet tos komplektā. Komplekts fiksē savus scenārijus un aģentu, kā arī minimālo nokārtošanas īpatsvaru un neobligātu nulles kritisko kļūmju noteikumu. Nokārtotās palaišanas kļūst par apstiprināto bāzlīniju; vēlākas pārejas no nokārtota uz nenokārtotu tiek atgrieztas kā regresijas.

CI izmantojiet organizācijas API atslēgu. Šis skripts aktivizē komplektu, aptaujā, līdz novērtēšana un salīdzināšana ir pabeigta, un beidz darbu ar nenulles kodu, ja spriedums nav pass:

#!/usr/bin/env bash
set -euo pipefail
 
: "${THUNDERPHONE_API_KEY:?Set THUNDERPHONE_API_KEY}"
: "${THUNDERPHONE_ORG_ID:?Set THUNDERPHONE_ORG_ID}"
: "${THUNDERPHONE_SUITE_ID:?Set THUNDERPHONE_SUITE_ID}"
 
base="https://api.thunderphone.com/v1/orgs/${THUNDERPHONE_ORG_ID}/suites/${THUNDERPHONE_SUITE_ID}"
auth="Authorization: Bearer ${THUNDERPHONE_API_KEY}"
 
run_id="$(curl --fail --silent --show-error -X POST "${base}/run" \
  -H "$auth" -H "Content-Type: application/json" -d '{}' | jq -r '.id')"
 
deadline=$((SECONDS + 1800))
while (( SECONDS < deadline )); do
  result="$(curl --fail --silent --show-error \
    "${base}/runs/${run_id}" -H "$auth")"
  status="$(jq -r '.status' <<<"$result")"
  if [[ "$status" == "completed" ]]; then
    jq . <<<"$result"
    [[ "$(jq -r '.verdict' <<<"$result")" == "pass" ]]
    exit
  fi
  sleep 10
done
 
echo "ThunderPhone suite timed out" >&2
exit 1

POST /v1/orgs/{org_id}/suites/{suite_id}/run atgriež 202 ar palaišanas ID. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id} atgriež status, verdict, pass_rate, critical_failure_count un bāzlīnijas regressions sarakstu. Abi galapunkti saista URL norādīto organizāciju ar API atslēgas organizāciju.

Modeļi

Regresiju korpuss katrai uzvednei

Uzturiet JSON failu ar {name, scenario_prompt, expected_outcome} virknēm. Pēc katras uzvednes izmaiņas palaidiet pilno kopu kā paketi; salīdziniet transkriptus un vērtējumus ar iepriekšējo palaišanu.

Dūmu tests katram laidienam

Viena pakete ar pieciem normālas darbības scenārijiem, ko palaižat pēc katras izvietošanas. Tā ir jutīga pret aizkavi, tāpēc saglabājiet stagger_seconds: 0.

Aizkaves etalonmērījumi

Palaidiet identiskus scenārijus dažādos produktu līmeņos (spark, bolt, storm-base). Salīdziniet call.graded vērtējumus un duration_seconds no katra iegūtā zvanu žurnāla.


Nākamās darbības