Skip to main content

llama-index embeddings isaacus integration

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_index_embeddings_isaacus-0.2.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file llama_index_embeddings_isaacus-0.2.0.tar.gz.

File metadata

  • Download URL: llama_index_embeddings_isaacus-0.2.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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}

File hashes

Hashes for llama_index_embeddings_isaacus-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4d040701500f126975c3f297fae4bffc4720c81f23a4a0cb26107bdee957dec8
MD5 27f7970796e039286ec91bd19726dc65
BLAKE2b-256 fd5338981d5028871ae9177975b2a3186ddae2e3daa09db27171aefa03f69b63

See more details on using hashes here.

File details

Details for the file llama_index_embeddings_isaacus-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: llama_index_embeddings_isaacus-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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}

File hashes

Hashes for llama_index_embeddings_isaacus-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79b27ec39a29e5c7f6c6d8df2abf2e0cca13a8434db61b832d3febcc029e5868
MD5 a24248d6aca42327a91a24ea13fc9b84
BLAKE2b-256 0942d3a71545dd1d281e6a5f7a2e99ddb8e95fb2fc630cc2a7212f0679b27824

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page