Skip to content

Commit 3e68ced

Browse files
committed
docs(squads): add ts/python/curl tabs to property management example
1 parent 936df11 commit 3e68ced

File tree

1 file changed

+59
-1
lines changed

1 file changed

+59
-1
lines changed

fern/squads/examples/property-management.mdx

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,65 @@ Replace visual flows with a Squad: a Router assistant classifies the inquiry and
3434
- Router → Leasing for leasing/rent/general
3535
- Dynamic transfer tool for human dispatch
3636

37-
## 3. Test
37+
## 3. Implement
38+
39+
<Tabs>
40+
<Tab title="TypeScript (Server SDK)">
41+
```typescript
42+
import { VapiClient } from "@vapi-ai/server-sdk";
43+
const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });
44+
45+
await vapi.calls.create({
46+
transport: { type: "web" },
47+
squad: {
48+
members: [
49+
{ assistant: { name: "Router", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly." }] }, firstMessage: "Thanks for calling. How can I help?", firstMessageMode: "assistant-speaks-first" } },
50+
{ assistant: { name: "Maintenance", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Maintenance specialist. Collect details and prioritize emergencies." }] } } },
51+
{ assistant: { name: "Leasing", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Leasing specialist. Answer leasing and rent questions." }] } } }
52+
],
53+
},
54+
});
55+
```
56+
</Tab>
57+
58+
<Tab title="Python (Server SDK)">
59+
```python
60+
import os
61+
from vapi import Vapi
62+
63+
client = Vapi(token=os.getenv("VAPI_API_KEY"))
64+
client.calls.create(
65+
transport={"type": "web"},
66+
squad={
67+
"members": [
68+
{"assistant": {"name": "Router", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly."}]}, "first_message": "Thanks for calling. How can I help?", "first_message_mode": "assistant-speaks-first"}},
69+
{"assistant": {"name": "Maintenance", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Maintenance specialist. Collect details and prioritize emergencies."}]}}},
70+
{"assistant": {"name": "Leasing", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Leasing specialist. Answer leasing and rent questions."}]}}},
71+
]
72+
},
73+
)
74+
```
75+
</Tab>
76+
77+
<Tab title="cURL (web)">
78+
```bash
79+
curl -X POST "https://api.vapi.ai/call/web" \
80+
-H "Authorization: Bearer $VAPI_API_KEY" \
81+
-H "Content-Type: application/json" \
82+
-d '{
83+
"squad": {
84+
"members": [
85+
{ "assistant": { "name": "Router", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly."}] }, "firstMessage": "Thanks for calling. How can I help?", "firstMessageMode": "assistant-speaks-first" } },
86+
{ "assistant": { "name": "Maintenance", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Maintenance specialist. Collect details and prioritize emergencies."}] } } },
87+
{ "assistant": { "name": "Leasing", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Leasing specialist. Answer leasing and rent questions."}] } } }
88+
]
89+
}
90+
}'
91+
```
92+
</Tab>
93+
</Tabs>
94+
95+
## 4. Test
3896

3997
Assign the Squad to a phone number and test each path.
4098

0 commit comments

Comments
 (0)