Open in
Kasuta ThunderPhone
Käivita ThunderPhone
LiveKit Agents on avatud lähtekoodiga raamistik reaalajas töötavate häälagentide jaoks LiveKiti ruumides. ThunderPhone ühendub reaalajamudelina: raamistik saadab osaleja heli, ThunderPhone tagastab agendi hääle, transkriptsioonid ja funktsioonikutseid ning LiveKiti ruum, SIP-magistraalid ja telefoniside edastavad heli. Kõnetuvastus, keelemudel, hääl, kõnevoorude haldus, 47 keelt ja tööriistad töötavad kõik ThunderPhone'is.
Sel viisil tehtud kõned kuvatakse kõneajaloos ja nende eest esitatakse arve nagu iga muu reaalajas toimuva kõne eest (hinnakiri). Sellega ei kaasne tellimust ega ThunderPhone'i telefoninumbrit.
Paigalda
pip install livekit-plugins-thunderphone
export THUNDERPHONE_API_KEY=sk_live_... # a secret API keyPlugin kasutab LiveKiti OpenAI Realtime'i mudelit, sest ThunderPhone'i
Realtime WebSocket kasutab sama protokolli. See
vajab livekit-agents versiooni 1.8 või uuemat.
Käivita salvestatud agent
Kõik, mida agent teeb (viip, hääl, mootor, keeled, tööriistad, tervitus, vaikuse järelkontrollid), on seadistatud ThunderPhone'is. Seanss edastab ainult heli.
from livekit.agents import Agent, AgentSession, JobContext, WorkerOptions, cli
from livekit.plugins import thunderphone
async def entrypoint(ctx: JobContext):
session = AgentSession(llm=thunderphone.RealtimeModel(agent_id=12))
await session.start(agent=Agent(instructions=""), room=ctx.room)
if __name__ == "__main__":
cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))Salvestatud agent tervitab ja käivitab oma tööriistad ThunderPhone'is; LiveKiti
Agenti juhiseid ja tööriistu ei saadeta. Kõne lõpeb, kui ThunderPhone'i agent
katkestab kõne, ning seanss suletakse koos sellega.
Seadista seanss otse koodis
Ilma agent_id-ta tulevad juhised ja tööriistad LiveKit Agent-ilt, samamoodi nagu OpenAI puhul. model valib mootori ja voice ThunderPhone'i hääle.
from livekit.agents import Agent, AgentSession, RunContext, function_tool
from livekit.plugins import thunderphone
class Receptionist(Agent):
def __init__(self):
super().__init__(instructions="You are Acme Dental's receptionist. Be brief.")
@function_tool
async def check_availability(self, context: RunContext, date: str) -> dict:
"""Free appointment slots on a date."""
return {"slots": await calendar.free_slots(date)}
async def entrypoint(ctx: JobContext):
session = AgentSession(
llm=thunderphone.RealtimeModel(model="bolt", voice="olivia", language="es"),
)
await session.start(agent=Receptionist(), room=ctx.room)
await session.generate_reply() # the agent speaks firstThunderPhone fikseerib juhised ja tööriistad kõne alguses, seega ei toetata
update_instructions, update_tools ega neid muutvaid agendi üleandmisi kõne
ajal. Otse koodis seadistatud seansid on kliendi juhitud: agent räägib, kui
kutsud generate_reply() või kui osaleja lõpetab oma kõnevooru.
Valikud
| Argument | Tähendus |
|---|---|
api_key | Salajane võti (sk_live_...). Vaikimisi kasutatakse THUNDERPHONE_API_KEY. |
agent_id | Käivita salvestatud agent. Ei saa kasutada koos valikutega model ja voice. |
model | Mootor siseseansside jaoks: spark, bolt või storm. |
voice | ThunderPhone'i hääle nimi siseseansside jaoks. |
language | Siseseansside peamise keele vihje, nt es. |
caller_number, callee_number | Kõne telefoninumbrid, kui ruum on seotud telefoniliiniga. Need kuvatakse kõneajaloos lähte- ja sihtnumbrina. |
live_transcripts | Edasta helistaja transkriptsioonifragmente lausungi ajal (lisatasu eest). |
base_url | Lõpp-punkti alistamine, vaikimisi wss://api.thunderphone.com/v1/realtime. |
Sündmused
ThunderPhone lisab reaalajaprotokollile platvormisündmused. Seanss väljastab need:
@session.llm.session.on("thunderphone_call_ended") # or on the RealtimeSession you hold
def on_call_ended(event):
print("call ended:", event["reason"])RealtimeSession pakub call_id-d, kui seanss on aktiivne. Kasuta seda koos
GET /v1/calls/{call_id}-iga, et tuua pärast kõnet
salvestis, transkriptsioon ja hinne. Kõik muud call.* sündmused (ümbersuunamine,
klahvistik, eiratud kõne) saabuvad sündmusena thunderphone_call_event.
Piirangud
- Kõnevooru tuvastamine toimub serveris ja on alati sisse lülitatud; raamistiku-poolset kõnevooru tuvastamist
(
turn_detectionobjektisAgentSession) eiratakse. - Juhiseid ja tööriistu ei saa pärast kõne algust muuta.
- Heli on mõlemas suunas 16-bitine mono PCM sagedusega 24 kHz.
- Videokaadreid eiratakse.