Testi agenti terviklikult (API)
AI-agendi täiustamine tähendab selle viiba, tööriistade ja erijuhtumite käsitlemise viisi täiustamist. Simulatsioonide API teeb päris kõnesid agendile sinu antud stsenaariumiviiba alusel. Agendi sihtimine loob botilt botile käivituse; telefoninumbri sihtimine loob SIP-tagasisideahela käivituse. Iga käivitus loob päris kõnelogi koos transkriptsiooni, hindamise ja arveldusega, et näeksid täpselt, kuidas agent käitub ja kui palju see maksab.
Kasuta seda järgmiseks:
- Käivituseelseteks suitsutestideks pärast iga viiba muudatust
- CI-ga ühendatud regressioonitestideks (seo
test-call.completedveebikonks → katkesta järk, kui skoor langeb) - Samaaegsuspiirangute koormustestimiseks
Ühekordne: üks käivitus
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
}'
Väljad:
| Väli | Tüüp | Kohustuslik | Kirjeldus |
|---|---|---|---|
target_type | string | jah | agent või phone_number |
target_id | integer | jah | Agendi ID (või telefoninumbri ID) |
direction | string | ei | outbound (vaikimisi; testhelistaja helistab) või inbound (testhelistaja vastab) |
scenario_prompt | string | ei | Määrab, mida testbot ütleb |
language / primary_language | string | ei | Testhelistaja keel; toetamata koodid lükatakse tagasi |
simulator_product | string | ei | testing (vaikimisi) või spark inimlikuma simuleeritud helistaja jaoks, näiteks sooja ümbersuunamise konsultatsioonitestides |
consent_to_charge | boolean | jah | Peab olema true. Hinnangus arveldatakse nii valitud agendi kui ka simuleeritud helistaja eest, lisaks iga telefoniside etapi eest |
target_number | string | ei | E.164 ülekirjutus kaugpoole jaoks; muul juhul kasutatakse platvormi testnumbrit |
mode on kirjutuskaitstud ja tuletatakse väärtusest target_type: agent annab
mode="bot", samas kui phone_number annab mode="sip".
Vastus on simulatsiooni käivituse objekt
olekus status="queued". Päri olekut, kuni status muutub väärtuseks completed või
failed; kui call_id on määratud, laadi transkriptsioon
GET /v1/calls/{call_id}/transcript kaudu.
Partiikäivitused: paralleelsed stsenaariumid
Käivita N stsenaariumi samaaegselt — kasulik regressioonitestide jaoks, mis tabavad iga teadaolevat erijuhtumit paralleelselt:
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
}'
Vastus sisaldab alamkäivituste ID-de loendit run_ids. Hangi partiikäivituse
olek:
curl https://api.thunderphone.com/v1/simulations/batches/{batch_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
run_count on piiratud väärtusega 20; stagger_seconds jaotab käivituste loomise
ajaliselt, et vältida agendi ülekoormamist (0–60 s).
Seo see CI-ga
Loo Simulations lehel (/dashboard/simulations) väljalaskeblokeerija komplekt — vali agent, lisa stsenaariumid käsitsi või klõpsa Genereeri stsenaariumid AI abil, et koostada need agendi viiba põhjal (soovi korral ka äärejuhtumite kontrolliga), ning rühmita need komplekti.
Komplekt lukustab oma stsenaariumid ja agendi ning minimaalse läbimise määra ja valikulise null-kriitiliste-tõrgete reegli. Läbitud käitused saavad aktsepteeritud baasjooneks; hilisemad üleminekud läbitud→ebaõnnestunud tagastatakse regressioonidena.
Kasuta CI-s organisatsiooni API-võtit.
See skript käivitab komplekti, küsib olekut seni, kuni hindamine ja võrdlus on lõppenud, ning lõpetab nullist erineva väljumiskoodiga, kui otsus pole 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 tagastab käituse ID-ga 202. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id} tagastab väljad
status, verdict, pass_rate, critical_failure_count ja baasjoone
regressions loendi. Mõlemad lõpp-punktid seovad URL-is oleva organisatsiooni API-võtme organisatsiooniga.
Mustrite näited
Viibapõhine regressioonide korpus
Halda JSON-faili {name, scenario_prompt, expected_outcome}
korteežidega. Iga viiba muudatuse korral käivita kogu kogum paketina; võrdle transkriptsioone ja hindeid eelmise käitusega.
Väljalaskepõhine suitsutest
Üks viiest tavapärase kasutusvoo stsenaariumist koosnev pakett, mille käivitad pärast iga juurutust. Latentsustundlik, seega hoia stagger_seconds: 0.
Latentsuse võrdlusuuring
Käivita identsed stsenaariumid eri tootetasemete (spark,
bolt, storm-base) vastu. Võrdle iga saadud kõnelogi call.graded skoore ja duration_seconds väärtusi.