ஒரு ஏஜென்ட்டை தொடக்கம் முதல் முடிவு வரை சோதிக்கவும் (API)

AI ஏஜென்ட்டை மேம்படுத்துவது என்பது அதன் prompt, அதன் கருவிகள், மற்றும் விளிம்பு நிலைகளை அது கையாளும் விதம் ஆகியவற்றை மேம்படுத்துவதாகும். நீங்கள் வழங்கும் சூழ்நிலை prompt-ஐப் பயன்படுத்தி test-calls API, ஏஜென்ட்டுக்கு எதிராக உண்மையான (bot-to-bot அல்லது SIP loopback) அழைப்புகளை இயக்குகிறது — ஒவ்வொரு இயக்கமும் உரைப்பதிவு, மதிப்பீடு மற்றும் கட்டண விவரங்களுடன் உண்மையான அழைப்புப் பதிவை உருவாக்கும்; இதனால் ஏஜென்ட் எவ்வாறு செயல்படுகிறது, அதற்கு எவ்வளவு செலவாகிறது என்பதைத் துல்லியமாகக் காணலாம்.

இதற்குப் பயன்படுத்துங்கள்:

ஒருமுறை: ஒற்றை இயக்கம்

curl -X POST https://api.thunderphone.com/v1/test-calls \
  -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
  }'

புலங்கள்:

புலம்வகைதேவைவிளக்கம்
target_typestringஆம்agent அல்லது phone_number
target_idintegerஆம்ஏஜென்ட் id (அல்லது தொலைபேசி எண் id)
directionstringஆம்outbound (bot அழைப்பை மேற்கொள்ளும்) அல்லது inbound (bot பதிலளிக்கும்)
scenario_promptstringஇல்லைசோதனை bot என்ன கூறுகிறது என்பதை நிர்ணயிக்கும்
modestringஇல்லைbot (bot-to-bot, இயல்புநிலை) அல்லது sip (SIP loopback)
consent_to_chargebooleanஆம்true ஆக இருக்க வேண்டும். சோதனை அழைப்புகளுக்கு வழக்கமான கட்டணத்தின் 2× செலவாகும்
target_numberstringஇல்லைbot-இன் caller id-க்கான மேலெழுதும் மதிப்பு (E.164)

பதில் status="queued" நிலையில் உள்ள சோதனை அழைப்பு இயக்கப் பொருளாக இருக்கும். status, completed அல்லது failed ஆகும் வரை poll செய்யுங்கள்; call_id அமைக்கப்பட்டதும், GET /v1/calls/{call_id}/transcript மூலம் உரைப்பதிவை ஏற்றுங்கள்.

தொகுப்புகள்: இணையான சூழ்நிலைகள்

N சூழ்நிலைகளை ஒரேநேரத்தில் இயக்குங்கள் — அறியப்பட்ட ஒவ்வொரு விளிம்பு நிலையையும் இணையாகச் சோதிக்கும் regression தொகுப்புகளுக்கு இது பயனுள்ளது:

curl -X POST https://api.thunderphone.com/v1/test-call-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
  }'

பதில், துணை இயக்க id-களின் run_ids பட்டியலைக் கொண்டிருக்கும். தொகுப்பு நிலையைப் பெறுங்கள்:

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

run_count அதிகபட்சம் 20 ஆக வரையறுக்கப்பட்டுள்ளது; ஏஜென்ட்டை அதிகமாக அழுத்துவதைத் தவிர்க்க stagger_seconds, உருவாக்கும் செயல்களுக்கு இடைவெளி அளிக்கிறது (0–60 வி.).

CI-இல் இணைக்கவும்

சிமுலேஷன்கள் பக்கத்தில் (/dashboard/simulations) ஒரு ரிலீஸ் கேட் தொகுப்பை உருவாக்குங்கள் — ஏஜென்ட்டைத் தேர்ந்தெடுத்து, கையால் காட்சிநிலைகளைச் சேர்க்கவும் அல்லது ஏஜென்ட்டின் prompt-இலிருந்து அவற்றை வரைவு செய்ய AI மூலம் காட்சிநிலைகளை உருவாக்கு என்பதைக் கிளிக் செய்யவும் (விருப்பமான edge-case சோதனையுடன்), பின்னர் அவற்றை ஒரு தொகுப்பாகக் குழுவாக்கவும். ஒரு தொகுப்பு அதன் காட்சிநிலைகள் மற்றும் ஏஜென்ட்டுடன், குறைந்தபட்ச தேர்ச்சி விகிதம் மற்றும் விருப்பமான முக்கியமான தோல்விகள் இல்லாதிருக்க வேண்டும் என்ற விதியையும் நிலைநிறுத்துகிறது. தேர்ச்சி பெறும் ரன்கள் ஏற்றுக்கொள்ளப்பட்ட அடிப்படையாக மாறும்; பின்னர் தேர்ச்சியிலிருந்து தோல்விக்கான மாற்றங்கள் பின்னடைவுகளாக வழங்கப்படும்.

CI-இல் ஒரு நிறுவன API விசையை பயன்படுத்துங்கள். இந்த ஸ்கிரிப்ட் தொகுப்பைத் தொடங்கி, மதிப்பீடும் ஒப்பீடும் முடியும் வரை வினவுகிறது, மேலும் தீர்ப்பு 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, ரன் ஐடியுடன் 202-ஐ வழங்குகிறது. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id}, status, verdict, pass_rate, critical_failure_count, மற்றும் அடிப்படை regressions பட்டியலை வழங்குகிறது. இரண்டு எண்ட்பாயிண்ட்களும் URL நிறுவனத்தை API விசையின் நிறுவனத்துடன் பிணைக்கின்றன.

முறைகள்

ஒவ்வொரு prompt-க்குமான பின்னடைவு தொகுப்பு

{name, scenario_prompt, expected_outcome} டியூப்பிள்களைக் கொண்ட JSON கோப்பைப் பராமரிக்கவும். ஒவ்வொரு prompt மாற்றத்தின்போதும், முழுத் தொகுப்பையும் ஒரு பேட்ச்சாக இயக்குங்கள்; முந்தைய ரன்னுடன் உரையாடல் பதிவுகளையும் மதிப்பீடுகளையும் ஒப்பிடுங்கள்.

ஒவ்வொரு ரிலீஸுக்குமான ஸ்மோக் சோதனை

ஒவ்வொரு deploy-க்குப் பிறகும் இயக்கும், வெற்றிகரமான பாதையிலுள்ள ஐந்து காட்சிநிலைகளின் ஒற்றை பேட்ச். லேட்டன்சி உணர்திறன் கொண்டது என்பதால், stagger_seconds: 0 என வைத்திருங்கள்.

லேட்டன்சி பெஞ்ச்மார்க்கிங்

வெவ்வேறு தயாரிப்பு அடுக்குகளுக்கு (spark, bolt, storm-base) எதிராக ஒரே மாதிரியான காட்சிநிலைகளை இயக்குங்கள். ஒவ்வொரு பெறப்பட்ட அழைப்பு பதிவிலிருந்தும் call.graded மதிப்பெண்களையும் duration_seconds-ஐயும் ஒப்பிடுங்கள்.


அடுத்த படிகள்