SUTRA with PydanticAI


SUTRA by TWO Platforms
SUTRA is a family of large multi-lingual language models (LMLMs) pioneered by Two Platforms. SUTRA’s dual-transformer approach extends the power of both MoE and Dense AI language model architectures, delivering cost-efficient multilingual capabilities for over 50+ languages. It powers scalable AI applications for conversation, search, and advanced reasoning, ensuring high-performance across diverse languages, domains and applications.
PydanticAI
PydanticAI is a Python agent framework designed to make it less painful to build production grade applications with Generative AI.
Get Your API Keys
Before you begin, make sure you have:
- A SUTRA API key (Get yours at TWO AI's SUTRA API page)
- Basic familiarity with Python and Jupyter notebooks
This notebook is designed to run in Google Colab, so no local Python installation is required.
SUTRA using PydanticAI
Install Requirements
# Install required packages
!pip install "pydantic-ai-slim[openai]" --quiet
Setup API Keys 🔑
import os
from google.colab import userdata
# Set the API key from Colab secrets
os.environ["SUTRA_API_KEY"] = userdata.get("SUTRA_API_KEY")
Initialize Sutra Model via PydanticAI
import os
import nest_asyncio
import asyncio
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIModel
from pydantic_ai.providers.openai import OpenAIProvider
# Required for running async in Colab
nest_asyncio.apply()
# ⚙️ Model Configuration
sutra_provider = OpenAIProvider(
base_url="https://api.two.ai/v2",
api_key=os.environ["SUTRA_API_KEY"]
)
sutra_v2 = OpenAIModel("sutra-v2", provider=sutra_provider)
sutra_r0 = OpenAIModel("sutra-r0", provider=sutra_provider)
v2_agent = Agent(sutra_v2)
r0_agent = Agent(sutra_r0)
Multilingual Content Generation
async def run_content_generation():
print("🌐 Multilingual Content Generation\n")
examples = {
"Hindi": "Write a short story about a robot in Hindi",
"Tamil": "Write a motivational speech for students in Tamil",
"Japanese": "Write a haiku about spring in Japanese",
"Arabic": "Write a children's story in Arabic",
"French": "Write a paragraph about climate change in French"
}
for lang, prompt in examples.items():
result = await v2_agent.run(prompt)
print(f"\n[{lang}]\n{result.output}\n")
await run_content_generation()
Multilingual Translation
async def run_translation():
print("🌐 Multilingual Translation\n")
phrases = [
"Knowledge is power",
"The world is beautiful",
"Unity in diversity"
]
target_languages = ["Telugu", "Spanish", "Russian", "Chinese", "Swahili"]
for phrase, lang in zip(phrases, target_languages):
prompt = f"Translate this to {lang}: '{phrase}'"
result = await v2_agent.run(prompt)
print(f"\nTo {lang}:\n{result.output}")
await run_translation()
Reasoning Capabilities
async def run_reasoning():
print("🧠 Logical and Mathematical Reasoning\n")
# Logical reasoning in Greek
logic_prompt = """
Premise 1: All birds can fly.
Premise 2: Penguins are birds.
Conclusion: Penguins can fly.
Is this argument valid? Explain in Greek.
"""
result = await r0_agent.run(logic_prompt)
print(f"\n[Logical Reasoning in Greek]\n{result.output}")
# Math reasoning in German
math_prompt = "Solve step by step and explain in German: If 3x + 6 = 21, what is x?"
result = await r0_agent.run(math_prompt)
print(f"\n[Math Reasoning in German]\n{result.output}")
await run_reasoning()
Code Generation in Multilingual Explanation
async def run_code_gen():
print("💻 Code Generation with Explanation in Polish\n")
prompt = "Write a Python function to check for prime number and explain in Polish"
result = await v2_agent.run(prompt)
print(result.output)
await run_code_gen()