Documentation Index
Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Exa is a neural search engine that uses embeddings to find semantically similar content. It’s particularly good at finding content that matches the meaning of your query.
Installation
pip install "praisonai[tools]"
Environment Variables
export EXA_API_KEY=your_api_key_here
Get your API key from Exa.
Quick Start
from praisonai_tools import ExaTool
# Initialize
exa = ExaTool()
# Search
results = exa.search("best practices for Python development")
print(results)
Usage with Agent
from praisonaiagents import Agent
from praisonai_tools import ExaTool
agent = Agent(
name="Researcher",
instructions="You are a research assistant. Use Exa to find relevant content.",
tools=[ExaTool()]
)
response = agent.chat("Find articles about machine learning best practices")
print(response)
Available Methods
search(query, num_results=10)
Search for content using neural search.
from praisonai_tools import ExaTool
exa = ExaTool()
results = exa.search("transformer architecture explained", num_results=5)
# Returns:
# [
# {"title": "...", "url": "...", "snippet": "...", "score": 0.95},
# ...
# ]
find_similar(url, num_results=10)
Find content similar to a given URL.
similar = exa.find_similar("https://example.com/article", num_results=5)
get_contents(urls)
Get full content from URLs.
contents = exa.get_contents(["https://example.com/article1", "https://example.com/article2"])
Configuration Options
exa = ExaTool(
api_key="your_key", # Optional: defaults to EXA_API_KEY
use_autoprompt=True, # Auto-optimize queries
type="neural" # "neural" or "keyword"
)
Function-Based Usage
from praisonai_tools import exa_search
# Quick search without instantiating class
results = exa_search("AI safety research", num_results=5)
CLI Usage
# Set API key
export EXA_API_KEY=your_key
# Use with praisonai
praisonai --tools ExaTool "Find articles about reinforcement learning"
Error Handling
from praisonai_tools import ExaTool
exa = ExaTool()
results = exa.search("my query")
if results and "error" in results[0]:
print(f"Error: {results[0]['error']}")
else:
for r in results:
print(f"- {r['title']}: {r['url']}")
Common Errors
| Error | Cause | Solution |
|---|
EXA_API_KEY not configured | Missing API key | Set environment variable |
exa not installed | Missing dependency | Run pip install exa-py |
Rate limited | Too many requests | Add delays between requests |