wiil-python 0.0.0__py3-none-any.whl

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/__init__.py ADDED
@@ -0,0 +1,27 @@
1
+ """WIIL Platform Python SDK.
2
+
3
+ Official Python SDK for the WIIL Platform - AI-powered conversational services
4
+ for intelligent customer interactions, voice processing, real-time translation,
5
+ and business management.
6
+ """
7
+
8
+ from wiil.client import AsyncWiilClient, WiilClient, WillService
9
+ from wiil.errors import (
10
+ WiilAPIError,
11
+ WiilConfigurationError,
12
+ WiilError,
13
+ WiilNetworkError,
14
+ WiilValidationError,
15
+ )
16
+
17
+ __version__ = "0.0.0"
18
+ __all__ = [
19
+ "WiilClient",
20
+ "AsyncWiilClient",
21
+ "WillService",
22
+ "WiilError",
23
+ "WiilAPIError",
24
+ "WiilValidationError",
25
+ "WiilNetworkError",
26
+ "WiilConfigurationError",
27
+ ]
wiil/py.typed ADDED
@@ -0,0 +1 @@
1
+ # Marker file for PEP 561
@@ -0,0 +1,511 @@
1
+ Metadata-Version: 2.4
2
+ Name: wiil-python
3
+ Version: 0.0.0
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
+ Author-email: WIIL <dev-support@wiil.io>
6
+ License: MIT
7
+ Project-URL: Homepage, https://console.wiil.io
8
+ Project-URL: Documentation, https://docs.wiil.io
9
+ Project-URL: Repository, https://github.com/wiil-io/wiil-python
10
+ Project-URL: Issues, https://github.com/wiil-io/wiil-python/issues
11
+ Keywords: wiil,wiil-platform,wiil-sdk,ai,artificial-intelligence,conversational-ai,chatbot,voice-ai,speech-to-text,text-to-speech,stt,tts,translation,real-time-translation,voice-translation,business-automation,appointment-booking,reservation-system,order-management,customer-service,telephony,voice-calls,agent-deployment,python,sdk
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Typing :: Typed
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ Requires-Dist: requests>=2.31.0
26
+ Requires-Dist: pydantic<3.0.0,>=2.0.0
27
+ Requires-Dist: email-validator>=2.0.0
28
+ Requires-Dist: typing-extensions>=4.5.0; python_version < "3.11"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
31
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
32
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
33
+ Requires-Dist: httpx>=0.28.0; extra == "dev"
34
+ Requires-Dist: responses>=0.25.0; extra == "dev"
35
+ Requires-Dist: black>=23.0.0; extra == "dev"
36
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
37
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
38
+ Requires-Dist: respx>=0.20.0; extra == "dev"
39
+
40
+ # WIIL Python SDK
41
+
42
+ Official Python SDK for the [WIIL Platform](https://console.wiil.io) - AI-powered conversational services platform for intelligent customer interactions, voice processing, real-time translation, and business management.
43
+
44
+ [![Python](https://img.shields.io/badge/Python-3.8+-blue.svg?style=flat-square)](https://www.python.org/)
45
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
46
+
47
+ ## Features
48
+
49
+ - ✅ **Type-Safe** - Full type hints with Pydantic models
50
+ - ✅ **Production-Grade** - Built for enterprise use with robust error handling
51
+ - ✅ **Validated** - Runtime validation using Pydantic
52
+ - ✅ **Well-Documented** - Comprehensive docstrings and API documentation
53
+ - ✅ **Tested** - Extensive test coverage with pytest
54
+ - ✅ **Modern** - Async/await support with httpx
55
+ - ✅ **Comprehensive** - Access to all WIIL Platform domains
56
+
57
+ ## Installation
58
+
59
+ ### 1. Create and activate a virtual environment
60
+
61
+ Linux/macOS:
62
+
63
+ ```bash
64
+ python -m venv venv
65
+ source venv/bin/activate
66
+ ```
67
+
68
+ Windows (PowerShell):
69
+
70
+ ```powershell
71
+ python -m venv venv
72
+ venv\Scripts\Activate.ps1
73
+ ```
74
+
75
+ Windows (Command Prompt):
76
+
77
+ ```bat
78
+ python -m venv venv
79
+ venv\Scripts\activate
80
+ ```
81
+
82
+ ### 2. Install the SDK
83
+
84
+ ```bash
85
+ pip install wiil
86
+ ```
87
+
88
+ ## Quick Start
89
+
90
+ ```python
91
+ from wiil import WiilClient
92
+
93
+ # Initialize the client with your API key
94
+ client = WiilClient(api_key="your-api-key")
95
+
96
+ # Get your organization
97
+ organization = client.organizations.get()
98
+ print(f"Organization: {organization.company_name}")
99
+
100
+ # Create a project
101
+ project = client.projects.create(
102
+ name="Production Environment",
103
+ description="Main production deployment"
104
+ )
105
+
106
+ print(f"Project created: {project.id}")
107
+ ```
108
+
109
+ ## Platform Architecture
110
+
111
+ The WIIL Platform provides a unified architecture that bridges AI agent deployment with business operations, enabling organizations to conduct intelligent customer conversations that drive measurable business outcomes.
112
+
113
+ ### Unified Architecture Overview
114
+
115
+ The platform integrates two core architectural domains through the **Conversations** entity:
116
+
117
+ ![WIIL Platform Unified Architecture](unified-architecture.png)
118
+
119
+ ### Core Architectural Domains
120
+
121
+ #### 1. Service Configuration
122
+
123
+ **Purpose**: Manages the deployment and behavior of AI agents within the platform.
124
+
125
+ **Key Components**:
126
+
127
+ - **Agent Configurations** - Define AI agent capabilities and characteristics
128
+ - **Instruction Configurations** - The heart of agent behavior with system prompts, guidelines, and compliance rules
129
+ - **Deployment Configurations** - Combine agents and instructions into deployable units
130
+ - **Deployment Channels** - Communication channels (OTT Chat, Telephony, SMS, Email)
131
+ - **Phone Configurations** - Telephony-specific settings for voice calls
132
+ - **Conversation Configurations** - Configuration for conversation sessions
133
+ - **Knowledge Sources** - Knowledge bases for agent context and accuracy
134
+
135
+ **SDK Resources**: `agent_configs`, `instruction_configs`, `deployment_configs`, `deployment_channels`, `phone_configs`, `conversation_configs`, `knowledge_sources`
136
+
137
+ #### 2. Advanced Service Configuration
138
+
139
+ **Purpose**: Enables voice-powered conversations with end-to-end processing pipelines.
140
+
141
+ **Key Components**:
142
+
143
+ - **Provisioning Chain Configurations** - STT → Agent → TTS voice processing workflows
144
+ - **Speech-to-Text (STT)** - Voice-to-text conversion using Deepgram, OpenAI Whisper, Cartesia
145
+ - **Text-to-Speech (TTS)** - Natural voice generation using ElevenLabs, Cartesia, OpenAI
146
+
147
+ **SDK Resources**: `provisioning_configs`
148
+
149
+ #### 3. Translation Services
150
+
151
+ **Purpose**: Provides real-time multilingual voice translation capabilities.
152
+
153
+ **Key Components**:
154
+
155
+ - **Translation Chain Configurations** - STT → Translation Processing → TTS pipelines for language pairs
156
+ - **Translation Service Requests** - Initiate translation sessions
157
+ - **Translation Participants** - Multi-participant translation sessions with language isolation
158
+ - **Translation Service Logs** - Transcription logging and session records
159
+
160
+ **SDK Resources**: `translation_sessions`
161
+
162
+ #### 4. Business Management
163
+
164
+ **Purpose**: Manages business entity catalogs and their transactional operations through AI-powered conversations.
165
+
166
+ **Management Modules** (Platform Services):
167
+
168
+ | Module | Manages Catalog | Powers Transactions |
169
+ |--------|----------------|---------------------|
170
+ | **Appointment Management** | Business Services | Service Appointments |
171
+ | **Reservation Management** | Reservable Assets (Resources) | Reservations |
172
+ | **Menu Management** | Menu Categories & Items | Menu Orders |
173
+ | **Product Management** | Product Categories & Products | Product Orders |
174
+
175
+ **Business Catalogs**:
176
+
177
+ - **Business Services** - Bookable services (salons, clinics, consulting)
178
+ - **Reservable Assets** - Bookable resources (tables, rooms, equipment)
179
+ - **Menu Categories & Items** - Food and beverage offerings
180
+ - **Product Categories & Products** - Retail products
181
+
182
+ **Transactional Operations** (AI-Powered):
183
+
184
+ - **Service Appointments** - Created through AI conversations
185
+ - **Reservations** - Created through AI conversations
186
+ - **Menu Orders** - Created through AI conversations
187
+ - **Product Orders** - Created through AI conversations
188
+
189
+ **SDK Resources**: `business_services`, `reservation_resources`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
190
+
191
+ ### Integration Hub: Conversations
192
+
193
+ The **Conversations** entity serves as the central integration point, bridging Service Configuration and Business Management:
194
+
195
+ **Key Attributes**:
196
+
197
+ ```python
198
+ {
199
+ # Service Configuration References
200
+ "deployment_config_id": str, # Which agent deployment
201
+ "instruction_config_id": str, # Agent behavior guidelines
202
+ "channel_id": str, # Communication channel
203
+
204
+ # Business Context
205
+ "customer_id": str, # Business customer
206
+ "conversation_type": str, # OTT_CHAT, TELEPHONY_CALL, SMS, EMAIL
207
+
208
+ # Conversation Data
209
+ "messages": list, # Conversation history
210
+ "status": str, # ACTIVE, COMPLETED, TRANSFERRED
211
+ "conversation_summary": dict # AI-generated summary
212
+ }
213
+ ```
214
+
215
+ **Role in Architecture**:
216
+
217
+ 1. **Links** AI agents (via deployment/instruction configs) with business customers
218
+ 2. **Enables** AI agents to leverage business catalogs during conversations
219
+ 3. **Drives** transactional outcomes (appointments, reservations, orders)
220
+ 4. **Supports** multi-channel conversations (voice, chat, SMS, email)
221
+
222
+ ### Data Flow: Conversation to Transaction
223
+
224
+ ```text
225
+ 1. Customer Initiates Contact
226
+
227
+ 2. Channel Routes to Deployment Configuration
228
+
229
+ 3. Conversation Created
230
+ • Links deployment_config_id
231
+ • Links instruction_config_id
232
+ • Links channel_id
233
+ • Links customer_id
234
+
235
+ 4. AI Agent Conducts Conversation
236
+ • Guided by Instruction Configuration
237
+ • Queries Business Catalogs (via Management Modules)
238
+ • Presents available services/products/resources
239
+
240
+ 5. Customer Confirms Intent
241
+
242
+ 6. Transaction Created
243
+ • Service Appointment
244
+ • Reservation
245
+ • Menu Order
246
+ • Product Order
247
+
248
+ 7. Management Module Processes Transaction
249
+ ```
250
+
251
+ ### Design Principles
252
+
253
+ **Unified Customer Experience**: Customers interact through Conversations, unaware of the underlying system complexity.
254
+
255
+ **Separation of Configuration and Execution**: Service Configuration defines *how* agents behave; Business Management defines *what* they can do.
256
+
257
+ **AI-First Conversations**: AI Powered Services leverages catalog data in customer conversations to intelligently drive transactional operations.
258
+
259
+ **Catalog-Transaction Separation**: Clear distinction between catalog/configuration data (managed by Management Modules) and transactional data (powered by AI Powered Services through conversations).
260
+
261
+ **Multi-Channel Support**: Conversations span multiple channel types (OTT Chat, Telephony, SMS, Email).
262
+
263
+ **Transactional Outcomes**: Every conversation can result in measurable business transactions.
264
+
265
+ ## Usage Examples
266
+
267
+ ### Account Management
268
+
269
+ ```python
270
+ from wiil import WiilClient
271
+
272
+ client = WiilClient(api_key="your-api-key")
273
+
274
+ # Get your organization (read-only)
275
+ org = client.organizations.get()
276
+ print(f"Organization: {org.company_name}")
277
+
278
+ # Create a project
279
+ project = client.projects.create(
280
+ name="Production Environment",
281
+ description="Main production deployment"
282
+ )
283
+
284
+ # Get a project
285
+ project = client.projects.get("proj_123")
286
+
287
+ # Update a project
288
+ updated = client.projects.update(
289
+ id="proj_123",
290
+ name="Production Environment v2"
291
+ )
292
+
293
+ # Delete a project
294
+ deleted = client.projects.delete("proj_123")
295
+
296
+ # List projects
297
+ projects = client.projects.list(page=1, page_size=20)
298
+ ```
299
+
300
+ ### Service Configuration
301
+
302
+ ```python
303
+ # Create an agent configuration
304
+ agent = client.agent_configs.create(
305
+ name="Customer Support Agent",
306
+ description="AI agent for customer support"
307
+ )
308
+
309
+ # Get agent configuration
310
+ agent = client.agent_configs.get("agent_123")
311
+
312
+ # List agent configurations
313
+ agents = client.agent_configs.list(page=1, page_size=20)
314
+ ```
315
+
316
+ ### Business Management
317
+
318
+ ```python
319
+ # Create a business service
320
+ service = client.business_services.create(
321
+ name="Hair Cut",
322
+ description="30-minute hair cut service",
323
+ duration=30,
324
+ price=50.00
325
+ )
326
+
327
+ # Create a customer
328
+ customer = client.customers.create(
329
+ name="John Doe",
330
+ email="john@example.com",
331
+ phone="+1234567890"
332
+ )
333
+
334
+ # Create a service appointment
335
+ appointment = client.service_appointments.create(
336
+ customer_id="customer_123",
337
+ service_id="service_123",
338
+ scheduled_date="2025-01-15",
339
+ scheduled_time="14:00"
340
+ )
341
+ ```
342
+
343
+ ## Error Handling
344
+
345
+ ```python
346
+ from wiil import WiilClient
347
+ from wiil.errors import (
348
+ WiilAPIError,
349
+ WiilValidationError,
350
+ WiilNetworkError,
351
+ WiilConfigurationError
352
+ )
353
+
354
+ try:
355
+ project = client.projects.create(name="My Project")
356
+ except WiilValidationError as e:
357
+ print(f"Validation failed: {e.message}")
358
+ print(f"Details: {e.details}")
359
+ except WiilAPIError as e:
360
+ print(f"API Error {e.status_code}: {e.message}")
361
+ print(f"Error Code: {e.code}")
362
+ except WiilNetworkError as e:
363
+ print(f"Network error: {e.message}")
364
+ except WiilConfigurationError as e:
365
+ print(f"Configuration error: {e.message}")
366
+ ```
367
+
368
+ ## Async Support
369
+
370
+ ```python
371
+ from wiil import AsyncWiilClient
372
+
373
+ async def main():
374
+ async with AsyncWiilClient(api_key="your-api-key") as client:
375
+ # Get organization
376
+ org = await client.organizations.get()
377
+ print(f"Organization: {org.company_name}")
378
+
379
+ # Create project
380
+ project = await client.projects.create(
381
+ name="Production",
382
+ is_default=True
383
+ )
384
+ print(f"Project: {project.id}")
385
+
386
+ import asyncio
387
+ asyncio.run(main())
388
+ ```
389
+
390
+ ## WillService (OTT + Translation)
391
+
392
+ `WillService` is a service-focused client exposes high-level workflows for OTT and translation services.
393
+
394
+ ```python
395
+ from wiil import WillService
396
+
397
+ service = WillService(api_key="your-api-key")
398
+
399
+ # Create translation connection config
400
+ translation = service.translation.create_connection_config(
401
+ {
402
+ "initiatorId": "initiator_123",
403
+ "participantLanguageCode": "es",
404
+ "initiatorLanguageCode": "en",
405
+ }
406
+ )
407
+
408
+ print(translation.channel_identifier)
409
+
410
+ # Fetch OTT chat connection configuration
411
+ chat_config = service.ott.get_chat_connection_configuration(
412
+ {
413
+ "configId": "config_abc",
414
+ "contact": {
415
+ "email": "user@example.com",
416
+ "phone": "+12065551234",
417
+ },
418
+ }
419
+ )
420
+
421
+ print(chat_config.connection_url)
422
+ ```
423
+
424
+ ## Development
425
+
426
+ ### Setup
427
+
428
+ ```bash
429
+ # Clone the repository
430
+ git clone https://github.com/wiil-io/wiil-python.git
431
+ cd wiil-python
432
+
433
+ # Create virtual environment
434
+ python -m venv venv
435
+ source venv/bin/activate # On Windows: venv\Scripts\activate
436
+
437
+ # Install development dependencies
438
+ pip install -e ".[dev]"
439
+ ```
440
+
441
+ ### Testing
442
+
443
+ ```bash
444
+ # Run tests
445
+ pytest
446
+
447
+ # Run tests with coverage
448
+ pytest --cov=wiil --cov-report=html
449
+
450
+ # Run specific test file
451
+ pytest tests/unit/test_client.py
452
+ ```
453
+
454
+ ### Code Quality
455
+
456
+ ```bash
457
+ # Format code with black
458
+ black wiil tests
459
+
460
+ # Lint with ruff
461
+ ruff check wiil tests
462
+
463
+ # Type check with mypy
464
+ mypy wiil
465
+ ```
466
+
467
+ ## Requirements
468
+
469
+ - **Python**: 3.8 or higher
470
+ - **Dependencies**: httpx, pydantic
471
+
472
+ ## Security
473
+
474
+ ⚠️ **Important**: This SDK is designed for **server-side use only**. Never expose your API key in client-side code.
475
+
476
+ - Store API keys securely using environment variables
477
+ - Never commit API keys to version control
478
+ - Use environment-specific API keys (development, staging, production)
479
+ - Rotate API keys regularly
480
+
481
+ ### Best Practices
482
+
483
+ ```python
484
+ import os
485
+ from wiil import WiilClient
486
+
487
+ # ✅ Good - Use environment variables
488
+ client = WiilClient(api_key=os.getenv("WIIL_API_KEY"))
489
+
490
+ # ❌ Bad - Never hardcode API keys
491
+ client = WiilClient(api_key="your-api-key-here") # Don't do this!
492
+ ```
493
+
494
+ ## License
495
+
496
+ MIT © [WIIL](https://console.wiil.io)
497
+
498
+ ## Support
499
+
500
+ - **Documentation**: [https://docs.wiil.io](https://docs.wiil.io)
501
+ - **API Reference**: [https://docs.wiil.io/developer/api-reference](https://docs.wiil.io/developer/api-reference)
502
+ - **Issues**: [GitHub Issues](https://github.com/wiil-io/wiil-python/issues)
503
+ - **Email**: [dev-support@wiil.io](mailto:dev-support@wiil.io)
504
+
505
+ ## Contributing
506
+
507
+ Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
508
+
509
+ ---
510
+
511
+ Built with ❤️ by the WIIL team
@@ -0,0 +1,6 @@
1
+ wiil/__init__.py,sha256=QUGdRGETR1lB5VOdcX6W91SIe3o7kK1xgbbIQoTVpnc,662
2
+ wiil/py.typed,sha256=TBDV9m9vjfnp9vsgTeJmpoNseoJEfHwvZaBLvLMfzz8,27
3
+ wiil_python-0.0.0.dist-info/METADATA,sha256=o9wLb27E0zTMAnDAkPxxRwE_m6h9sOkBUxF-i_NpKGk,15572
4
+ wiil_python-0.0.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
5
+ wiil_python-0.0.0.dist-info/top_level.txt,sha256=8CizIxlMF7XuxJQVlzf2UMy2JH4f0-hYO5fntuRQkx4,5
6
+ wiil_python-0.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ wiil