Skip to main content

Isaacus Embeddings

The llama-index-embeddings-isaacus package contains LlamaIndex integrations for building applications with Isaacus' legal AI embedding models. This integration allows you to easily connect to and use state-of-the-art legal embeddings via the Isaacus API.

Installation

pip install llama-index
pip install llama-index-embeddings-isaacus

Setup

1. Create an Isaacus Account

Head to the Isaacus Platform to create a new account.

2. Add Payment Method and Get API Key

Once signed up, add a payment method to claim your free credits.

After adding a payment method, create a new API key.

Make sure to keep your API key safe. You won't be able to see it again after you create it. But don't worry, you can always generate a new one.

3. Export Configuration Variables

Export your API key as an environment variable:

export ISAACUS_API_KEY="your-api-key-here"

Usage

Basic Usage

from llama_index.embeddings.isaacus import IsaacusEmbedding

# Initialize the Isaacus Embedding model
# This uses the ISAACUS_API_KEY environment variable
embedding_model = IsaacusEmbedding()

# Get a single embedding
embedding = embedding_model.get_text_embedding("Legal document text here")
print(f"Embedding dimension: {len(embedding)}")

# Get embeddings for multiple texts
texts = ["Contract clause 1", "Contract clause 2", "Legal precedent"]
embeddings = embedding_model.get_text_embedding_batch(texts)
print(f"Number of embeddings: {len(embeddings)}")

Using Parameters

You can also pass parameters directly and customize the embedding behavior:

import os
from llama_index.embeddings.isaacus import IsaacusEmbedding

embedding_model = IsaacusEmbedding(
    model="kanon-2-embedder",  # Currently the only model available
    api_key=os.getenv("ISAACUS_API_KEY"),
    dimensions=1792,  # Optional: reduce dimensionality
    task="retrieval/document",  # Optimize for document retrieval
    timeout=60.0,
)

print(embedding_model.get_text_embedding("Legal text to embed"))

Query vs Document Embeddings

Isaacus embeddings support task-specific optimization. Use task="retrieval/query" for search queries and task="retrieval/document" for documents:

from llama_index.embeddings.isaacus import IsaacusEmbedding

# For documents
doc_embedder = IsaacusEmbedding(task="retrieval/document")
doc_embedding = doc_embedder.get_text_embedding("This is a legal document.")

# For queries (this is the default for get_query_embedding)
query_embedder = IsaacusEmbedding()
query_embedding = query_embedder.get_query_embedding(
    "Find documents about contracts"
)

Async Usage

The integration also supports async operations:

import asyncio
from llama_index.embeddings.isaacus import IsaacusEmbedding


async def get_embeddings_async():
    embedding_model = IsaacusEmbedding()

    # Get async embeddings
    embedding = await embedding_model.aget_text_embedding("Legal text here")
    embeddings = await embedding_model.aget_text_embedding_batch(
        ["Text 1", "Text 2"]
    )

    return embedding, embeddings


# Run async function
result = asyncio.run(get_embeddings_async())
print(result)

Runnable Examples

See the ./examples directory for more, runnable examples.

Running an Example

cd examples
uv run python basic_usage.py

Integration with LlamaIndex

from llama_index.core import VectorStoreIndex, Settings
from llama_index.embeddings.isaacus import IsaacusEmbedding
from llama_index.llms.openai import OpenAI
from llama_index.core import Document

# Set the LLM
llm = OpenAI()
Settings.llm = llm

# Set the Isaacus embedding model globally
Settings.embed_model = IsaacusEmbedding()

# Create documents
documents = [
    Document(text="This is a contract clause about payment terms."),
    Document(text="This is a contract clause about termination."),
]

# Create a vector index
index = VectorStoreIndex.from_documents(documents)

# Query the index
query_engine = index.as_query_engine(
    llm=llm, response_mode="compact", similarity_top_k=5
)
response = query_engine.query("What are the payment terms?")
print(response)

Available Models

Currently, Isaacus offers the following embedding model:

For more information about Isaacus models, see the Isaacus documentation.

Error Handling

The integration includes proper error handling for common issues:

  • Missing API key
  • Invalid API configuration
  • Network errors
  • API errors

Configuration Options

Parameter Type Default Description
model str "kanon-2-embedder" The embedding model to use
api_key str os.getenv("ISAACUS_API_KEY") The API key for Isaacus
base_url str "https://api.isaacus.com/v1" The base URL for Isaacus API
dimensions int None (model default) Optional: reduce embedding dimensionality
task str None Task type: "retrieval/query" or "retrieval/document"
overflow_strategy str "drop_end" Strategy for handling overflow: "drop_end" or None
timeout float 60.0 Timeout for requests in seconds
embed_batch_size int 100 Batch size for embedding calls

Environment Variables

Variable Description
ISAACUS_API_KEY The API key for Isaacus (required)
ISAACUS_BASE_URL The base URL for Isaacus API (optional)

Testing

Run the test suite:

uv run -- pytest

Run with coverage:

uv run -- pytest --cov=llama_index tests/

Additional Information

For more information about Isaacus and its legal AI models:

License

This project is licensed under the MIT License.

Metadata

Release files for llama-index-embeddings-isaacus 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llama-index-embeddings-isaacus 0.3.0
File Size Uploaded Provenance Actions
llama_index_embeddings_isaacus-0.3.0.tar.gz 7.2 kB Without provenance Details for llama_index_embeddings_isaacus-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for llama-index-embeddings-isaacus 0.3.0
File Interpreter ABI Platform Actions
llama_index_embeddings_isaacus-0.3.0-py3-none-any.whl Python 3 none any Details for llama_index_embeddings_isaacus-0.3.0-py3-none-any.whl

Total release size: 14.1 kB

Release files / llama_index_embeddings_isaacus-0.3.0.tar.gz

Download URL llama_index_embeddings_isaacus-0.3.0.tar.gz
Size 7.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7d82b1663a84750f6a38ab0eef1377556305ec3fa190b22b17958afe5e50fa8b
BLAKE2b-256 checksum
How to use checksums
094c25fd16abb140fdc40be2770910a36f96d058f20431973d013fa305c9db8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / llama_index_embeddings_isaacus-0.3.0-py3-none-any.whl

Download URL llama_index_embeddings_isaacus-0.3.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7e8522a8cf4a1ab26eed67e97606f8de4949db6288de49c882aaa8974a7ae01
BLAKE2b-256 checksum
How to use checksums
b85a53142f1b78aa9c79a502896d98960ed980c27e3453bccbfbab0a629d5708
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for llama-index-embeddings-isaacus 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page