AI Chain Python Client SDK for IIP Dispatch WebSocket protocol v2.0
Project description
AI Chain Python Client SDK
This package provides a Python implementation of the AI Chain Client SDK for the WebSocket v2.1 interaction protocol described in:
交互协议设计文档.mdClient SDK设计文档.md
Features
- Async WebSocket client (
AIChainClient) based onasyncio - Strongly-typed session configuration (
SessionConfig) matching the protocol - Typed request items (
TextItem,ImageItem,AudioItem) - Typed result / event objects (STT, NLU, TTS, welcome, system events)
- Event-based callback system:
client.on(event, callback) - Built‑in CID generation and checksum generation utilities
- Heartbeat loop after
session.configed
Installation
In your own project (outside this repo) you can install this package once it is packaged and published, for example:
pip install aichain-sdk
For local development inside this repository:
pip install -e .
Quick Start
import asyncio
from aichain_sdk import AIChainClient, SessionConfig
async def main():
client = AIChainClient(
app_id="your_app_id",
app_key="your_app_key",
host="itv-bbs.openspeech.cn:9706",
sn="SN123456789",
scene="customer_service",
)
@client.on("nlu.answer")
def on_nlu_answer(cid, result, is_last):
print(result.answer, end="", flush=True)
if is_last:
print("\n[NLU done]")
await client.connect()
await client.set_config(
SessionConfig(
nlu={
"enable": True,
"tools": {
"models": [{"modelId": "spark-v3.5"}],
"modelId": "spark-v3.5",
},
}
)
)
await client.begin_send()
await client.send_text("你好")
# keep process alive to receive streaming responses
await asyncio.sleep(5)
await client.disconnect()
if __name__ == "__main__":
asyncio.run(main())
Status
This is an initial implementation aligned with the v2.1 protocol and the SDK design document. It focuses on:
- Correct protocol message formats
- Event dispatching semantics
- Core connection / configuration / send APIs
You can extend it with more advanced features such as:
- More detailed logging hooks
- Custom reconnection policies
- Rich error handling and metrics
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aichain_sdk-0.1.1.tar.gz.
File metadata
- Download URL: aichain_sdk-0.1.1.tar.gz
- Upload date:
- Size: 521.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
232ae51855656d9d8a16afb8193487fe1c36cf8ca95bb77df842a466f3de7f9c
|
|
| MD5 |
adc4b54c1651c55f96d9e80b6c001709
|
|
| BLAKE2b-256 |
a50b81a2433955e07484aa4672a0d7411e5b698ed012c6ee692272cd739ad1fe
|
File details
Details for the file aichain_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aichain_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 513.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c1607cc6b702d0b949b1579002618f32d31fc4eafa1a4dbdd5c6f69d357c90c
|
|
| MD5 |
acb2115c82519f92676a36828f0efc56
|
|
| BLAKE2b-256 |
65261d08dbb2344b324f97d5b2996eb208c88634fdab83bf9145cdec31883050
|