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 sinu toote minutipõhise hinna alusel nagu iga muu reaalajas kõne eest. Tellimust ega ThunderPhone'i telefoninumbrit ei ole vaja.
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 LiveKiti Agentilt samamoodi
nagu OpenAI puhul. product valib mootori ja voice valib 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(product="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 product ja voice-iga. |
product | Mootor siseseansside jaoks: spark, bolt või storm. |
voice | ThunderPhone'i hääle nimi siseseansside jaoks. |
language | Siseseansside peamise keele vihje, nt es. |
from_number, to_number | Numbrid, mis salvestatakse kõnes, kui ruum on telefoniliini eesliides. |
live_transcripts | Edasta helistaja transkriptsiooni fragmente kõne ajal (lisatasu eest). |
base_url | Lõpp-punkti ülekirjutus; 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.