ThunderPhone 2.0 on nüüd saadaval.Iseteenindusena alates 2 senti/min.Loe uudist

Developer cookbook

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.completed veebikonks → 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äliTüüpKohustuslikKirjeldus
target_typestringjahagent või phone_number
target_idintegerjahAgendi ID (või telefoninumbri ID)
directionstringeioutbound (vaikimisi; testhelistaja helistab) või inbound (testhelistaja vastab)
scenario_promptstringeiMäärab, mida testbot ütleb
language / primary_languagestringeiTesthelistaja keel; toetamata koodid lükatakse tagasi
simulator_productstringeitesting (vaikimisi) või spark, et kasutada inimlikumat simuleeritud helistajat, näiteks soojalt edastatud kõne konsultatsioonitestides
consent_to_chargebooleanjahPeab olema true. Arveldus hõlmab nii valitud agenti kui ka simuleeritud helistajat ning kõiki telefoniside etappe
target_numberstringeiKaugpoole 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 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 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.


Järgmised sammud