PatterAI/Patter
GitHub: PatterAI/Patter
开源语音 AI SDK,帮助开发者用四行代码为 AI agent 分配电话号码并掌控完整的语音技术栈。
Stars: 1009 | Forks: 103
Patter SDK
关于 • 工作原理 • 文档 • 快速开始 • 技能 • 模板
## 关于 **Patter** 是一个开源的 SDK,可以为你的 AI agent 分配一个电话号码。你只需构建 agent;Patter 负责处理它与电话网络之间的所有事务——agent 循环、语言模型、语音转文本 (STT)、文本转语音 (TTS)、实时语音、音频处理以及电信运营商对接。 - **构建**:使用统一的 API 结合 [Python](https://pypi.org/project/getpatter/) 或 [TypeScript](https://www.npmjs.com/package/getpatter) —— 拥有相同的接口、hooks 和事件,实现完全对等。 - **选择**:为每一层(LLM、STT、TTS、实时引擎、运营商)选择提供商,并且只需一行代码即可替换其中任何一个。 - **运行**:通过内置的 tunnel 和 dashboard 在本地运行,或者直接从终端模拟整个通话 —— 无需实体电话。 ## 工作原理 Patter 是位于你的应用程序与电话网络之间的**完整语音技术栈** —— 而不仅仅是 LLM 和运营商之间的粘合剂。它运行 agent 循环并掌控通话的每一层,并且**由你来为每一层挑选提供商**。你可以选择在 **Realtime**、**Pipeline** 或 **Hybrid** 模式下组合它们。 | 层级 | 可选方案 | |---|---| | **LLM** —— 文本生成 | OpenAI · Anthropic · Google Gemini · Groq · Cerebras | | **STT** —— 语音转文本 | Deepgram · AssemblyAI · Cartesia · Soniox · Speechmatics · Whisper | | **TTS** —— 文本转语音 | ElevenLabs · OpenAI · Cartesia · LMNT · Rime · Telnyx | | **Realtime** —— 一体化语音 | OpenAI Realtime · Gemini Live · Ultravox · ElevenLabs ConvAI | | **Telephony** —— 电话运营商 | Twilio · Telnyx · Plivo | | **Audio** —— VAD 与降噪抑制 | Silero VAD · Krisp · DeepFilterNet | 在此技术栈之上:自动的 **LLM fallback 链**(支持在通话中途进行提供商故障转移)、内置的 **tools / 通话转移 / guardrails**(在所有运营商上的行为保持一致),以及针对每次通话的供应商中立 **OpenTelemetry** 追踪记录。 ## 文档 请访问[文档](https://docs.getpatter.com),或直接跳转至快速开始指南:[TypeScript](#typescript) · [Python](#python)。 ## 编程 Agent 的技能 ``` npx skills add patterai/skills ``` 该工具包适用于约 55 种支持 [Anthropic Agent Skills](https://agentskills.io) 标准的 agent 框架。只需安装一次;你的机器上的每个 agent 都能学会使用该 SDK。技能存放在它们独立的代码库中:**[`PatterAI/skills`](https://github.com/PatterAI/skills)**。 ## 快速开始 提供商和运营商的凭证会从环境变量中读取(例如 `TWILIO_ACCOUNT_SID`、`OPENAI_API_KEY`)——[文档](https://docs.getpatter.com)中列出了完整的配置目录。将 `Twilio` 替换为 `Telnyx` 或 `Plivo` 即可更改运营商。 ### TypeScript ``` npm install getpatter ``` ``` import { Patter, Twilio, OpenAIRealtime } from "getpatter"; const phone = new Patter({ carrier: new Twilio(), phoneNumber: "+15550001234" }); const agent = phone.agent({ engine: new OpenAIRealtime(), systemPrompt: "You are a friendly receptionist for Acme Corp.", firstMessage: "Hello! How can I help?", }); await phone.serve({ agent, tunnel: true }); ``` ### Python ``` pip install getpatter ``` ``` from getpatter import Patter, Twilio, OpenAIRealtime phone = Patter(carrier=Twilio(), phone_number="+15550001234") agent = phone.agent( engine=OpenAIRealtime(), system_prompt="You are a friendly receptionist for Acme Corp.", first_message="Hello! How can I help?", ) await phone.serve(agent, tunnel=True) ``` `tunnel: true` 会启动一个 Cloudflare 快速 tunnel,并将你的号码指向它 —— 非常适合本地开发。在生产环境中,请使用静态的 `webhook_url`(或 [ngrok](https://ngrok.com));请参阅 [Tunneling](https://docs.getpatter.com)。 ## 遥测 ## 模板 每个模板都是一个独立的代码库 —— 克隆后,添加你的 `.env` 文件,即可运行。内含 Python 和 TypeScript 版本。 | 模板 | 描述 | 代码库 | |---|---|---| | **Inbound Agent** | 作为餐厅预订助手接听电话 | [patter-inbound-agent](https://github.com/PatterAI/patter-inbound-agent) | | **Outbound Calls** | 拨打电话,具备 AMD 和语音留言丢弃功能 | [patter-outbound-calls](https://github.com/PatterAI/patter-outbound-calls) | | **Tool Calling** | 通过 webhook tools 进行 CRM 查询和工单创建 | [patter-tool-calling](https://github.com/PatterAI/patter-tool-calling) | | **Custom Voice** | Pipeline 模式:Deepgram STT + ElevenLabs TTS | [patter-custom-voice](https://github.com/PatterAI/patter-custom-voice) | | **Dynamic Variables** | 使用 CRM 数据为每个呼叫者个性化 prompt | [patter-dynamic-variables](https://github.com/PatterAI/patter-dynamic-variables) | | **Custom LLM** | 接入你自己的模型 | [patter-custom-llm](https://github.com/PatterAI/patter-custom-llm) | | **Dashboard** | 结合成本与延迟追踪的实时监控 | [patter-dashboard](https://github.com/PatterAI/patter-dashboard) | | **Production Setup** | 启用所有功能:tools、guardrails、录音、dashboard | [patter-production](https://github.com/PatterAI/patter-production) | ``` git clone https://github.com/PatterAI/patter-inbound-agent cd patter-inbound-agent cp .env.example .env # fill in your keys cd python && pip install -r requirements.txt && python main.py ``` ## 贡献者 感谢我们所有出色的贡献者!标签:AI语音, 人工智能, 用户代理, 用户模式Hook绕过, 电信呼叫, 语音合成, 语音识别, 逆向工具