wiil-python 0.0.0__tar.gz → 0.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wiil_python-0.0.0 → wiil_python-0.0.2}/PKG-INFO +129 -7
- {wiil_python-0.0.0 → wiil_python-0.0.2}/README.md +128 -6
- {wiil_python-0.0.0 → wiil_python-0.0.2}/pyproject.toml +2 -2
- wiil_python-0.0.2/setup.py +8 -0
- wiil_python-0.0.2/wiil/client/__init__.py +17 -0
- wiil_python-0.0.2/wiil/client/async_wiil_client.py +80 -0
- wiil_python-0.0.2/wiil/client/http_client.py +537 -0
- wiil_python-0.0.2/wiil/client/types.py +163 -0
- wiil_python-0.0.2/wiil/client/wiil_client.py +218 -0
- wiil_python-0.0.2/wiil/client/will_service.py +89 -0
- wiil_python-0.0.2/wiil/errors/__init__.py +17 -0
- wiil_python-0.0.2/wiil/errors/exceptions.py +215 -0
- wiil_python-0.0.2/wiil/models/__init__.py +607 -0
- wiil_python-0.0.2/wiil/models/account/__init__.py +28 -0
- wiil_python-0.0.2/wiil/models/account/organization.py +158 -0
- wiil_python-0.0.2/wiil/models/account/project.py +210 -0
- wiil_python-0.0.2/wiil/models/account/supported_business_verticals.py +39 -0
- wiil_python-0.0.2/wiil/models/assistant_setups/__init__.py +32 -0
- wiil_python-0.0.2/wiil/models/assistant_setups/assistant_setup_result.py +82 -0
- wiil_python-0.0.2/wiil/models/assistant_setups/base_assistant_setup.py +133 -0
- wiil_python-0.0.2/wiil/models/assistant_setups/phone_assistant_setup.py +73 -0
- wiil_python-0.0.2/wiil/models/assistant_setups/web_assistant_setup.py +63 -0
- wiil_python-0.0.2/wiil/models/base.py +94 -0
- wiil_python-0.0.2/wiil/models/business_mgt/__init__.py +247 -0
- wiil_python-0.0.2/wiil/models/business_mgt/appointment_additional_info.py +149 -0
- wiil_python-0.0.2/wiil/models/business_mgt/appointment_field_config.py +157 -0
- wiil_python-0.0.2/wiil/models/business_mgt/customer.py +225 -0
- wiil_python-0.0.2/wiil/models/business_mgt/menu_config.py +345 -0
- wiil_python-0.0.2/wiil/models/business_mgt/menu_order.py +501 -0
- wiil_python-0.0.2/wiil/models/business_mgt/order.py +181 -0
- wiil_python-0.0.2/wiil/models/business_mgt/product_config.py +344 -0
- wiil_python-0.0.2/wiil/models/business_mgt/product_order.py +519 -0
- wiil_python-0.0.2/wiil/models/business_mgt/property_config.py +576 -0
- wiil_python-0.0.2/wiil/models/business_mgt/property_inquiry.py +362 -0
- wiil_python-0.0.2/wiil/models/business_mgt/reservation.py +323 -0
- wiil_python-0.0.2/wiil/models/business_mgt/reservation_resource.py +328 -0
- wiil_python-0.0.2/wiil/models/business_mgt/service_appointment.py +227 -0
- wiil_python-0.0.2/wiil/models/business_mgt/service_config.py +204 -0
- wiil_python-0.0.2/wiil/models/business_mgt/service_person.py +107 -0
- wiil_python-0.0.2/wiil/models/conversation/__init__.py +89 -0
- wiil_python-0.0.2/wiil/models/conversation/conversation_config.py +539 -0
- wiil_python-0.0.2/wiil/models/conversation/conversation_message.py +239 -0
- wiil_python-0.0.2/wiil/models/conversation/translation_config.py +156 -0
- wiil_python-0.0.2/wiil/models/conversation/translation_conversation.py +554 -0
- wiil_python-0.0.2/wiil/models/request/__init__.py +32 -0
- wiil_python-0.0.2/wiil/models/request/paginated_query.py +58 -0
- wiil_python-0.0.2/wiil/models/request/paginated_result.py +192 -0
- wiil_python-0.0.2/wiil/models/service_mgt/__init__.py +235 -0
- wiil_python-0.0.2/wiil/models/service_mgt/agent_config.py +182 -0
- wiil_python-0.0.2/wiil/models/service_mgt/call_transfer_config.py +70 -0
- wiil_python-0.0.2/wiil/models/service_mgt/deployment_config.py +267 -0
- wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/__init__.py +50 -0
- wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/base_agent_setup.py +229 -0
- wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/phone_agent_setup.py +113 -0
- wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/web_agent_setup.py +129 -0
- wiil_python-0.0.2/wiil/models/service_mgt/instruction_config.py +192 -0
- wiil_python-0.0.2/wiil/models/service_mgt/interaction_channels.py +558 -0
- wiil_python-0.0.2/wiil/models/service_mgt/knowledge.py +164 -0
- wiil_python-0.0.2/wiil/models/service_mgt/phone_config.py +173 -0
- wiil_python-0.0.2/wiil/models/service_mgt/phone_number.py +282 -0
- wiil_python-0.0.2/wiil/models/service_mgt/provisioning_config.py +306 -0
- wiil_python-0.0.2/wiil/models/service_mgt/support_llm.py +107 -0
- wiil_python-0.0.2/wiil/models/service_mgt/voice_language.py +142 -0
- wiil_python-0.0.2/wiil/models/type_definitions/__init__.py +147 -0
- wiil_python-0.0.2/wiil/models/type_definitions/account_definitions.py +91 -0
- wiil_python-0.0.2/wiil/models/type_definitions/business_definitions.py +409 -0
- wiil_python-0.0.2/wiil/models/type_definitions/conversation_definitions.py +55 -0
- wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/__init__.py +42 -0
- wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/field_definition.py +245 -0
- wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/field_types.py +129 -0
- wiil_python-0.0.2/wiil/models/type_definitions/knowledge_definitions.py +48 -0
- wiil_python-0.0.2/wiil/models/type_definitions/service_config_definitions.py +161 -0
- wiil_python-0.0.2/wiil/resources/__init__.py +6 -0
- wiil_python-0.0.2/wiil/resources/account/__init__.py +9 -0
- wiil_python-0.0.2/wiil/resources/account/organizations.py +62 -0
- wiil_python-0.0.2/wiil/resources/account/projects.py +250 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/__init__.py +27 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/business_services.py +80 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/customers.py +299 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/menu_orders.py +85 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/menus.py +272 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/product_orders.py +85 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/products.py +142 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/property_config.py +324 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/property_inquiry.py +164 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/reservation_resources.py +76 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/reservations.py +140 -0
- wiil_python-0.0.2/wiil/resources/business_mgt/service_appointments.py +111 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/__init__.py +41 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/agent_configs.py +86 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/conversation_configs.py +48 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/deployment_channels.py +120 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/deployment_configs.py +156 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_agent_status.py +32 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_phone_agent.py +106 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_web_agent.py +100 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/instruction_configs.py +94 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/knowledge_sources.py +48 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/phone_configs.py +78 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/provisioning_configs.py +114 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/support_models.py +297 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/telephony_provider.py +228 -0
- wiil_python-0.0.2/wiil/resources/service_mgt/translation_sessions.py +48 -0
- wiil_python-0.0.2/wiil/services/__init__.py +31 -0
- wiil_python-0.0.2/wiil/services/ott/__init__.py +17 -0
- wiil_python-0.0.2/wiil/services/ott/models.py +44 -0
- wiil_python-0.0.2/wiil/services/ott/service.py +92 -0
- wiil_python-0.0.2/wiil/services/translation/__init__.py +15 -0
- wiil_python-0.0.2/wiil/services/translation/models.py +41 -0
- wiil_python-0.0.2/wiil/services/translation/service.py +53 -0
- wiil_python-0.0.2/wiil/types/__init__.py +176 -0
- wiil_python-0.0.2/wiil/types/account_types.py +89 -0
- wiil_python-0.0.2/wiil/types/business_types.py +522 -0
- wiil_python-0.0.2/wiil/types/conversation_types.py +115 -0
- wiil_python-0.0.2/wiil/types/knowledge_types.py +85 -0
- wiil_python-0.0.2/wiil/types/paginated_quest.py +64 -0
- wiil_python-0.0.2/wiil/types/paginated_result.py +196 -0
- wiil_python-0.0.2/wiil/types/service_types.py +270 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/PKG-INFO +129 -7
- wiil_python-0.0.2/wiil_python.egg-info/SOURCES.txt +124 -0
- wiil_python-0.0.0/setup.py +0 -5
- wiil_python-0.0.0/wiil_python.egg-info/SOURCES.txt +0 -10
- {wiil_python-0.0.0 → wiil_python-0.0.2}/setup.cfg +0 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil/__init__.py +0 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil/py.typed +0 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/dependency_links.txt +0 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/requires.txt +0 -0
- {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wiil-python
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.2
|
|
4
4
|
Summary: Official Python SDK for WIIL Platform - AI-powered conversational services for intelligent customer interactions, voice processing, real-time translation, and business management
|
|
5
5
|
Author-email: WIIL <dev-support@wiil.io>
|
|
6
6
|
License: MIT
|
|
@@ -82,7 +82,7 @@ venv\Scripts\activate
|
|
|
82
82
|
### 2. Install the SDK
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
pip install wiil
|
|
85
|
+
pip install wiil-python
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
## Quick Start
|
|
@@ -169,6 +169,7 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
169
169
|
|--------|----------------|---------------------|
|
|
170
170
|
| **Appointment Management** | Business Services | Service Appointments |
|
|
171
171
|
| **Reservation Management** | Reservable Assets (Resources) | Reservations |
|
|
172
|
+
| **Property Management** | Properties & Listings | Property Inquiries |
|
|
172
173
|
| **Menu Management** | Menu Categories & Items | Menu Orders |
|
|
173
174
|
| **Product Management** | Product Categories & Products | Product Orders |
|
|
174
175
|
|
|
@@ -176,6 +177,7 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
176
177
|
|
|
177
178
|
- **Business Services** - Bookable services (salons, clinics, consulting)
|
|
178
179
|
- **Reservable Assets** - Bookable resources (tables, rooms, equipment)
|
|
180
|
+
- **Properties & Listings** - Managed properties and listing availability data
|
|
179
181
|
- **Menu Categories & Items** - Food and beverage offerings
|
|
180
182
|
- **Product Categories & Products** - Retail products
|
|
181
183
|
|
|
@@ -183,10 +185,11 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
183
185
|
|
|
184
186
|
- **Service Appointments** - Created through AI conversations
|
|
185
187
|
- **Reservations** - Created through AI conversations
|
|
188
|
+
- **Property Inquiries** - Created through AI conversations
|
|
186
189
|
- **Menu Orders** - Created through AI conversations
|
|
187
190
|
- **Product Orders** - Created through AI conversations
|
|
188
191
|
|
|
189
|
-
**SDK Resources**: `business_services`, `reservation_resources`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
|
|
192
|
+
**SDK Resources**: `business_services`, `reservation_resources`, `property_config`, `property_inquiry`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
|
|
190
193
|
|
|
191
194
|
### Integration Hub: Conversations
|
|
192
195
|
|
|
@@ -241,7 +244,8 @@ The **Conversations** entity serves as the central integration point, bridging S
|
|
|
241
244
|
↓
|
|
242
245
|
6. Transaction Created
|
|
243
246
|
• Service Appointment
|
|
244
|
-
|
|
247
|
+
• Reservation
|
|
248
|
+
• Property Inquiry
|
|
245
249
|
• Menu Order
|
|
246
250
|
• Product Order
|
|
247
251
|
↓
|
|
@@ -264,7 +268,125 @@ The **Conversations** entity serves as the central integration point, bridging S
|
|
|
264
268
|
|
|
265
269
|
## Usage Examples
|
|
266
270
|
|
|
267
|
-
###
|
|
271
|
+
### 1. Dynamic Agent Setup (Recommended)
|
|
272
|
+
|
|
273
|
+
The Dynamic Agent Setup APIs are the fastest way to deploy agents. Instead of creating each service-management component separately, you can provision a deployable assistant in one call.
|
|
274
|
+
|
|
275
|
+
#### Phone Agent - Single Call Deployment
|
|
276
|
+
|
|
277
|
+
```python
|
|
278
|
+
from wiil import WiilClient
|
|
279
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup
|
|
280
|
+
from wiil.types import BusinessSupportServices
|
|
281
|
+
|
|
282
|
+
client = WiilClient(api_key="your-api-key")
|
|
283
|
+
|
|
284
|
+
result = client.dynamic_phone_agent.create(
|
|
285
|
+
DynamicPhoneAgentSetup(
|
|
286
|
+
assistant_name="Sarah",
|
|
287
|
+
language="en-US",
|
|
288
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
289
|
+
)
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
print("Phone number:", result.phone_number)
|
|
293
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
#### Web Agent - Single Call Deployment
|
|
297
|
+
|
|
298
|
+
```python
|
|
299
|
+
from wiil import WiilClient
|
|
300
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
|
|
301
|
+
from wiil.types import BusinessSupportServices
|
|
302
|
+
|
|
303
|
+
client = WiilClient(api_key="your-api-key")
|
|
304
|
+
|
|
305
|
+
result = client.dynamic_web_agent.create(
|
|
306
|
+
DynamicWebAgentSetup(
|
|
307
|
+
assistant_name="Emma",
|
|
308
|
+
website_url="https://example.com",
|
|
309
|
+
communication_type="UNIFIED",
|
|
310
|
+
language="en-US",
|
|
311
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
312
|
+
)
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
print("Integration snippets:", result.integration_snippets)
|
|
316
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
#### Dynamic Agent with Chained STT/TTS Configuration
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
from wiil import WiilClient
|
|
323
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
|
|
324
|
+
from wiil.types import BusinessSupportServices
|
|
325
|
+
|
|
326
|
+
client = WiilClient(api_key="your-api-key")
|
|
327
|
+
|
|
328
|
+
result = client.dynamic_web_agent.create(
|
|
329
|
+
DynamicWebAgentSetup(
|
|
330
|
+
assistant_name="Marcus",
|
|
331
|
+
website_url="https://example.com",
|
|
332
|
+
communication_type="VOICE",
|
|
333
|
+
language="en-US",
|
|
334
|
+
capabilities=[
|
|
335
|
+
BusinessSupportServices.APPOINTMENT_MANAGEMENT,
|
|
336
|
+
BusinessSupportServices.PRODUCT_ORDER_MANAGEMENT,
|
|
337
|
+
],
|
|
338
|
+
stt_configuration={
|
|
339
|
+
"provider_type": "Deepgram",
|
|
340
|
+
"provider_model_id": "nova-2",
|
|
341
|
+
"language_id": "en-US",
|
|
342
|
+
},
|
|
343
|
+
tts_configuration={
|
|
344
|
+
"provider_type": "ElevenLabs",
|
|
345
|
+
"provider_model_id": "eleven_turbo_v2",
|
|
346
|
+
"language_id": "en-US",
|
|
347
|
+
"voice_id": "voice_rachel",
|
|
348
|
+
},
|
|
349
|
+
)
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
#### Dynamic Agent Operations
|
|
356
|
+
|
|
357
|
+
```python
|
|
358
|
+
from wiil import WiilClient
|
|
359
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup, UpdateDynamicPhoneAgent
|
|
360
|
+
|
|
361
|
+
client = WiilClient(api_key="your-api-key")
|
|
362
|
+
|
|
363
|
+
# Create
|
|
364
|
+
created = client.dynamic_phone_agent.create(
|
|
365
|
+
DynamicPhoneAgentSetup(
|
|
366
|
+
assistant_name="Nathan",
|
|
367
|
+
language="en-US",
|
|
368
|
+
capabilities=[],
|
|
369
|
+
)
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
# Update (partial)
|
|
373
|
+
updated = client.dynamic_phone_agent.update(
|
|
374
|
+
UpdateDynamicPhoneAgent(
|
|
375
|
+
id=created.id,
|
|
376
|
+
assistant_name="Nathan Updated",
|
|
377
|
+
)
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
# Delete
|
|
381
|
+
deleted = client.dynamic_phone_agent.delete(created.id)
|
|
382
|
+
print("Deleted:", deleted)
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
For full walkthroughs, see `../guides/dynamic-agent-setup-guide.md`.
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
### 2. Account Management
|
|
268
390
|
|
|
269
391
|
```python
|
|
270
392
|
from wiil import WiilClient
|
|
@@ -297,7 +419,7 @@ deleted = client.projects.delete("proj_123")
|
|
|
297
419
|
projects = client.projects.list(page=1, page_size=20)
|
|
298
420
|
```
|
|
299
421
|
|
|
300
|
-
### Service Configuration
|
|
422
|
+
### 3. Service Configuration
|
|
301
423
|
|
|
302
424
|
```python
|
|
303
425
|
# Create an agent configuration
|
|
@@ -313,7 +435,7 @@ agent = client.agent_configs.get("agent_123")
|
|
|
313
435
|
agents = client.agent_configs.list(page=1, page_size=20)
|
|
314
436
|
```
|
|
315
437
|
|
|
316
|
-
### Business Management
|
|
438
|
+
### 4. Business Management
|
|
317
439
|
|
|
318
440
|
```python
|
|
319
441
|
# Create a business service
|
|
@@ -43,7 +43,7 @@ venv\Scripts\activate
|
|
|
43
43
|
### 2. Install the SDK
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
pip install wiil
|
|
46
|
+
pip install wiil-python
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## Quick Start
|
|
@@ -130,6 +130,7 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
130
130
|
|--------|----------------|---------------------|
|
|
131
131
|
| **Appointment Management** | Business Services | Service Appointments |
|
|
132
132
|
| **Reservation Management** | Reservable Assets (Resources) | Reservations |
|
|
133
|
+
| **Property Management** | Properties & Listings | Property Inquiries |
|
|
133
134
|
| **Menu Management** | Menu Categories & Items | Menu Orders |
|
|
134
135
|
| **Product Management** | Product Categories & Products | Product Orders |
|
|
135
136
|
|
|
@@ -137,6 +138,7 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
137
138
|
|
|
138
139
|
- **Business Services** - Bookable services (salons, clinics, consulting)
|
|
139
140
|
- **Reservable Assets** - Bookable resources (tables, rooms, equipment)
|
|
141
|
+
- **Properties & Listings** - Managed properties and listing availability data
|
|
140
142
|
- **Menu Categories & Items** - Food and beverage offerings
|
|
141
143
|
- **Product Categories & Products** - Retail products
|
|
142
144
|
|
|
@@ -144,10 +146,11 @@ The platform integrates two core architectural domains through the **Conversatio
|
|
|
144
146
|
|
|
145
147
|
- **Service Appointments** - Created through AI conversations
|
|
146
148
|
- **Reservations** - Created through AI conversations
|
|
149
|
+
- **Property Inquiries** - Created through AI conversations
|
|
147
150
|
- **Menu Orders** - Created through AI conversations
|
|
148
151
|
- **Product Orders** - Created through AI conversations
|
|
149
152
|
|
|
150
|
-
**SDK Resources**: `business_services`, `reservation_resources`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
|
|
153
|
+
**SDK Resources**: `business_services`, `reservation_resources`, `property_config`, `property_inquiry`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
|
|
151
154
|
|
|
152
155
|
### Integration Hub: Conversations
|
|
153
156
|
|
|
@@ -202,7 +205,8 @@ The **Conversations** entity serves as the central integration point, bridging S
|
|
|
202
205
|
↓
|
|
203
206
|
6. Transaction Created
|
|
204
207
|
• Service Appointment
|
|
205
|
-
|
|
208
|
+
• Reservation
|
|
209
|
+
• Property Inquiry
|
|
206
210
|
• Menu Order
|
|
207
211
|
• Product Order
|
|
208
212
|
↓
|
|
@@ -225,7 +229,125 @@ The **Conversations** entity serves as the central integration point, bridging S
|
|
|
225
229
|
|
|
226
230
|
## Usage Examples
|
|
227
231
|
|
|
228
|
-
###
|
|
232
|
+
### 1. Dynamic Agent Setup (Recommended)
|
|
233
|
+
|
|
234
|
+
The Dynamic Agent Setup APIs are the fastest way to deploy agents. Instead of creating each service-management component separately, you can provision a deployable assistant in one call.
|
|
235
|
+
|
|
236
|
+
#### Phone Agent - Single Call Deployment
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
from wiil import WiilClient
|
|
240
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup
|
|
241
|
+
from wiil.types import BusinessSupportServices
|
|
242
|
+
|
|
243
|
+
client = WiilClient(api_key="your-api-key")
|
|
244
|
+
|
|
245
|
+
result = client.dynamic_phone_agent.create(
|
|
246
|
+
DynamicPhoneAgentSetup(
|
|
247
|
+
assistant_name="Sarah",
|
|
248
|
+
language="en-US",
|
|
249
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
250
|
+
)
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
print("Phone number:", result.phone_number)
|
|
254
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
#### Web Agent - Single Call Deployment
|
|
258
|
+
|
|
259
|
+
```python
|
|
260
|
+
from wiil import WiilClient
|
|
261
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
|
|
262
|
+
from wiil.types import BusinessSupportServices
|
|
263
|
+
|
|
264
|
+
client = WiilClient(api_key="your-api-key")
|
|
265
|
+
|
|
266
|
+
result = client.dynamic_web_agent.create(
|
|
267
|
+
DynamicWebAgentSetup(
|
|
268
|
+
assistant_name="Emma",
|
|
269
|
+
website_url="https://example.com",
|
|
270
|
+
communication_type="UNIFIED",
|
|
271
|
+
language="en-US",
|
|
272
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
273
|
+
)
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
print("Integration snippets:", result.integration_snippets)
|
|
277
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### Dynamic Agent with Chained STT/TTS Configuration
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
from wiil import WiilClient
|
|
284
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
|
|
285
|
+
from wiil.types import BusinessSupportServices
|
|
286
|
+
|
|
287
|
+
client = WiilClient(api_key="your-api-key")
|
|
288
|
+
|
|
289
|
+
result = client.dynamic_web_agent.create(
|
|
290
|
+
DynamicWebAgentSetup(
|
|
291
|
+
assistant_name="Marcus",
|
|
292
|
+
website_url="https://example.com",
|
|
293
|
+
communication_type="VOICE",
|
|
294
|
+
language="en-US",
|
|
295
|
+
capabilities=[
|
|
296
|
+
BusinessSupportServices.APPOINTMENT_MANAGEMENT,
|
|
297
|
+
BusinessSupportServices.PRODUCT_ORDER_MANAGEMENT,
|
|
298
|
+
],
|
|
299
|
+
stt_configuration={
|
|
300
|
+
"provider_type": "Deepgram",
|
|
301
|
+
"provider_model_id": "nova-2",
|
|
302
|
+
"language_id": "en-US",
|
|
303
|
+
},
|
|
304
|
+
tts_configuration={
|
|
305
|
+
"provider_type": "ElevenLabs",
|
|
306
|
+
"provider_model_id": "eleven_turbo_v2",
|
|
307
|
+
"language_id": "en-US",
|
|
308
|
+
"voice_id": "voice_rachel",
|
|
309
|
+
},
|
|
310
|
+
)
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
print("Agent ID:", result.agent_configuration_id)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### Dynamic Agent Operations
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
from wiil import WiilClient
|
|
320
|
+
from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup, UpdateDynamicPhoneAgent
|
|
321
|
+
|
|
322
|
+
client = WiilClient(api_key="your-api-key")
|
|
323
|
+
|
|
324
|
+
# Create
|
|
325
|
+
created = client.dynamic_phone_agent.create(
|
|
326
|
+
DynamicPhoneAgentSetup(
|
|
327
|
+
assistant_name="Nathan",
|
|
328
|
+
language="en-US",
|
|
329
|
+
capabilities=[],
|
|
330
|
+
)
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
# Update (partial)
|
|
334
|
+
updated = client.dynamic_phone_agent.update(
|
|
335
|
+
UpdateDynamicPhoneAgent(
|
|
336
|
+
id=created.id,
|
|
337
|
+
assistant_name="Nathan Updated",
|
|
338
|
+
)
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
# Delete
|
|
342
|
+
deleted = client.dynamic_phone_agent.delete(created.id)
|
|
343
|
+
print("Deleted:", deleted)
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
For full walkthroughs, see `../guides/dynamic-agent-setup-guide.md`.
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### 2. Account Management
|
|
229
351
|
|
|
230
352
|
```python
|
|
231
353
|
from wiil import WiilClient
|
|
@@ -258,7 +380,7 @@ deleted = client.projects.delete("proj_123")
|
|
|
258
380
|
projects = client.projects.list(page=1, page_size=20)
|
|
259
381
|
```
|
|
260
382
|
|
|
261
|
-
### Service Configuration
|
|
383
|
+
### 3. Service Configuration
|
|
262
384
|
|
|
263
385
|
```python
|
|
264
386
|
# Create an agent configuration
|
|
@@ -274,7 +396,7 @@ agent = client.agent_configs.get("agent_123")
|
|
|
274
396
|
agents = client.agent_configs.list(page=1, page_size=20)
|
|
275
397
|
```
|
|
276
398
|
|
|
277
|
-
### Business Management
|
|
399
|
+
### 4. Business Management
|
|
278
400
|
|
|
279
401
|
```python
|
|
280
402
|
# Create a business service
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wiil-python"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.2"
|
|
8
8
|
description = "Official Python SDK for WIIL Platform - AI-powered conversational services for intelligent customer interactions, voice processing, real-time translation, and business management"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -79,7 +79,7 @@ Repository = "https://github.com/wiil-io/wiil-python"
|
|
|
79
79
|
Issues = "https://github.com/wiil-io/wiil-python/issues"
|
|
80
80
|
|
|
81
81
|
[tool.setuptools]
|
|
82
|
-
packages = ["wiil"]
|
|
82
|
+
packages = { find = { include = ["wiil", "wiil.*"] } }
|
|
83
83
|
|
|
84
84
|
[tool.setuptools.package-data]
|
|
85
85
|
wiil = ["py.typed"]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"""Setup script for WIIL Python SDK."""
|
|
2
|
+
from setuptools import find_packages, setup
|
|
3
|
+
|
|
4
|
+
# Keep metadata in pyproject.toml while forcing reliable package discovery.
|
|
5
|
+
setup(
|
|
6
|
+
packages=find_packages(include=["wiil", "wiil.*"]),
|
|
7
|
+
package_data={"wiil": ["py.typed"]},
|
|
8
|
+
)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""WIIL SDK client module."""
|
|
2
|
+
|
|
3
|
+
from wiil.client.types import WiilClientConfig, APIResponse, APIErrorResponse
|
|
4
|
+
from wiil.client.http_client import HttpClient
|
|
5
|
+
from wiil.client.async_wiil_client import AsyncWiilClient
|
|
6
|
+
from wiil.client.will_service import WillService
|
|
7
|
+
from wiil.client.wiil_client import WiilClient
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
'WiilClient',
|
|
11
|
+
'AsyncWiilClient',
|
|
12
|
+
'WillService',
|
|
13
|
+
'WiilClientConfig',
|
|
14
|
+
'HttpClient',
|
|
15
|
+
'APIResponse',
|
|
16
|
+
'APIErrorResponse',
|
|
17
|
+
]
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""Async WIIL SDK client.
|
|
2
|
+
|
|
3
|
+
This module provides an async facade over the existing synchronous WIIL SDK
|
|
4
|
+
resources. Resource method calls are executed in worker threads via
|
|
5
|
+
``asyncio.to_thread`` so consumers can use ``await`` and async context
|
|
6
|
+
managers.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import asyncio
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
from wiil.client.wiil_client import WiilClient
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class _AsyncResourceProxy:
|
|
16
|
+
"""Async wrapper for a synchronous resource object."""
|
|
17
|
+
|
|
18
|
+
def __init__(self, target: Any):
|
|
19
|
+
self._target = target
|
|
20
|
+
|
|
21
|
+
def __getattr__(self, name: str) -> Any:
|
|
22
|
+
attribute = getattr(self._target, name)
|
|
23
|
+
|
|
24
|
+
if callable(attribute):
|
|
25
|
+
async def _async_call(*args: Any, **kwargs: Any) -> Any:
|
|
26
|
+
return await asyncio.to_thread(attribute, *args, **kwargs)
|
|
27
|
+
|
|
28
|
+
return _async_call
|
|
29
|
+
|
|
30
|
+
return attribute
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class AsyncWiilClient:
|
|
34
|
+
"""Async client for interacting with the WIIL Platform API.
|
|
35
|
+
|
|
36
|
+
This client mirrors ``WiilClient`` properties while exposing resource
|
|
37
|
+
method calls as awaitable coroutines.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
def __init__(
|
|
41
|
+
self,
|
|
42
|
+
api_key: str,
|
|
43
|
+
base_url: str = "https://api.wiil.io/v1",
|
|
44
|
+
timeout: int = 30,
|
|
45
|
+
):
|
|
46
|
+
self._sync_client = WiilClient(
|
|
47
|
+
api_key=api_key,
|
|
48
|
+
base_url=base_url,
|
|
49
|
+
timeout=timeout,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
for name, value in vars(self._sync_client).items():
|
|
53
|
+
if name.startswith("_"):
|
|
54
|
+
continue
|
|
55
|
+
setattr(self, name, _AsyncResourceProxy(value))
|
|
56
|
+
|
|
57
|
+
def __getattr__(self, name: str) -> Any:
|
|
58
|
+
"""Proxy any additional attributes to the underlying sync client."""
|
|
59
|
+
attribute = getattr(self._sync_client, name)
|
|
60
|
+
|
|
61
|
+
if callable(attribute):
|
|
62
|
+
async def _async_call(*args: Any, **kwargs: Any) -> Any:
|
|
63
|
+
return await asyncio.to_thread(attribute, *args, **kwargs)
|
|
64
|
+
|
|
65
|
+
return _async_call
|
|
66
|
+
|
|
67
|
+
return attribute
|
|
68
|
+
|
|
69
|
+
async def aclose(self) -> None:
|
|
70
|
+
"""Close the underlying HTTP session."""
|
|
71
|
+
await asyncio.to_thread(self._sync_client._http.session.close)
|
|
72
|
+
|
|
73
|
+
async def __aenter__(self) -> "AsyncWiilClient":
|
|
74
|
+
return self
|
|
75
|
+
|
|
76
|
+
async def __aexit__(self, exc_type, exc, tb) -> None:
|
|
77
|
+
await self.aclose()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
__all__ = ["AsyncWiilClient"]
|