Vapi
扫码查看

用于构建和部署实时AI语音智能体的开发框架

Vapi

综合介绍

Vapi是一个为开发者设计的API平台,专注于快速构建、测试和部署能够处理电话通话的AI语音智能体。这个平台的核心作用是让开发者可以创建听起来自然、响应迅速的AI语音助手,用来自动处理呼入或呼出电话。 Vapi通过整合先进的语音识别(转录)、大语言模型(智能核心)和语音合成(生成声音)技术,实现与人类的流畅对话。 它的一个主要特点是延迟极低,可以在500毫秒内完成从听到用户说话到作出语音回应的全过程,这使得对话体验非常接近真人。 开发者可以利用Vapi提供的工具,接入多种第三方服务,例如OpenAI的GPT模型、Deepgram的语音转录或ElevenLabs的语音合成,也可以接入自己的模型,具有很高的灵活性。 该平台不仅为开发者提供了代码库(支持Python和TypeScript),也为非技术人员提供了无需编写代码的操作界面。

功能列表

  • 超低延迟对话:响应速度低于500毫秒,支持用户在对话中自然地打断,让AI的反应更像真人。
  • 模型灵活性:允许开发者接入并使用来自不同供应商的API,包括OpenAI、Anthropic、Deepgram、Groq等,同时也支持使用自己托管的模型。
  • 支持多种语言:能够构建支持超过100种语言的语音智能体,包括中文、英语、西班牙语等。
  • 工具调用(Tool Calling):允许AI在通话中调用外部API或数据库来查询信息、执行操作,例如查询订单状态、预订会议等。
  • 高可扩展性:架构设计能够支持从少量到数百万级别的并发通话量,满足不同规模业务的需求。
  • 丰富的集成:可以轻松与Salesforce、Zendesk、Google Calendar等超过40种应用程序集成,也可以通过Zapier或Make连接到更多系统。
  • 可定制的语音和对话流:提供数千种配置选项,允许开发者通过API精细调整智能体的声音、语气和对话逻辑。
  • 自动化测试:内置测试功能,可以模拟语音对话来识别和预防AI在实际应用中出现错误的风险。
  • 企业级安全合规:平台符合SOC2、HIPAA和PCI等安全标准,可用于处理金融和医疗等受监管行业的数据。

使用帮助

Vapi.ai的核心是为开发者提供一个强大的API,让他们可以轻松地将语音AI集成到自己的应用中。整个过程可以归纳为“监听->理解->回应”三个步骤。 下面将详细介绍如何开始使用Vapi。

第一步:注册并获取API密钥

要使用Vapi,首先需要访问其官方网站 https://vapi.ai/ 并注册一个账户。成功登录后,你可以在用户后台(Dashboard)中找到你的私有API密钥(PRIVATE_API_KEY)。这个密钥是你与Vapi服务进行通信的凭证,需要妥善保管。

第二步:设置开发环境

Vapi官方提供了对TypeScript/JavaScript和Python的支持。你可以根据自己偏好的语言安装相应的SDK。

对于Python开发者:打开你的终端,使用pip命令安装Vapi的Python SDK。

pip install vapi

对于TypeScript/JavaScript (Node.js) 开发者:打开你的终端,使用npm或yarn安装Vapi的服务器端SDK。

npm install @vapi-ai/server-sdk

第三步:创建你的第一个语音智能体

创建语音智能体的过程就是定义它的行为和能力,主要包括它使用哪个大语言模型进行思考,以及使用哪种声音进行说话。

以下是一个使用Python创建呼出电话的基本示例。这段代码创建了一个AI助手,它使用OpenAI的gpt-4o模型,并会用友好的语气进行简短回应。

import os
from vapi_python import Vapi
# 使用你的API密钥初始化Vapi客户端
# 建议将密钥存储在环境变量中,而不是硬编码在代码里
vapi = Vapi(api_key=os.environ.get("VAPI_API_KEY"))
# 创建一个呼叫任务
# 你需要在Vapi后台创建一个电话号码,并获取其ID
# customer的number是你希望呼叫的目标电话号码
call = vapi.call.create(
phone_number_id='YOUR_PHONE_NUMBER_ID',  # 替换成你在Vapi后台创建的电话号码ID
customer={
'number': '+1234567890',  # 替换成你想呼叫的客户电话号码
},
assistant={
'model': {
'provider': 'openai',  # 指定LLM提供商为OpenAI
'model': 'gpt-4o',   # 指定使用的具体模型
'messages': [         # 这是定义AI角色的系统提示
{
'role': 'system',
'content': 'You are a helpful AI assistant. Keep your responses concise and friendly.'
}
]
},
'voice': {
'provider': 'elevenlabs', # 指定语音合成服务的提供商
'voice_id': 'p5m2Zz5k5i8Z0k8M423P' # 指定声音ID,这是ElevenLabs的一个示例声音
}
}
)
print("Call created successfully. Call ID:", call.id)

代码解释

  • phone_number_id: Vapi会为你提供一个虚拟电话号码用于拨打和接听电话,你需要在后台获取这个号码的ID。
  • customer: 定义了你要呼叫的目标用户,这里主要是指对方的电话号码。
  • assistant: 这是定义AI智能体的核心部分。
    • model: 在这里配置大语言模型。provider指定了模型的来源(如openai),model指定了具体的模型名称(如gpt-4o),messages则用来设置系统提示(System Prompt),它决定了AI的基本行为和角色。
    • voice: 在这里配置文本转语音(TTS)服务。provider指定语音服务的来源(如elevenlabs),voice_id则指定了具体的声音。你可以在语音提供商的网站上找到不同的声音选项。

第四步:实现更复杂的功能

Vapi的强大之处在于它的高度可配置性。你可以通过增加参数来实现更高级的功能。

1. 工具调用(Tool Calling)

让AI能够执行具体操作是提升其价值的关键。例如,你希望AI能够在你公司的数据库里查询客户的订单信息。你可以定义一个tool(工具),并提供一个服务器URL,当对话中触发这个工具时,Vapi会向你的服务器发送请求。

# ...接上文代码...
call_with_tool = vapi.call.create(
phone_number_id='YOUR_PHONE_NUMBER_ID',
customer={'number': '+1234567890'},
assistant={
'model': {
'provider': 'openai',
'model': 'gpt-4o',
'messages': [{'role': 'system', 'content': 'You are a helpful AI assistant.'}],
# 定义一个工具
'tools': [{
'type': 'function',
'function': {
'name': 'lookup_order_status',
'description': 'Get the status of an order given an order ID.',
'parameters': {
'type': 'object',
'properties': {
'order_id': {
'type': 'string',
'description': 'The ID of the order to look up.'
}
},
'required': ['order_id']
}
}
}]
},
'voice': {
'provider': 'elevenlabs',
'voice_id': 'p5m2Zz5k5i8Z0k8M423P'
},
# 指定接收工具调用请求的服务器URL
'server_url': 'https://your-server.com/handle-tool-call'
}
)

当用户在通话中说“请帮我查一下订单12345的状态”时,AI模型会识别出意图,并调用lookup_order_status工具。Vapi会将包含order_id: '12345'的信息发送到你指定的server_url,你的服务器在处理完请求后返回结果,AI再将结果用语音告知用户。

2. 管理对话状态

你可以通过metadata参数向通话中注入一些初始信息,并在通话过程中通过API更新这些信息,从而实现对通话状态的管理。

# ...接上文代码...
# 在创建通话时传入初始数据
call_with_metadata = vapi.call.create(
phone_number_id='YOUR_PHONE_NUMBER_ID',
customer={'number': '+1234567890'},
assistant_id='YOUR_ASSISTANT_ID', # 你也可以在后台预先创建好助手,直接通过ID调用
metadata={
'customer_id': 'cust_abc_123',
'is_vip': True
}
)

这些元数据可以在通话过程中的任何时候通过API进行读取或修改,让你的AI能够根据上下文做出更智能的判断。

应用场景

  1. 自动化客户服务企业可以使用Vapi构建AI客服,自动处理大量的常见用户问询,例如订单状态查询、产品信息介绍、账户问题解答等。这可以7x24小时不间断服务,减少用户等待时间,并降低人力成本。
  2. 主动营销与关怀企业可以部署AI智能体进行外呼,用于市场调研、新产品推广、活动邀约或客户满意度回访。AI可以根据预设的脚本和逻辑与客户进行自然的沟通,并记录关键信息。
  3. 智能预约与排程服务行业(如诊所、餐厅、美容院)可以利用Vapi创建一个自动预约系统。客户可以通过电话与AI助手对话,查询可用时间、预订服务或修改已有预约,并将预约信息自动同步到Google Calendar等日程管理工具中。
  4. 应用内的语音助手开发者可以将Vapi集成到自己的移动或网页应用中,为用户提供一个可以用语音交互的智能助手。用户可以通过语音命令来操作应用,实现更便捷的人机交互体验。

QA

  1. Vapi是什么?Vapi是一个专为开发者设计的平台,用于构建、测试和部署能够通过电话进行实时、自然语言对话的AI语音智能体。
  2. Vapi与其他语音AI工具有何不同?Vapi的主要区别在于其极低的延迟(低于500毫秒)和高度的灵活性。它允许开发者自由组合不同的语言模型、语音转录和语音合成服务,而不是被锁定在单一供应商上。
  3. 使用Vapi需要具备编程知识吗?Vapi主要面向有一定技术背景的开发者,使用其API和SDK需要基础的编程知识(如Python或JavaScript)。 不过,它也提供了一个无需编码的用户界面,让非技术人员也能创建和管理语音智能体。
  4. Vapi支持哪些语言模型和语音服务?它支持广泛的第三方模型,包括OpenAI (GPT-3.5/4o), Anthropic (Claude), Groq等LLM,以及Deepgram, AssemblyAI等语音转录服务和ElevenLabs, PlayHT等语音合成服务。同时,它也允许用户接入自己托管的模型。
  5. Vapi的通话成本如何计算?通话成本是按分钟计费的,具体费用取决于通话中使用的不同模型组合(例如,使用的LLM、转录模型和语音合成模型的具体价格)。Vapi提供了透明的价格明细。
微信微博Email复制链接