Panggilan balik agen memungkinkan aplikasi Anda secara otomatis memicu aksi atau tanggapan yang telah ditentukan sebelumnya ketika kejadian tertentu terjadi. Topik ini menjelaskan cara menggunakannya.
Ikhtisar
Saat agen AI sedang Berjalan dan suatu kejadian tertentu terjadi, Alibaba Cloud secara otomatis mengirimkan permintaan ke server Anda sehingga Anda dapat memproses kejadian tersebut menggunakan logika bisnis kustom Anda sendiri.
Konfigurasi panggilan balik agen
Buka halaman AI Agents di Konsol, temukan agen yang ingin dikonfigurasi, lalu klik Manage pada kolom Actions.
Pada tab Callback Configurations, klik Enable untuk mengonfigurasi panggilan balik agen. Pilih jenis event dan atur Callback URL serta Authentication Token opsional.
CatatanToken ditempatkan dalam header
Authorizationuntuk autentikasi. Server Anda harus memverifikasi token ini guna memastikan permintaan berasal dari sumber tepercaya.
Klik OK untuk menyimpan konfigurasi.
Bidang muatan callback
Nama | Tipe | Diperlukan | Deskripsi | Contoh |
aiAgentId | String | Ya | ID agen. | xxxxx |
instanceId | String | Ya | ID unik dari instans agen. | 39f8e0bc005e4f309379701645f4**** |
event | String | Ya | Jenis event.
| agent_start |
data | Json | Tidak | Muatan data, seperti catatan obrolan. | |
code | String | Ya | Kode status untuk event callback. Untuk detailnya, lihat Kode status event callback. | 1001 |
message | String | Ya | Pesan callback. | Pengguna telah dikeluarkan dari ruangan |
timestamp | String | Ya | Timestamp saat event panggilan balik terjadi. | 2023-10-01T12:00:00Z |
userData | String | Tidak | Informasi yang ditentukan pengguna. | |
extendData | Json | Tidak | Informasi tambahan kustom. |
Contoh callback
Panggilan balik status alur kerja
Untuk event status alur kerja, bidang extendData adalah sebagai berikut:
Nama | Tipe | Deskripsi |
channelId | String | ID saluran. |
sentenceId | Int | ID unik untuk giliran percakapan. Catatan Beberapa respons agen terhadap satu pertanyaan pengguna memiliki sentenceId yang sama. |
requestTimestamp | String |
|
responseTimestamp | String |
|
Contoh server
Python
from aiohttp import web
import json
from loguru import logger
async def handle_post(request):
"""
Menangani permintaan POST dan mencatat data yang diterima.
"""
# Mendapatkan header Authorization dari permintaan.
authorization_header = request.headers.get('Authorization')
if authorization_header is None or not authorization_header.startswith('Bearer fixed-token'):
logger.error("Permintaan tidak sah")
return web.Response(status=401, text='Unauthorized')
try:
# Mendapatkan data dari badan permintaan.
callback_data = await request.json()
logger.info("Data JSON yang diurai:")
logger.info(json.dumps(callback_data, indent=4))
return web.Response(text='Callback received successfully', status=200)
except json.JSONDecodeError:
# Jika penguraian JSON gagal, mengembalikan respons kesalahan.
return web.Response(text='Invalid JSON', status=400)
app = web.Application()
app.add_routes([web.post('/', handle_post)])
if __name__ == '__main__':
web.run_app(app, host='localhost', port=8081) Kode status event panggilan balik
Kode status | Event panggilan balik | Pesan panggilan balik |
1001 | Agen dimulai | Agen AI dimulai. |
1002 | Agen dihentikan | Agen AI berakhir. |
1003 | Sesi dimulai | Sesi dimulai |
4001 | Rute agen bersamaan habis | Rute konkuren habis |
4002 | Agen dikeluarkan dari saluran | Pengguna telah dikeluarkan dari ruangan |
4003 | Token agen tidak valid | Token tidak valid untuk Agen AI |
4004 | Langganan aliran agen gagal | Gagal menarik aliran untuk Agen AI |
4005 | ASR pihak ketiga gagal | deskripsi kesalahan |
4006 | Layanan avatar tidak tersedia | Layanan avatar tidak tersedia |
8001 | Maksud dikenali | Peristiwa niat dikenali |
8002 | Data LLM diterima | Peristiwa data LLM diterima |
8003 | Data TTS diterima | Peristiwa data TTS diterima |