sdk_documentation - fleXRPL/contractAI GitHub Wiki
Complete guide to using the ContractAI SDK
This document provides comprehensive documentation for the ContractAI SDK, including installation, usage, and integration patterns.
graph TD
A[SDK Core] --> B[Client]
A --> C[Models]
A --> D[Utils]
A --> E[Services]
B --> B1[REST Client]
B --> B2[WebSocket]
B --> B3[Streaming]
C --> C1[Data Models]
C --> C2[Request/Response]
C --> C3[Validation]
D --> D1[Auth]
D --> D2[Retry]
D --> D3[Logging]
E --> E1[Agent Service]
E --> E2[Knowledge Service]
E --> E3[System Service]
graph TD
A[contractai-sdk] --> B[Core]
A --> C[Extensions]
A --> D[Examples]
B --> B1[client.py]
B --> B2[models.py]
B --> B3[utils.py]
C --> C1[async_client.py]
C --> C2[streaming.py]
C --> C3[webhook.py]
D --> D1[basic_usage.py]
D --> D2[advanced_usage.py]
D --> D3[integration.py]
sequenceDiagram
participant Dev as Developer
participant PyPI as PyPI
participant Env as Environment
participant SDK as SDK
Dev->>PyPI: pip install contractai-sdk
PyPI->>Env: Download Package
Env->>Env: Install Dependencies
Env->>SDK: Initialize
SDK->>Dev: Ready to Use
graph TD
A[Client] --> B[Configuration]
A --> C[Connection]
A --> D[Operations]
B --> B1[API Key]
B --> B2[Environment]
B --> B3[Options]
C --> C1[Session]
C --> C2[Retry]
C --> C3[Timeout]
D --> D1[CRUD]
D --> D2[Query]
D --> D3[Stream]
graph TD
A[Models] --> B[Base]
A --> C[Agent]
A --> D[Knowledge]
B --> B1[Entity]
B --> B2[Response]
B --> B3[Error]
C --> C1[AgentConfig]
C --> C2[AgentStatus]
C --> C3[AgentMetrics]
D --> D1[Document]
D --> D2[Search]
D --> D3[Analysis]
sequenceDiagram
participant App as Application
participant SDK as SDK
participant API as API
App->>SDK: Initialize Client
Note over App,SDK: client = ContractAIClient(api_key="...")
App->>SDK: Create Agent
SDK->>API: POST /agents
API->>SDK: Agent Created
SDK->>App: Agent Instance
sequenceDiagram
participant App as Application
participant SDK as SDK
participant API as API
participant Stream as Stream
App->>SDK: Initialize Client
App->>SDK: Configure Options
App->>SDK: Create Agent
SDK->>API: POST /agents
API->>SDK: Agent Created
App->>SDK: Start Stream
SDK->>Stream: Connect
Stream->>App: Events
graph TD
A[Sync Integration] --> B[Client]
A --> C[Operations]
A --> D[Error Handling]
B --> B1[Initialize]
B --> B2[Configure]
B --> B3[Connect]
C --> C1[Create]
C --> C2[Read]
C --> C3[Update]
D --> D1[Try/Catch]
D --> D2[Retry]
D --> D3[Log]
graph TD
A[Async Integration] --> B[Client]
A --> C[Operations]
A --> D[Event Loop]
B --> B1[AsyncClient]
B --> B2[Configure]
B --> B3[Connect]
C --> C1[Async Create]
C --> C2[Async Read]
C --> C3[Async Update]
D --> D1[Tasks]
D --> D2[Callbacks]
D --> D3[Error Handling]
sequenceDiagram
participant App as Application
participant SDK as SDK
participant API as API
App->>SDK: Initialize
SDK->>SDK: Load API Key
App->>SDK: Make Request
SDK->>API: Add Auth Header
API->>SDK: Validate
SDK->>App: Response
graph TD
A[Retry] --> B[Policy]
A --> C[Backoff]
A --> D[Conditions]
B --> B1[Max Attempts]
B --> B2[Timeout]
B --> B3[Interval]
C --> C1[Exponential]
C --> C2[Jitter]
C --> C3[Max Delay]
D --> D1[Network]
D --> D2[Server]
D --> D3[Rate Limit]
sequenceDiagram
participant App as Application
participant SDK as SDK
participant Stream as Stream
participant API as API
App->>SDK: Start Stream
SDK->>API: Connect
API->>Stream: Establish
loop Events
Stream->>SDK: Event
SDK->>App: Callback
end
App->>SDK: Stop Stream
SDK->>Stream: Close
sequenceDiagram
participant App as Application
participant SDK as SDK
participant API as API
App->>SDK: Create Agent
Note over App,SDK: agent = client.agents.create(<br/>name="LegalAgent",<br/>type="legal"<br/>)
SDK->>API: POST /agents
API->>SDK: Agent Created
SDK->>App: Agent Instance
App->>SDK: Configure Agent
SDK->>API: PUT /agents/{id}
API->>SDK: Updated
SDK->>App: Updated Agent
App->>SDK: Start Agent
SDK->>API: POST /agents/{id}/start
API->>SDK: Started
SDK->>App: Running Agent
sequenceDiagram
participant App as Application
participant SDK as SDK
participant API as API
App->>SDK: Add Document
Note over App,SDK: doc = client.knowledge.add_document(<br/>content="...",<br/>type="contract"<br/>)
SDK->>API: POST /knowledge/documents
API->>SDK: Document Added
SDK->>App: Document Instance
App->>SDK: Search
SDK->>API: GET /knowledge/search
API->>SDK: Results
SDK->>App: Search Results
App->>SDK: Analyze
SDK->>API: POST /knowledge/analyze
API->>SDK: Analysis
SDK->>App: Analysis Results
graph TD
A[Best Practices] --> B[Performance]
A --> C[Security]
A --> D[Reliability]
B --> B1[Connection Pool]
B --> B2[Batch Operations]
B --> B3[Caching]
C --> C1[API Key]
C --> C2[HTTPS]
C --> C3[Validation]
D --> D1[Error Handling]
D --> D2[Retry Logic]
D --> D3[Monitoring]
graph TD
A[Error Handling] --> B[Types]
A --> C[Strategies]
A --> D[Logging]
B --> B1[API Errors]
B --> B2[Network]
B --> B3[Validation]
C --> C1[Retry]
C --> C2[Fallback]
C --> C3[Circuit Breaker]
D --> D1[Error Log]
D --> D2[Metrics]
D --> D3[Alerts]
graph TD
A[Metrics] --> B[Performance]
A --> C[Usage]
A --> D[Errors]
B --> B1[Latency]
B --> B2[Throughput]
B --> B3[Resource]
C --> C1[Requests]
C --> C2[Operations]
C --> C3[Concurrency]
D --> D1[Error Rate]
D --> D2[Retry Rate]
D --> D3[Timeout Rate]
sequenceDiagram
participant App as Application
participant SDK as SDK
participant Logger as Logger
App->>SDK: Configure Logger
SDK->>Logger: Initialize
loop Operations
App->>SDK: Operation
SDK->>Logger: Log
Logger->>Logger: Format
Logger->>App: Event
end
Need help with the SDK? Contact our SDK team at [email protected] or visit our SDK Portal
- Install the SDK
- Configure authentication
- Create your first agent
- Explore advanced features
- Implement best practices
- Monitor usage