Jaribu ejenti kutoka mwanzo hadi mwisho (API)

Kuboresha ejenti ya AI kunamaanisha kuboresha prompt yake, zana zake, na jinsi inavyoshughulikia hali za kipekee. simulations API huendesha simu halisi dhidi ya ejenti kwa kutumia prompt ya tukio unayotoa. Kulenga ejenti huunda utekelezaji wa boti-kwa-boti; kulenga nambari ya simu huunda utekelezaji wa SIP loopback. Kila utekelezaji huzalisha kumbukumbu halisi ya simu yenye nakala ya mazungumzo, tathmini na utozaji, hivyo unaona hasa jinsi ejenti inavyojiendesha na gharama yake.

Itumie kwa:

Mara moja: utekelezaji 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) au inbound (mpigaji wa majaribio hujibu)
scenario_promptstringhapanaHuongoza kile boti ya majaribio inasema
language / primary_languagestringhapanaLugha ya mpigaji wa majaribio; misimbo isiyotumika inakataliwa
simulator_productstringhapanatesting (chaguo-msingi) au spark kwa mpigaji aliyeigwa mwenye sifa zaidi za kibinadamu, kama vipimo vya ushauri wa uhamisho wa moja kwa moja
consent_to_chargebooleanndiyoLazima iwe true. Makadirio hutoza gharama za ejenti iliyochaguliwa na mpigaji aliyeigwa, pamoja na njia yoyote ya simu
target_numberstringhapanaUbadilishaji wa E.164 kwa upande wa mbali; vinginevyo nambari ya majaribio ya jukwaa hutumika

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

Jibu ni kitu cha utekelezaji wa uigaji chenye status="queued". Chunguza hadi status iwe completed au failed; call_id ikishawekwa, pakia nakala ya mazungumzo kupitia GET /v1/calls/{call_id}/transcript.

Batches: matukio sambamba

Endesha matukio N kwa wakati mmoja — muhimu kwa seti za vipimo vya urejeleaji zinazoshughulikia 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 utekelezaji wa watoto. Pata hali ya batch:

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 uzinduzi ili kuepuka kuielemea ejenti (0–60 s).

Iunganishe kwenye CI

Unda kikundi cha kizuizi cha toleo kwenye ukurasa wa Simulations (/dashboard/simulations) — chagua ejenti, ongeza senario mwenyewe au bofya Tengeneza senario kwa AI ili kuzitayarisha kutoka kwenye prompt ya ejenti (ukiwa na chaguo la kupitisha matukio ya kipekee), kisha zipange katika kikundi. Kikundi hufunga senario zake na ejenti, pamoja na kiwango cha chini cha ufaulu na kanuni ya hiari ya kutokuwa na hitilafu zozote muhimu. Utekelezaji unaofaulu huwa msingi unaokubaliwa; mabadiliko ya baadaye kutoka kufaulu→kushindwa hurejeshwa kama hitilafu za kurudi nyuma.

Tumia ufunguo wa API wa shirika katika CI. Script hii huanzisha kikundi, huchunguza hadi uwekaji alama na ulinganishaji ukamilike, na hutoka kwa thamani isiyo sifuri isipokuwa uamuzi uwe 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 utekelezaji. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id} hurejesha status, verdict, pass_rate, critical_failure_count, na orodha ya msingi ya regressions. Endpoints zote mbili hufunga shirika lililo kwenye URL kwa shirika la ufunguo wa API.

Miundo

Korpus ya hitilafu za kurudi nyuma kwa kila prompt

Dumisha faili ya JSON ya tuples za {name, scenario_prompt, expected_outcome}. Kwa kila mabadiliko ya prompt, endesha seti kamili kama batch; linganisha transkripti na alama dhidi ya utekelezaji uliotangulia.

Jaribio la moshi kwa kila toleo

Batch moja ya senario tano za njia tarajiwa unazoendesha baada ya kila usambazaji. Ni nyeti kwa muda wa kusubiri, kwa hiyo weka stagger_seconds: 0.

Upimaji wa muda wa kusubiri

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


Hatua zinazofuata