AlisChain SDK Documentation¶
Overview¶
The AlisChain SDK provides easy-to-use interfaces for interacting with the AlisChain platform in multiple programming languages.
Python SDK¶
Installation¶
pip install alischain-sdk
Basic Usage¶
from alischain import AlisChainClient
# Initialize client
client = AlisChainClient('YOUR_API_KEY')
# Submit a claim
claim = client.submit_claim(
text="This is a claim",
sources=["https://source1.com"],
category="news"
)
# Check claim status
status = client.get_claim_status(claim.id)
Advanced Features¶
Async Support¶
import asyncio
from alischain.async_client import AsyncAlisChainClient
async def process_claims():
client = AsyncAlisChainClient('YOUR_API_KEY')
# Submit multiple claims
claims = await asyncio.gather(*[
client.submit_claim(text=f"Claim {i}")
for i in range(10)
])
# Process results
for claim in claims:
print(f"Claim {claim.id}: {claim.status}")
asyncio.run(process_claims())
WebSocket Integration¶
from alischain import WebSocketClient
async def handle_updates(update):
if update.type == 'claim_update':
print(f"Claim {update.claim_id} status: {update.status}")
elif update.type == 'verification_request':
result = await process_verification(update.claim_id)
await client.submit_verification(result)
client = WebSocketClient('YOUR_API_KEY')
client.subscribe(['claims', 'verifications'], callback=handle_updates)
client.connect()
Batch Operations¶
from alischain import AlisChainClient
client = AlisChainClient('YOUR_API_KEY')
# Batch claim submission
results = client.batch_submit_claims([
{"text": "Claim 1", "sources": ["source1"]},
{"text": "Claim 2", "sources": ["source2"]},
])
# Batch verification
verifications = client.batch_verify_claims([
{"claim_id": "id1", "verdict": True},
{"claim_id": "id2", "verdict": False},
])
JavaScript/TypeScript SDK¶
Installation¶
npm install @alischain/sdk
Basic Usage¶
import { AlisChain } from '@alischain/sdk';
// Initialize client
const client = new AlisChain('YOUR_API_KEY');
// Submit a claim
const claim = await client.claims.create({
text: "This is a claim",
sources: ["https://source1.com"],
category: "news"
});
// Check status
const status = await client.claims.getStatus(claim.id);
Advanced Features¶
Real-time Updates¶
import { WebSocketClient } from '@alischain/sdk';
const ws = new WebSocketClient('YOUR_API_KEY');
ws.on('claim_update', (update) => {
console.log('Claim update:', update);
});
ws.on('verification_request', async (request) => {
const result = await processVerification(request);
await ws.sendVerification(result);
});
ws.connect();
React Integration¶
import { useAlisChain } from '@alischain/react';
function ClaimComponent({ claimId }) {
const { claim, loading, error } = useAlisChain(
client => client.claims.get(claimId)
);
if (loading) return <Loading />;
if (error) return <Error message={error.message} />;
return <ClaimDisplay claim={claim} />;
}
Error Handling¶
import { AlisChainError } from '@alischain/sdk';
try {
const claim = await client.claims.create({
text: "Test claim"
});
} catch (error) {
if (error instanceof AlisChainError) {
switch (error.code) {
case 'rate_limit_exceeded':
await sleep(1000);
retry();
break;
case 'invalid_input':
showValidationError(error.details);
break;
default:
console.error('Unexpected error:', error);
}
}
}
Java SDK¶
Installation¶
<dependency>
<groupId>com.alischain</groupId>
<artifactId>alischain-sdk</artifactId>
<version>1.0.0</version>
</dependency>
Basic Usage¶
import com.alischain.sdk.AlisChainClient;
// Initialize client
AlisChainClient client = new AlisChainClient("YOUR_API_KEY");
// Submit claim
Claim claim = client.claims()
.create(new ClaimRequest.Builder()
.text("This is a claim")
.source("https://source1.com")
.build());
// Check status
ClaimStatus status = client.claims().getStatus(claim.getId());
Advanced Features¶
Async Operations¶
import com.alischain.sdk.async.AsyncAlisChainClient;
AsyncAlisChainClient client = new AsyncAlisChainClient("YOUR_API_KEY");
CompletableFuture<Claim> futureResult = client.claims()
.createAsync(new ClaimRequest.Builder()
.text("Async claim")
.build());
futureResult.thenAccept(claim -> {
System.out.println("Claim created: " + claim.getId());
});
SDK Examples¶
Content Verification System¶
from alischain import AlisChainClient
import asyncio
class ContentVerifier:
def __init__(self, api_key):
self.client = AlisChainClient(api_key)
async def verify_content(self, content):
# Submit for verification
claim = await self.client.submit_claim(
text=content,
category="content_verification"
)
# Wait for verification
while True:
status = await self.client.get_claim_status(claim.id)
if status.is_final:
return status.verified
await asyncio.sleep(1)
Real-time Dashboard¶
import { WebSocketClient } from '@alischain/sdk';
class DashboardManager {
constructor(apiKey) {
this.ws = new WebSocketClient(apiKey);
this.stats = {
claims: 0,
verifications: 0,
accuracy: 0
};
}
initialize() {
this.ws.on('claim_update', this.handleClaimUpdate);
this.ws.on('verification_update', this.handleVerification);
this.ws.on('system_status', this.handleSystemStatus);
this.ws.connect();
}
handleClaimUpdate(update) {
this.stats.claims++;
this.updateUI();
}
updateUI() {
// Update dashboard UI
}
}
Batch Processing System¶
import com.alischain.sdk.AlisChainClient;
import com.alischain.sdk.models.*;
public class BatchProcessor {
private final AlisChainClient client;
private final Queue<ClaimRequest> queue;
public BatchProcessor(String apiKey) {
this.client = new AlisChainClient(apiKey);
this.queue = new ConcurrentLinkedQueue<>();
}
public void addToQueue(ClaimRequest request) {
queue.add(request);
if (queue.size() >= 100) {
processBatch();
}
}
private void processBatch() {
List<ClaimRequest> batch = new ArrayList<>();
for (int i = 0; i < 100 && !queue.isEmpty(); i++) {
batch.add(queue.poll());
}
client.claims().batchCreate(batch)
.thenAccept(this::handleResults);
}
}
Last update:
2024-12-08