Build real-time voice chatbot applications with natural conversation flow and customizable personalities. Use when users want to create voice assistants, conversational AI, or interactive voice agents.
构建具有自然对话流程、情感识别和可定制个性的实时语音聊天机器人应用。
python
import requests
def getavailableagents(page=1, size=10):
url = https://api.senseaudio.cn/v1/realtime/agents
headers = {Authorization: fBearer {API_KEY}}
params = {page: page, size: size}
response = requests.get(url, headers=headers, params=params)
return response.json()
python
def createdialoguesession(agentid, newdialogue=True, conv_id=None):
url = https://api.senseaudio.cn/v1/realtime/invoke
headers = {
Authorization: fBearer {API_KEY},
Content-Type: application/json
}
payload = {
agentid: agentid,
newdialogue: newdialogue
}
if not newdialogue and convid:
payload[convid] = convid
response = requests.post(url, headers=headers, json=payload)
return response.json()
python
import asyncio
import websockets
import json
async def voicechatbotsession(roomid, token, appid):
# 使用 WebRTC 或 WebSocket 进行实时音频传输
# 这是一个简化示例
session_info = {
roomid: roomid,
token: token,
appid: appid
}
# 连接语音服务
# 具体实现取决于实时通信协议
# 基于浏览器的应用通常使用 WebRTC
return session_info
python
class VoiceChatbot:
def init(self, agentid, apikey):
self.agentid = agentid
self.apikey = apikey
self.conv_id = None
self.room_id = None
self.session_active = False
def start_conversation(self):
开始新对话
result = createdialoguesession(
agentid=self.agentid,
new_dialogue=True
)
self.convid = result[convid]
self.roomid = result[roomid]
self.session_active = True
return result
def continue_conversation(self):
继续现有对话
if not self.conv_id:
raise ValueError(没有可继续的活跃对话)
result = createdialoguesession(
agentid=self.agentid,
new_dialogue=False,
convid=self.convid
)
self.roomid = result[roomid]
return result
def check_status(self):
检查代理是否在运行
url = https://api.senseaudio.cn/v1/realtime/status
headers = {Authorization: fBearer {self.api_key}}
params = {roomid: self.roomid}
response = requests.get(url, headers=headers, params=params)
return response.json()
def end_conversation(self):
停止代理
url = https://api.senseaudio.cn/v1/realtime/leave
headers = {
Authorization: fBearer {self.api_key},
Content-Type: application/json
}
payload = {roomid: self.roomid}
response = requests.post(url, headers=headers, json=payload)
self.session_active = False
return response.json()
html
python
class ChatbotManager:
def init(self, api_key):
self.apikey = apikey
self.active_sessions = {}
def createsession(self, userid, agent_id):
chatbot = VoiceChatbot(agentid, self.apikey)
sessioninfo = chatbot.startconversation()
self.activesessions[userid] = {
chatbot: chatbot,
sessioninfo: sessioninfo,
started_at: datetime.now()
}
return session_info
def getsession(self, userid):
return self.activesessions.get(userid)
def endsession(self, userid):
if userid in self.activesessions:
session = self.activesessions[userid]
session[chatbot].end_conversation()
del self.activesessions[userid]
python
def trackconversationmetrics(convid, roomid):
metrics = {
convid: convid,
roomid: roomid,
start_time: datetime.now(),
end_time: None,
duration: None,
user_messages: 0,
agent_responses: 0
}
return metrics
def updatemetrics(metrics, eventtype):
if eventtype == usermessage:
metrics[user_messages] += 1
elif eventtype == agentresponse:
metrics[agent_responses] += 1
elif eventtype == sessionend:
metrics[end_time] = datetime.now()
metrics[duration] = (metrics[endtime] - metrics[starttime]).total_seconds()
return metrics
python
def createcustomerservicebot(agentid):
创建客服语音机器人
chatbot = VoiceChatbot(agentid, APIKEY)
# 开始对话
session = chatbot.start_conversation()
# 监控状态
while chatbot.session_active:
status = chatbot.check_status()
if status[status] == STOPPED:
break
time.sleep(5)
return session
python
def createlearningassistant(agentid, studentid):
创建个性化学习助手
chatbot = VoiceChatbot(agentid, APIKEY)
# 开始新课
session = chatbot.start_conversation
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 chatbot-1776107595 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 chatbot-1776107595 技能
skillhub install chatbot-1776107595
文件大小: 3.96 KB | 发布时间: 2026-4-15 12:02