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:

Ü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ä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 inimlikuma simuleeritud helistaja jaoks, näiteks sooja ümbersuunamise konsultatsioonitestides
consent_to_chargebooleanjahPeab olema true. Hinnangus arveldatakse nii valitud agendi kui ka simuleeritud helistaja eest, lisaks iga telefoniside etapi eest
target_numberstringeiE.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.


Järgmised sammud