SERPHouse AI SDK — search API tools for LangChain and LlamaIndex
Project description
SERPHouse AI SDK
Python SDK for the SERPHouse search API — with first-class integrations for LangChain and LlamaIndex.
Drop live Google, Bing, and Yahoo search data into your AI agents. No boilerplate, no custom API clients — just import, configure, and let your agent search the web.
Table of Contents
- Why SERPHouse AI SDK
- Installation
- Quick Start
- API Key
- Tools Reference
- Advanced Usage
- Development
- Contributing
- License
Why SERPHouse AI SDK
| Zero boilerplate | Two lines to add web search, news, or video results to any LangChain or LlamaIndex agent |
| Framework-native | Functions return standard StructuredTool / FunctionTool objects — no wrappers, no adapters |
| Live SERP data | Every call hits the SERPHouse API in real time. No cached or stale results. |
| Production-ready | Built on requests and pydantic with typed schemas, configurable timeouts, and clear error handling |
Installation
pip install serphouse-ai-sdk
With framework extras:
pip install serphouse-ai-sdk[langchain]
pip install serphouse-ai-sdk[llamaindex]
pip install serphouse-ai-sdk[all] # both frameworks
Quick Start
Set the SERPHOUSE_API_KEY environment variable (or pass it per tool).
LangChain
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
from serphouse.langchain import search, news, short_video
agent = create_agent(
model=ChatOpenAI(model="gpt-4"),
tools=[search(), news(), short_video()],
)
response = agent.invoke({
"messages": [{"role": "user", "content": "Latest AI news from OpenAI"}]
})
print(response["messages"][-1].content)
LlamaIndex
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
from serphouse.llamaindex import search, news, short_video
agent = FunctionAgent(
llm=OpenAI(model="gpt-4"),
tools=[search(), news(), short_video()],
)
response = agent.run("Latest AI news from OpenAI")
print(response)
API Key
Get your key at serphouse.com and choose one of:
| Method | Example |
|---|---|
| Environment variable (recommended) | export SERPHOUSE_API_KEY=your_key_here |
| Per-tool options dict | search({"api_key": "your_key_here"}) |
| SERPHouseClient | SERPHouseClient(api_key="your_key_here") |
Tools Reference
| Tool | Framework | Endpoint | Description |
|---|---|---|---|
search() |
LangChain, LlamaIndex | /web-search-lite |
General web search |
news() |
LangChain, LlamaIndex | /google-news |
Google News search |
short_video() |
LangChain, LlamaIndex | /google-short-videos-api |
Google Short Videos (Shorts) |
All tools accept the following parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
q |
str |
— | Search query (required) |
domain |
str |
google.com |
Search domain |
lang |
str |
en |
Search language code |
loc |
str |
New York,New York,United States |
Location (City,State,Country) |
device |
str |
desktop |
desktop or mobile |
page |
int |
— | Page number |
date_range |
str |
y |
h (hour), d (24h), w (week), m (month), y (year), or YYYY-MM-DD,YYYY-MM-DD |
gl |
str |
US |
Country code (ISO 3166-1 alpha-2, search only) |
video_quality |
str |
high |
Video quality (short_video only) |
Advanced Usage
Custom API key per tool
from serphouse.langchain import search
tool = search({"api_key": "your-key"})
SERPHouseClient
Use the raw client directly for custom integrations:
from serphouse import SERPHouseClient
client = SERPHouseClient(api_key="your-key")
result = client.post("/web-search-lite", {"q": "python sdk"})
print(result)
Development
# Clone and enter the repo
git clone https://github.com/serphouse/ai-sdk.git
cd ai-sdk
# Create a virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in editable mode with all dev dependencies
pip install -e ".[test]"
# Run tests
pytest tests -v
# Run only unit tests (skip OpenAI integration tests)
pytest tests -v -k "not Integration"
# Run integration tests (requires OPENAI_API_KEY)
OPENAI_API_KEY=sk-... pytest tests -v -k "Integration"
Contributing
Contributions are welcome. Please keep changes focused and match existing code style.
git checkout -b feature/your-feature
pip install -e ".[test]"
# make changes
pytest tests -v
git commit -m "Add your feature"
git push origin feature/your-feature
Then open a Pull Request. Update this README if you change setup or configuration.
License
MIT License — Copyright SERPHouse.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file serphouse_ai_sdk-0.1.1.tar.gz.
File metadata
- Download URL: serphouse_ai_sdk-0.1.1.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07d2edec835278869deb277e72481ebcd0f056c19ef87cce7a0429cc12dbf7ba
|
|
| MD5 |
e4eda3d34d7f5530e8887657f56bdda2
|
|
| BLAKE2b-256 |
f830a12f5744eac6f45ad2cbc4eb80a6da5651752a8069752b9d09917cbb0787
|
File details
Details for the file serphouse_ai_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: serphouse_ai_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a20e06068171baafea4a0fa3a04143526ec6d3a5e44d8408fc7bee7b8e6a1a9d
|
|
| MD5 |
cab920827ab690e457c685721fa7fcc9
|
|
| BLAKE2b-256 |
2f6b157caee76e10c1bbe1c8ac388b431f97eca5c6765b24f5e0c1a8ae1d29ce
|