ThunderPhone 2.0 sasa inapatikana.Anza mwenyewe, kuanzia 2¢/dakika.Soma tangazo

Developer cookbook

Jaribu ejenti kutoka mwanzo hadi mwisho (API)

Endesha simulizi za mara moja, makundi sambamba ya matukio, na seti za vigezo vya utoaji kupitia API ya ThunderPhone ili hitilafu za ejenti zibainike kabla wateja hawajazisikia.

Kuboresha ejenti ya AI kunamaanisha kuboresha prompt yake, zana zake, na jinsi inavyoshughulikia hali za kipekee. API ya uigaji huendesha simu halisi dhidi ya ejenti kwa kutumia prompt ya tukio unayotoa. Kulenga ejenti huunda uendeshaji wa boti-kwa-boti; kulenga nambari ya simu huunda uendeshaji wa SIP wa loopback. Kila uendeshaji huzalisha kumbukumbu halisi ya simu yenye nakala ya mazungumzo, upimaji, na utozaji, ili uone jinsi ejenti inavyofanya kazi na gharama yake.

Itumie kwa:

  • Majaribio ya haraka kabla ya kusambaza baada ya kila uhariri wa prompt
  • Mkusanyiko wa majaribio ya regresha yaliyounganishwa kwenye CI (unganisha webhook ya test-call.completed → feli uundaji ikiwa alama itashuka)
  • Kupima mipaka ya utendakazi wa wakati mmoja chini ya mzigo

Uendeshaji wa mara moja: uendeshaji mmoja

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
  }'

Sehemu:

SehemuAinaInahitajikaMaelezo
target_typestringndiyoagent au phone_number
target_idintegerndiyoKitambulisho cha ejenti (au kitambulisho cha nambari ya simu)
directionstringhapanaoutbound (chaguo-msingi; mpigaji wa majaribio hupiga simu) au inbound (mpigaji wa majaribio hujibu)
scenario_promptstringhapanaHuongoza kile ambacho boti ya majaribio husema
language / primary_languagestringhapanaLugha ya mpigaji wa majaribio; misimbo isiyotumika hukataliwa
simulator_productstringhapanatesting (chaguo-msingi) au spark kwa mpigaji simu aliyeigwa anayefanana zaidi na binadamu, kama majaribio ya mashauriano ya warm-transfer
consent_to_chargebooleanndiyoLazima iwe true. Makadirio hutoza ejenti iliyochaguliwa na mpigaji simu aliyeigwa, pamoja na njia yoyote ya telefoni
target_numberstringhapanaUbadilishaji wa E.164 kwa upande wa mbali; vinginevyo nambari ya majaribio ya jukwaa hutumika

mode ni ya kusoma pekee na hutokana na target_type: agent huzalisha mode="bot", huku phone_number huzalisha mode="sip".

Jibu ni kitu cha uendeshaji wa uigaji katika status="queued". Kagua mara kwa mara hadi status iwe completed au failed; pindi call_id inapowekwa, pakia nakala ya mazungumzo kupitia GET /v1/calls/{call_id}/transcript.

Makundi: matukio sambamba

Endesha matukio N kwa wakati mmoja — muhimu kwa mikusanyiko ya majaribio ya regresha ambayo hushughulikia kila hali ya kipekee inayojulikana kwa sambamba:

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
  }'

Jibu lina orodha ya run_ids ya vitambulisho vya uendeshaji wa watoto. Leta hali ya kundi:

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

run_count ina kikomo cha 20; stagger_seconds hutenganisha uanzishaji ili kuepuka kuilemea ejenti (0–60 s).

Iunganishe kwenye CI

Unda kikundi cha kizuizi cha toleo kwenye ukurasa wa Uigaji (/dashboard/simulations) — chagua ejenti, ongeza matukio mwenyewe au bofya Tengeneza matukio kwa AI ili kuyatayarisha kutoka kwenye prompt ya ejenti (ukiwa na hiari ya kupitia matukio ya kipekee), kisha yapange katika kikundi. Kikundi hufunga matukio na ejenti wake, pamoja na kiwango cha chini cha ufaulu na kanuni ya hiari ya kutokuwa na hitilafu zozote muhimu. Uendeshaji unaofaulu huwa msingi unaokubalika; mabadiliko ya baadaye kutoka ufaulu→kufeli hurudishwa kama kurudi nyuma.

Tumia ufunguo wa API wa shirika katika CI. Hati hii huanzisha kikundi, hufuatilia hadi ukadiriaji na ulinganishaji vikamilike, na hutoka kwa msimbo usio sifuri isipokuwa uamuzi ni 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 hurejesha 202 pamoja na kitambulisho cha uendeshaji. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id} hurejesha status, verdict, pass_rate, critical_failure_count, na orodha ya regressions ya msingi. Ncha zote mbili hufunga shirika lililo kwenye URL kwenye shirika la ufunguo wa API.

Endesha kikundi kwa ratiba

Fungua kichupo cha Uigaji cha ejenti, chagua Vikundi vya vizuizi vya toleo, kisha unda au hariri kikundi. Washa Endesha kwa ratiba, chagua Marudio na Saa za eneo, kisha weka Dakika baada ya saa, Saa ya eneo, au Siku kama inavyoonyeshwa. Chagua Hifadhi kikundi. Kuondoa uteuzi wa Endesha kwa ratiba huondoa ratiba ya dashibodi.

Kupitia API

Tumia PATCH kwenye kikundi ili kuongeza au kubadilisha ratiba yake. Tazama Vikundi (vizuizi vya toleo) kwa objekti kamili ya kikundi na ncha zake.

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 inaweza kuwa hourly, daily, au weekly. Tumia saa za eneo za IANA. Ratiba za kila saa hutumia minute; ratiba za kila siku hutumia hour na minute; ratiba za kila wiki pia hutumia weekday, ambapo Jumatatu ni 0 na Jumapili ni 6. Jibu la kikundi linajumuisha next_run_at na last_run_at.

Nyakati hufuata mabadiliko ya saa za majira ya joto ya saa za eneo zilizochaguliwa. Uendeshaji uliopangwa huonekana katika historia ya uendeshaji ya kikundi na hutumia ejenti, matukio, vigezo, na msingi wake unaokubalika wa sasa. Kila simu ya jaribio inayotengenezwa hutoa test-call.completed; hakuna webhook ya ukamilishaji ya kiwango cha kikundi. Simu zilizopangwa hutozwa kwa kiwango kilekile cha uigaji kama uendeshaji wa kikundi wa mkono na hurekodi trigger: "schedule" kwenye uendeshaji wa kikundi.

Ili kusitisha ratiba bila kubadilisha muda wake, tumia PATCH kwenye objekti kamili ya ratiba iliyopo kwa "enabled": false. frequency inahitajika; saa za eneo na sehemu za muda zilizoachwa huwekwa upya kwenye chaguo-msingi, kwa hiyo jumuisha thamani zilizopo. Tuma "schedule": null ili kuondoa ratiba.

Mifumo

Hazina ya urejeshi kwa kila prompt

Dumisha faili ya JSON ya tupli za {name, scenario_prompt, expected_outcome}. Kila prompt inapobadilishwa, endesha seti nzima kama batch; linganisha transkripti na alama dhidi ya utekelezaji uliopita.

Jaribio la haraka kwa kila toleo

Batch moja ya hali tano za njia tarajiwa unayoendesha baada ya kila deploy. Inazingatia latency, kwa hivyo weka stagger_seconds: 0.

Upimaji wa latency

Endesha hali zinazofanana dhidi ya viwango tofauti vya bidhaa (spark, bolt, storm-base). Linganisha alama za call.graded na duration_seconds kutoka kwenye kila kumbukumbu ya simu inayotokana.


Hatua zinazofuata