JIT Protocol Synthesis Framework - Python Engine (jit-api-python)
基於 TypeSafe (Jev) 與 Cactus Needle 3.0 的原生 Python 動態至靜態 API 合成引擎
Pythonic Native Host Engine for Just-In-Time Protocol Synthesis
🌟 特色
- 同進程 Cactus Needle 3.0 端側推論:
在無
TYPESAFE_API_KEY或離線狀態下,直接調用進程內的 Needle 3 SAN (2-bit, 35MB) 進行毫秒級 Tool Calling 與結構萃取,0 網路轉發延遲、0 API 費用。 - 極致優雅的裝飾器語法:
使用
@engine.route(...)宣告語意意圖,無縫支援async def與同步def函式。 - Pydantic v2 動態模型極速路徑: 當路由結構在過去 N 次請求中穩定後,自動生成動態 Pydantic v2 BaseModel,Phase 3 靜態驗證僅需 0.03ms (0ms AI 延遲)!
- 自動版本演進與降級保護: 若遇到型態漂移(Schema Drift),自動降級回 Phase 1 並開啟 v2 / v3 版本的觀測與合約重新凍結。
- 多語言程式碼生成積木: 凍結時同步輸出 TypeScript (Zod)、Golang (.proto / struct) 與 Python (Pydantic / FastAPI)。
🚀 快速上手 (Quick Start)
1. 安裝套件
pip install jit-protocol
2. 宣告端點與執行
import asyncio
from jit_api import JITEngine
engine = JITEngine(stability_threshold=3)
@engine.route(
name="create_invoice",
description="Issue a customer billing invoice",
intent="Bill or invoice a customer for items",
enum_fields={"currency": {"USD": "US Dollar", "EUR": "Euro"}}
)
async def create_invoice(payload, ctx):
return {
"invoice_id": "INV-100",
"customer": payload.get("customer"),
"amount": payload.get("amount"),
"phase": ctx.phase,
}
async def main():
# 支援自然語言或鬆散 JSON
res = await engine.execute({
"message": "Please bill Wayne Corp for 500 dollars urgently",
"customer": "Wayne Corp",
"amount": 500,
"currency": "USD"
})
print(res.data)
if __name__ == "__main__":
asyncio.run(main())
🧪 執行測試與演示
# 執行全套 pytest 測試
PYTHONPATH=python pytest python/tests/ -v
# 執行端到端生命週期演示
PYTHONPATH=python python3 python/examples/demo_lifecycle.py
Release files for jit-protocol 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jit_protocol-1.2.0.tar.gz | 16.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jit_protocol-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.7 kB
Release files / jit_protocol-1.2.0.tar.gz
| Download URL | jit_protocol-1.2.0.tar.gz |
|---|---|
| Size | 16.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c2128d31fd16293ad4681aff6321ecaf84d7c38e50ff26cd0a07712c8037fb71
|
|
BLAKE2b-256 checksum How to use checksums |
877ea9dfde5cc662527fcb601f6e367d6de9a52f8ae22177a5a4e4a756f780fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / jit_protocol-1.2.0-py3-none-any.whl
| Download URL | jit_protocol-1.2.0-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20d31a822f122705c07967285ba542dde2a32589ab5c10e26d66f22d13bceecc
|
|
BLAKE2b-256 checksum How to use checksums |
b71a4037cc2d5020ebf6e25c97f01157c633d5235d6be1675ea8cf2525f99d3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|