Open in
Testi agenti algusest lõpuni (API)
Käivita ThunderPhone API kaudu ühekordseid simulatsioone, paralleelseid stsenaariumipakette ja väljalaskevärava testikomplekte, et agendi regressioonid leitaks enne, kui kliendid neid kuulevad.
AI-agendi arendamine tähendab selle viiba, tööriistade ja äärmusjuhtumite käsitlemise viisi arendamist. Simulatsioonide API teeb tegelikke kõnesid agendile sinu antud stsenaariumiviiba abil. Agendi sihtimine loob botilt botile käituse; telefoninumbri sihtimine loob SIP-tagasisideahela käituse. Iga käitus loob tegeliku 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:
- Kasutuselevõtueelsete suitsutestide tegemiseks pärast iga viibamuudatust
- CI-ga ühendatud regressioonitestide jaoks (seo
test-call.completedveebikonks → nurja ehitus, kui skoor langeb) - Samaaegsuspiirangute koormustestimiseks
Ühekordne käitus: üks käitus
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, et kasutada inimlikumat simuleeritud helistajat, näiteks soojalt edastatud kõne konsultatsioonitestides |
consent_to_charge | boolean | jah | Peab olema true. Arveldus hõlmab nii valitud agenti kui ka simuleeritud helistajat ning kõiki telefoniside etappe |
target_number | string | ei | Kaugpoole E.164 alistus; muul juhul kasutatakse platvormi testnumbrit |
mode on kirjutuskaitstud ja tuletatakse väljast target_type: agent loob
väärtuse mode="bot", samas kui phone_number loob väärtuse mode="sip".
Vastus on simulatsiooni käitusobjekt
olekus status="queued". Küsitle kuni status muutub väärtuseks completed või
failed; kui call_id on määratud, laadi transkriptsioon läbi
GET /v1/calls/{call_id}/transcript.
Partiikäitused: paralleelsed stsenaariumid
Käivita N stsenaariumi samaaegselt — kasulik regressioonitestide jaoks, mis kontrollivad kõiki teadaolevaid äärmusjuhtumeid 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äituste ID-de loendit run_ids. Hangi partii
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äivitused ajas
laiali, et vältida agendi ülekoormamist (0–60 s).
Seo see CI-ga
Loo Simulatsioonide lehel (/dashboard/simulations) väljalaskevärava komplekt — vali agent, lisa stsenaariumid käsitsi või klõpsa Genereeri stsenaariumid tehisintellektiga, et koostada need agendi viiba põhjal (soovi korral koos äärmusjuhtumite kontrolliga), ning rühmita need komplekti.
Komplekt fikseerib oma stsenaariumid ja agendi ning minimaalse läbimise määra ja valikulise nulli kriitiliste ebaõnnestumiste reegli. Läbinud käitused muutuvad aktsepteeritud lähtealuseks; hilisemad üleminekud läbimiselt ebaõnnestumisele tagastatakse regressioonidena.
Kasuta CI-s organisatsiooni API-võtit.
See skript käivitab komplekti, kontrollib olekut kuni hindamine ja võrdlus on
lõpetatud ning lõpetab nullist erineva väljumiskoodiga, kui otsus ei ole 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 1POST /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 lähtealuse
regressions loendi. Mõlemad lõpp-punktid seovad URL-is oleva organisatsiooni
API-võtme organisatsiooniga.
Käivita komplekt ajakava alusel
Ava agendi vahekaart Simuleeri, vali Väljalaskevärava komplektid ning loo või muuda komplekti. Lülita sisse Käivita ajakava alusel, vali Sagedus ja Ajavöönd, seejärel määra kuvatud viisil Tundijärgne minut, Kohalik aeg või Päev. Vali Salvesta komplekt. Valiku Käivita ajakava alusel tühistamine eemaldab töölaua ajakava.
API kaudu
Saada komplektile PATCH-päring, et lisada või asendada selle ajakava. Täieliku komplektiobjekti ja lõpp-punktide kohta vaata Komplektid (väljalaskeväravad).
curl -X PATCH https://api.thunderphone.com/v1/suites/{suite_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"schedule": {
"enabled": true,
"frequency": "daily",
"timezone": "America/Chicago",
"hour": 6,
"minute": 30
}
}'frequency võib olla hourly, daily või weekly. Kasuta IANA ajavööndit.
Tunnipõhised ajakavad kasutavad minute; päevapõhised ajakavad kasutavad hour
ja minute; nädalapõhised ajakavad kasutavad lisaks weekday, kus esmaspäev on
0 ja pühapäev on 6. Komplekti vastus sisaldab välju next_run_at ja
last_run_at.
Ajad järgivad valitud ajavööndi suveaja muutusi. Ajastatud käitused kuvatakse
komplekti käituste ajaloos ning kasutavad selle praegust agenti, stsenaariume,
kriteeriume ja aktsepteeritud lähtealust. Iga genereeritud testkõne saadab
sündmuse test-call.completed; komplektitaseme lõpetamise veebikonksu pole.
Ajastatud kõnede eest arveldatakse sama simulatsioonihinna alusel nagu käsitsi
käivitatud komplektikäituste eest ning komplekti käitusel salvestatakse
trigger: "schedule".
Ajakava peatamiseks ilma selle kellaaegu muutmata saada täielik olemasolev
ajakavaobjekt PATCH-päringuga koos väärtusega "enabled": false. frequency on
kohustuslik; välja jäetud ajavööndi- ja ajaväljad lähtestatakse vaikeväärtustele,
seega lisa olemasolevad väärtused. Ajakava eemaldamiseks saada
"schedule": null.
Mustrite tüübid
Promptipõhine regressioonikorpus
Halda JSON-faili {name, scenario_prompt, expected_outcome}
tuplitega. Käivita iga prompti muudatuse järel kogu komplekt pakina; võrdle
transkripte ja hindeid eelmise käivitusega.
Väljalaske-eelne suitsutest
Üks pakett viie ootuspärase stsenaariumiga, mille käivitad pärast iga
juurutust. Latentsustundlik, seega hoia stagger_seconds: 0.
Latentsuse võrdlusuuring
Käivita identsed stsenaariumid erinevate tootetasemete (spark,
bolt, storm-base) vastu. Võrdle iga tulemuseks saadud kõnelogi
call.graded skoori ja duration_seconds väärtust.