Skip to content

update to latest #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 12 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions fern/apis/api/generators.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ groups:
python-sdk:
generators:
- name: fernapi/fern-python-sdk
version: 4.3.8
version: 4.3.9
disable-examples: true
api:
settings:
Expand Down Expand Up @@ -47,7 +47,7 @@ groups:
java-sdk:
generators:
- name: fernapi/fern-java-sdk
version: 2.2.0
version: 2.3.1
output:
location: maven
coordinate: dev.vapi:server-sdk
Expand Down
33 changes: 32 additions & 1 deletion fern/apis/api/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -15580,6 +15580,20 @@
"clientSecret"
]
},
"Oauth2AuthenticationSession": {
"type": "object",
"properties": {
"accessToken": {
"type": "string",
"description": "This is the OAuth2 access token."
},
"expiresAt": {
"format": "date-time",
"type": "string",
"description": "This is the OAuth2 access token expiration."
}
}
},
"CustomLLMCredential": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -15620,6 +15634,14 @@
"type": "string",
"description": "This is the ISO 8601 date-time string of when the assistant was last updated."
},
"authenticationSession": {
"description": "This is the authentication session for the credential. Available for credentials that have an authentication plan.",
"allOf": [
{
"$ref": "#/components/schemas/Oauth2AuthenticationSession"
}
]
},
"name": {
"type": "string",
"description": "This is the name of credential. This is just for your reference.",
Expand Down Expand Up @@ -16928,6 +16950,14 @@
"type": "string",
"description": "This is the ISO 8601 date-time string of when the assistant was last updated."
},
"authenticationSession": {
"description": "This is the authentication session for the credential. Available for credentials that have an authentication plan.",
"allOf": [
{
"$ref": "#/components/schemas/Oauth2AuthenticationSession"
}
]
},
"name": {
"type": "string",
"description": "This is the name of credential. This is just for your reference.",
Expand All @@ -16941,7 +16971,8 @@
"id",
"orgId",
"createdAt",
"updatedAt"
"updatedAt",
"authenticationSession"
]
},
"XAiCredential": {
Expand Down
10 changes: 9 additions & 1 deletion changelog/2024-12-05.mdx → fern/changelog/2024-12-05.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
1. **OAuth2 Support for Custom LLM Credentials and Webhooks**: You can now secure access to your [custom LLMs](https://docs.vapi.ai/customization/custom-llm/using-your-server#step-2-configuring-vapi-with-custom-llm) and [server urls (aka webhooks)](https://docs.vapi.ai/server-url) using OAuth2 (RFC 6749). Create a webhook credential with `CreateWebhookCredentialDTO` and specify the following information.
1. **OAuth2 Support for Custom LLM Credentials and Webhooks**: You can now authorize access to your [custom LLMs](https://docs.vapi.ai/customization/custom-llm/using-your-server#step-2-configuring-vapi-with-custom-llm) and [server urls (aka webhooks)](https://docs.vapi.ai/server-url) using OAuth2 (RFC 6749).

For example, create a webhook credential with `CreateWebhookCredentialDTO` with the following payload:

```json
{
Expand All @@ -13,4 +15,10 @@
}
```

This returns a [`WebhookCredential`](https://api.vapi.ai/api) object as follows:

<Frame caption="Refer to the `WebhookCredential` schema for more information">
<img src="../static/images/changelog/webhook-credential.png" />
</Frame>

3. **Removal of Canonical Knowledge Base**: The ability to create, update, and use canoncial knowledge bases in your assistant has been removed from the API(as custom knowledge bases and the Trieve integration supports as superset of this functionality). Please update your implementations as endpoints and models referencing canoncial knowledge base schemas are no longer available.
24 changes: 24 additions & 0 deletions fern/changelog/2024-12-06.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
1. **OAuth 2 Authentication for Custom LLM Models and Webhooks**: In addition to (AuthZ)[https://www.okta.com/identity-101/authentication-vs-authorization/], you can now now authenticate users accessing your [custom LLMs](https://docs.vapi.ai/customization/custom-llm/using-your-server#step-2-configuring-vapi-with-custom-llm) and [server urls (aka webhooks)](https://docs.vapi.ai/server-url) using OAuth2 (RFC 6749). Use the `authenticationSession` dictionary which contains an `accessToken` and `expiresAt` datetime to authenticate further requests to your custom LLM or server URL.

For example, create a webhook credential with `CreateCustomLLMCredentialDTO` with the following payload:
```json
{
"provider": "custom-llm",
"apiKey": "your-api-key-max-10000-characters",
"authenticationPlan": {
"type": "oauth2",
"url": "https://your-url.com/your/path/token",
"clientId": "your-client-id",
"clientSecret": "your-client-secret"
},
"name": "your-credential-name-between-1-and-40-characters"
}
```

This returns a [`CustomLLMCredential`](https://api.vapi.ai/api) object as follows:

<Frame caption="Refer to the `CustomLLMCredential` schema for more information">
<img src="../static/images/changelog/custom-llm-credential.png" />
</Frame>

This can be used to authenticate successive requests to your custom LLM or server URL.
1 change: 1 addition & 0 deletions fern/changelog/2024-12-09.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1. **Improved Tavus Video Processing Error Messages**: Your call `endedReason` now includes detailed error messages for `pipeline-error-tavus-video-failed`. Use this to detect and manage scenarios where the Tavus video processing pipeline fails during a call.
2 changes: 1 addition & 1 deletion fern/customization/custom-voices/tavus.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ slug: customization/custom-voices/tavus

This guide outlines the procedure for integrating your custom replica with Tavus through the VAPI platform.

<Note>An API subscription is required for this process to work.</Note>
<Note>An API subscription is required for this process to work. This process is only required if you would like to use your **custom Tavus replicas**. This process is not required to use stock replicas on the Vapi platform.</Note>

To integrate your custom replica with [Tavus](https://platform.tavus.io/) using the VAPI platform, follow these steps.

Expand Down
14 changes: 10 additions & 4 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ navigation:
path: examples/pizza-website.mdx
- page: Python Outbound Snippet
path: examples/outbound-call-python.mdx
- page: Billing FAQ
path: quickstart/billing.mdx
- page: Code Resources
path: resources.mdx
- section: Customization
Expand Down Expand Up @@ -349,6 +351,10 @@ navigation:
path: providers/cloud/gcp.mdx
- page: Cloudflare R2
path: providers/cloud/cloudflare.mdx
- section: Observability
contents:
- page: Langfuse
path: providers/observability/langfuse.mdx
- page: Voiceflow
path: providers/voiceflow.mdx
- section: Security & Privacy
Expand Down Expand Up @@ -532,7 +538,7 @@ redirects:
destination: "/call-forwarding"
- source: "/prompting_guide"
destination: "/prompting-guide"
- source: /community/videos
destination: /community/appointment-scheduling
- source: /enterprise
destination: /enterprise/plans
- source: "/community/videos"
destination: "/community/appointment-scheduling"
- source: "/enterprise"
destination: "/enterprise/plans"
76 changes: 76 additions & 0 deletions fern/providers/observability/langfuse.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Langfuse Integration with Vapi
description: Integrate Vapi with Langfuse for enhanced voice AI telemetry monitoring, enabling improved performance and reliability of your AI applications.
slug: providers/observability/langfuse
---

# Vapi Integration

Vapi natively integrates with Langfuse, allowing you to send traces directly to Langfuse for enhanced telemetry monitoring. This integration enables you to gain deeper insights into your voice AI applications and improve their performance and reliability.

<iframe
src="https://youtu.be/V4ybHNWvu90"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
width="100%"
height="400px"
allowfullscreen
/>

## What is Langfuse?

[Langfuse](https://langfuse.com/) is an open source LLM engineering platform designed to provide better **[observability](/docs/tracing)** and **[evaluations](/docs/scores/overview)** into AI applications. It helps developers track, analyze, and visualize traces from AI interactions, enabling better performance tuning, debugging, and optimization of AI agents.

## Get Started

<Steps>
<Step title="Get your Langfuse Credentials">

First, you'll need your Langfuse credentials:

- **Secret Key**
- **Public Key**
- **Host URL**

You can obtain these by signing up for [Langfuse Cloud](https://cloud.langfuse.com/) or [self-hosting Langfuse](https://langfuse.com/docs/deployment/self-host).

</Step>

<Step title="Add Langfuse Credentials">

Log in to your Vapi dashboard and navigate to the [Provider Credentials page](https://dashboard.vapi.ai/keys).

Under the **Observability Providers** section, you'll find an option for **Langfuse**. Enter your Langfuse credentials:

- **Secret Key**
- **Public Key**
- **Host URL** (US data region: `https://us.cloud.langfuse.com`, EU data region: `https://cloud.langfuse.com`)

Click **Save** to update your credentials.

<Frame border className="sm:w-1/2">
![Vapi Provider Credentials](https://langfuse.com/images/docs/vapi-integration-credentials.png)
</Frame>

</Step>

<Step title="See Traces in Langfuse">

Once you've added your credentials, you should start seeing traces in your Langfuse dashboard for every conversation your agents have.

<Frame border>
![Example trace of Vapi conversation in Langfuse](https://langfuse.com/images/docs/vapi-integration-example-trace.png)
</Frame>

Example trace in Langfuse: https://cloud.langfuse.com/project/cloramnkj0002jz088vzn1ja4/traces/50163c14-9784-4cb9-b18e-23e924d0bb66

</Step>

<Step title="Evaluate and Debug your Agent">

To make the most out of this integration, you can now use Langfuse's [evaluation](https://langfuse.com/docs/scores/overview) and [debugging](https://langfuse.com/docs/analytics/overview) tools to analyze and improve the performance of your voice AI agents.

</Step>
</Steps>
71 changes: 71 additions & 0 deletions fern/quickstart/billing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: Billing FAQ
subtitle: How billing with Vapi works.
slug: quickstart/billing
---

### Overview
Vapi uses a credit-based billing system where credits serve as the platform's currency. Every billable action, including making calls and purchasing add-ons, requires credits. One credit equals one US dollar ($1 = 1 credit).

Each new trial account receives 10 complimentary credits in their wallet to help you get started. These credits can be used for making calls, but not purchasing add-ons.

To continue using Vapi after your trial credits are depleted, you'll need to:
1. Add your payment details
2. Purchase additional credits
3. Your wallet will then be upgraded to pay-as-you-go status.

<Warning>
Your wallet will be marked as frozen while your credit balance is negative. Frozen wallets are unable to make calls or purchase add-ons.
</Warning>

### What is auto-reload?

Auto-reload is a billing mechanism in which Vapi will automatically top up your credits when it hits a certain threshold. It can be enabled through the [billing page](https://dashboard.vapi.ai/org/billing) and we highly recommend enabling it to prevent billing-related operational issues.

<Note>
Auto-reload amounts must be at least \$10. We recommend setting a threshold above \$0.
</Note>

<Frame caption="Enabling auto-reload through the Vapi dashboard.">
<img src="../static/images/quickstart/billing/auto-reload.png" />
</Frame>

### What are add-ons?
Add-ons are platform enhancements that you may purchase. They are purchased through the [billing add-ons page](https://dashboard.vapi.ai/org/billing/add-ons).

The following add-ons are currently available:
| Add-on | Price (credits / month) | Description |
|--------|-------------------------|-------------|
| Phone Numbers | 2 | Twilio phone numbers for your calls |
| Reserved Concurrency Lines | 10 | Guaranteed capacity for concurrent calls |
| HIPAA Compliance | 1,000 | HIPAA Compliance and a BAA agreement |
| Slack Support | 5,000 | Priority support via dedicated Slack channel |

Here's how the billing works:
- You'll be charged a prorated amount for the remainder of the current billing cycle when you first purchase an add-on
- Subsequently, you'll be billed the full amount at the start of each billing cycle (the 1st of each month)
- If you cancel an add-on, you'll receive a prorated refund for the unused portion of the billing cycle.
- Add-ons can be cancelled at any time through the billing page

<Warning>
If your wallet is frozen at the time of billing, all add-ons will be automatically cancelled. You'll need to repurchase them once your wallet is reactivated.
</Warning>

### How do I download invoices for my credit purchases?

You may download invoices within the [billing page](https://dashboard.vapi.ai/billing).

Find the relevant credit purchase within the payment history table, and click on **Download Invoice**. You may then optionally choose to fill in extra details which will be reflected within the Invoice.

<Frame caption="Downloading an invoice.">
<img src="../static/images/quickstart/billing/download-invoice.png" />
</Frame>

<Frame caption="Optional invoice details.">
<img src="../static/images/quickstart/billing/invoice-detail-form.png" />
</Frame>

<Frame caption="Sample invoice.">
<img src="../static/images/quickstart/billing/sample-invoice.png" />
</Frame>

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading