Skip to content

Commit 6faf624

Browse files
committed
Merge remote-tracking branch 'origin/main' into fern/update-api-specs
2 parents 6a30bf6 + f44377b commit 6faf624

File tree

10 files changed

+641
-33
lines changed

10 files changed

+641
-33
lines changed

fern/calls/call-dynamic-transfers.mdx

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,6 @@ Your server should respond with either a valid `destination` or an `error` to in
6767

6868
### Transfer Destination Request Response Payload
6969

70-
#### Assistant Destination
71-
72-
```json
73-
{
74-
"destination": {
75-
"type": "assistant",
76-
"message": "Connecting you to our support assistant.",
77-
"assistantName": "SupportAssistant",
78-
"transferMode": "rolling-history"
79-
}
80-
}
81-
```
82-
83-
Transfers the call to another assistant, specifying how the conversation history should be handled.
84-
8570
#### Number Destination
8671

8772
```json

fern/changelog/2025-02-01.mdx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# API Request Node, Improved Retries, and Enhanced Message Controls
2+
3+
1. **HttpRequest Node Renamed to ApiRequest**: The `HttpRequest` workflow node has been renamed to [`ApiRequest`](https://api.vapi.ai/api#:~:text=ApiRequest), and can be accessed through `Assistant.model.workflow.nodes[type="api-request"]`. Key changes:
4+
- New support for POST requests with customizable headers and body
5+
- New async request support with `isAsync` flag
6+
- Task status messages for waiting, starting, failure and success states
7+
<Warning>The `HttpRequest` node is now deprecated and will be removed in a future release. Please migrate to the new `ApiRequest` node.</Warning>
8+
9+
2. **New Backoff and Retry Controls**: You can now configure [`Assistant.model.tools[type=dtmf].server.backoffPlan`](https://api.vapi.ai/api#:~:text=BackoffPlan) to handle failed requests with customizable retry strategies and delays.
10+
- Supports fixed or exponential backoff strategies
11+
- Configure `maxRetries` (up to 10) and `baseDelaySeconds` (up to 10 seconds)
12+
- Available in server configurations via `backoffPlan` property
13+
14+
3. **Enhanced Gather Node**: The [`Assistant.model.workflow.nodes[type=gather]`](https://api.vapi.ai/api#:~:text=Gather) node has been improved with the following changes:
15+
- Added `maxRetries` property to control retry attempts
16+
- Now accepts a single JsonSchema instead of an array
17+
- Removed default value for `confirmContent` property
18+
19+
4. **Improved Message Controls**: [`Assistant.messagePlan`](https://api.vapi.ai/api#:~:text=MessagePlan) has been improved with the following changes:
20+
- Increased `idleTimeoutSeconds` maximum from 30 to 60 seconds
21+
- Added `silenceTimeoutMessage` to customize call ending due to silence
22+
23+
5. **New Distilled Deepseek Model with Groq**: You can now select `deepseek-r1-distill-llama-70b` when using [Groq](https://api.vapi.ai/api#:~:text=Groq) as the provider in [`Assistant.model[provider='groq']`](https://api.vapi.ai/api#:~:text=UpdateCallDTO-,Assistant,-UpdateAssistantDTO)
24+
25+
6. **Edge Condition Updates**: Edge conditions now require explicit matching criteria to improve workflow control and readability. Semantic edges must specify a `matches` property while programmatic edges require a `booleanExpression` property to define transition logic.

fern/changelog/overview.mdx

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,90 @@
11
---
22
slug: changelog
33
---
4+
<Card
5+
title={<div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem', cursor: 'pointer', color: 'inherit' }} onClick={() => document.querySelector('input[type="email"]').focus()}>Get the (almost) daily changelog</div>}
6+
icon="envelope"
7+
iconType="solid"
8+
>
9+
<form
10+
method="POST"
11+
action="https://customerioforms.com/forms/submit_action?site_id=4678cfb1d91b95f35420&form_id=01jk50qavhdht46f3ytednjdyq&success_url=https://docs.vapi.ai/changelog"
12+
className="subscribe-form"
13+
style={{margin: '1rem 0'}}
14+
onSubmit={(e) => {
15+
const emailInput = document.getElementById('email_input');
16+
const emailValue = emailInput.value;
17+
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
18+
if (!emailPattern.test(emailValue)) {
19+
e.preventDefault();
20+
alert('Please enter a valid email address.');
21+
}
22+
}}
23+
>
24+
<div className="flex gap-2" style={{ paddingLeft: '0.5rem' }}>
25+
<label htmlFor="email_input" style={{ display: 'none' }}>E-mail address</label>
26+
<input
27+
id="email_input"
28+
type="email"
29+
name="email"
30+
placeholder="Enter your email"
31+
required
32+
style={{
33+
border: '1px solid #e2e8f0',
34+
borderRadius: '0.375rem',
35+
padding: '0.5rem 1rem',
36+
width: '100%',
37+
fontSize: '0.875rem',
38+
outline: 'none',
39+
transition: 'border-color 0.2s ease-in-out',
40+
color: '#1f2937',
41+
':focus': {
42+
borderColor: '#4f46e5',
43+
boxShadow: '0 0 0 1px #4f46e5'
44+
},
45+
'@media (prefers-color-scheme: dark)': {
46+
backgroundColor: '#374151',
47+
borderColor: '#4b5563',
48+
color: '#f3f4f6',
49+
'::placeholder': {
50+
color: '#9ca3af'
51+
},
52+
':focus': {
53+
borderColor: '#6366f1',
54+
boxShadow: '0 0 0 1px #6366f1'
55+
}
56+
}
57+
}}
58+
/>
59+
<button
60+
type="submit"
61+
style={{
62+
backgroundColor: '#37aa9d',
63+
color: 'white',
64+
fontWeight: 500,
65+
padding: '0.5rem 1rem',
66+
borderRadius: '0.375rem',
67+
border: 'none',
68+
cursor: 'pointer',
69+
transition: 'all 0.2s ease-in-out',
70+
':hover': {
71+
backgroundColor: '#2e8b7d',
72+
transform: 'translateY(-1px)'
73+
},
74+
':active': {
75+
transform: 'translateY(0)'
76+
},
77+
'@media (prefers-color-scheme: dark)': {
78+
backgroundColor: '#94ffd2',
79+
color: '#1f2937',
80+
':hover': {
81+
backgroundColor: '#7cd9b0'
82+
}
83+
}
84+
}}
85+
>
86+
Submit
87+
</button>
88+
</div>
89+
</form>
90+
</Card>

fern/community/knowledgebase.mdx

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Navigate to Platform > Files and upload your custom files in Markdown, PDF, plai
2828

2929
<Frame caption="Adding files to your Knowledge Base">
3030
<img
31-
src="/static/images/knowledge-base/files.png"
31+
src="./static/images/knowledge-base/files.png"
3232
alt="Adding files to your Knowledge Base"
3333
/>
3434
</Frame>
@@ -43,18 +43,22 @@ curl --location 'https://api.vapi.ai/file' \
4343

4444
### **Step 2: Create a Knowledge Base**
4545

46-
Use the ID of the uploaded file to create a Knowledge Base. Currently we support [trieve](https://trieve.ai) as a provider.
46+
Use the ID of the uploaded file to create a Knowledge Base along with the KB configurations.
47+
48+
1. Provider: [trieve](https://trieve.ai)
4749

4850
```bash
4951
curl --location 'http://localhost:3001/knowledge-base' \
5052
--header 'Content-Type: text/plain' \
51-
--header 'Authorization: Bearer 4beb7e10-f4be-4588-be65-712235f07f68' \
53+
--header 'Authorization: Bearer <YOUR_API_KEY>' \
5254
--data '{
5355
"name": "v2",
5456
"provider": "trieve",
5557
"searchPlan": {
56-
"scoreThreshold": 0.2,
57-
"searchType": "semantic"
58+
"searchType": "semantic",
59+
"topK": 3,
60+
"removeStopWords": true,
61+
"scoreThreshold": 0.7
5862
},
5963
"createPlan": {
6064
"type": "create",
@@ -63,13 +67,38 @@ curl --location 'http://localhost:3001/knowledge-base' \
6367
"fileIds": ["<FILE_ID_1>", "<FILE_ID_2>"],
6468
"websites": ["<WEBSITE_1>", "<WEBSITE_2>"],
6569
"targetSplitsPerChunk": 50,
70+
"splitDelimiters": [".!?\n"],
6671
"rebalanceChunks": true
6772
}
6873
]
6974
}
70-
}''
75+
}'
7176
```
7277

78+
#### Configuration Options
79+
80+
##### Search Plan Options
81+
82+
- **searchType** (required): The search method used for finding relevant chunks. Available options:
83+
- `fulltext`: Traditional text search
84+
- `semantic`: Semantic similarity search
85+
- `hybrid`: Combines fulltext and semantic search
86+
- `bm25`: BM25 ranking algorithm
87+
- **topK** (optional): Number of top chunks to return. Default varies by implementation
88+
- **removeStopWords** (optional): When true, removes common stop words from the search query. Default: `false`
89+
- **scoreThreshold** (optional): Filters out chunks based on their similarity score:
90+
- For cosine distance: Excludes chunks below the threshold
91+
- For Manhattan Distance, Euclidean Distance, and Dot Product: Excludes chunks above the threshold
92+
- Set to 0 or omit for no threshold
93+
94+
##### Chunk Plan Options
95+
96+
- **fileIds** (optional): Array of file IDs to include in the vector store
97+
- **websites** (optional): Array of website URLs to crawl and include in the vector store
98+
- **targetSplitsPerChunk** (optional): Number of splits per chunk. Default: `20`
99+
- **splitDelimiters** (optional): Array of delimiters used to split text before chunking. Default: `[".!?\n"]`
100+
- **rebalanceChunks** (optional): When true, evenly distributes remainder splits across chunks. For example, 66 splits with `targetSplitsPerChunk: 20` will create 3 chunks with 22 splits each. Default: `true`
101+
73102
### **Step 3: Create an Assistant**
74103

75104
Create a new assistant in Vapi and, on the right sidebar menu. Add the Knowledge Base to your assistant via the PATCH endpoint. Also make sure you customize your assistant's system prompt to utilize the Knowledge Base for responding to user queries.

0 commit comments

Comments
 (0)