Python SDK

Official Python SDK for TalonAI - integrate AI security into your Python applications.

Installation

pip install talonai

Quick Start

from talonai import TalonAI

# Initialize the client
talon = TalonAI()  # Uses TALONAI_API_KEY env var

# Analyze content for threats
result = talon.analyze(content="Hello, can you help me?")

print(f"Risk Score: {result.risk_score}")
print(f"Is Safe: {result.is_safe}")
print(f"Threats: {result.threats}")

OpenAI Integration

from talonai import TalonAI
from openai import OpenAI

talon = TalonAI()
openai = OpenAI()

def safe_chat(user_message: str) -> str:
    # Analyze input
    analysis = talon.analyze(content=user_message)

    if not analysis.is_safe:
        raise ValueError(f"Blocked: {analysis.block_reason}")

    # Safe to proceed
    response = openai.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": user_message}]
    )

    # Analyze output
    output_analysis = talon.analyze(
        content=response.choices[0].message.content,
        direction="output"
    )

    if output_analysis.pii_detected:
        return talon.redact(response.choices[0].message.content)

    return response.choices[0].message.content

Async Support

from talonai import AsyncTalonAI
import asyncio

async def main():
    talon = AsyncTalonAI()

    result = await talon.analyze(content="Hello world")
    print(result.risk_score)

asyncio.run(main())

FastAPI Middleware

from fastapi import FastAPI, Request, HTTPException
from talonai import TalonAI

app = FastAPI()
talon = TalonAI()

@app.middleware("http")
async def security_middleware(request: Request, call_next):
    if request.method == "POST":
        body = await request.json()
        if "message" in body:
            result = talon.analyze(content=body["message"])
            if not result.is_safe:
                raise HTTPException(403, "Request blocked")

    return await call_next(request)

API Reference

Key methods:

  • talon.analyze(content) - Analyze content for threats
  • talon.protect(content) - Analyze and optionally redact
  • talon.redact(content) - Redact PII from content
  • talon.policies.list() - List all policies
  • talon.policies.create() - Create a policy