Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

voyage-law-2

Voyage AI voyage-law-2 on Pinecone: 1024-dim legal-domain embeddings with 16k-token context for legal document retrieval and contract RAG.

```python theme={null}
!pip install -qU voyageai pinecone
```

### **Create Index**

```python theme={null}
from pinecone import Pinecone, ServerlessSpec

pc = Pinecone(api_key="API_KEY")

# Create Index
index_name = "voyage-law-2"

if not pc.has_index(index_name):
    pc.create_index(
        name=index_name,
        dimension=1024,
        metric="cosine",
        spec=ServerlessSpec(
            cloud="aws",
            region="us-east-1"
        )
    )

index = pc.Index(index_name)
```

### **Embed & Upsert**

```python theme={null}
# Embed data
data = [
    {"id": "vec1", "text": "The plaintiff alleges breach of contract and seeks damages for financial losses incurred."},
    {"id": "vec2", "text": "This Agreement shall commence on the Effective Date and remain in force unless terminated earlier."},
    {"id": "vec3", "text": "Apple Inc. is named in a class-action lawsuit alleging monopolistic practices in its App Store policies."},
    {"id": "vec4", "text": "All disputes arising under this Agreement shall be resolved through binding arbitration in accordance with applicable laws."},
    {"id": "vec5", "text": "The parties hereby agree to maintain confidentiality regarding any proprietary information shared."},
]

import voyageai

vo = voyageai.Client(api_key=VOYAGE_API_KEY)

model_id = "voyage-law-2"

def embed(docs: list[str], input_type: str) -> list[list[float]]:
    embeddings = vo.embed(
		    docs,
		    model=model_id,
		    input_type=input_type
		).embeddings
    return embeddings

# Use "document" input type for documents
embeddings = embed([d["text"] for d in data], input_type="document")

vectors = []
for d, e in zip(data, embeddings):
    vectors.append({
        "id": d['id'],
        "values": e,
        "metadata": {'text': d['text']}
    })

index.upsert(
    vectors=vectors,
    namespace="ns1"
)
```

### **Query**

```python theme={null}
query = "Tell me about the tech company known as Apple"

# Use "query" input type for queries
x = embed([query], input_type="query")

results = index.query(
    namespace="ns1",
    vector=x[0],
    top_k=3,
    include_values=False,
    include_metadata=True
)

print(results)
```

Lorem Ipsum

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu