ThunderPhone 2.0 on nüüd saadaval.Iseteenindus alates 2 sendist minutis.Loe uudist

Connect tools & data

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 key

Plugin 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 first

ThunderPhone 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

ArgumentTähendus
api_keySalajane võti (sk_live_...). Vaikimisi kasutatakse THUNDERPHONE_API_KEY.
agent_idKäivita salvestatud agent. Ei saa kasutada koos product ja voice-iga.
productMootor siseseansside jaoks: spark, bolt või storm.
voiceThunderPhone'i hääle nimi siseseansside jaoks.
languageSiseseansside peamise keele vihje, nt es.
from_number, to_numberNumbrid, mis salvestatakse kõnes, kui ruum on telefoniliini eesliides.
live_transcriptsEdasta helistaja transkriptsiooni fragmente kõne ajal (lisatasu eest).
base_urlLõ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_detection objektis AgentSession) 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.