A Python client library for Semcache
pip install semcache
from semcache import Semcache
# Initialize the client
client = Semcache(base_url="http://localhost:8080")
# Store a key-data pair
client.put("What is the capital of France?", "Paris")
# Retrieve data by semantic similarity
response = client.get("What's the capital city of France?")
print(response) # "Paris"
The above snippet requires a running Semcache server. You can start one using Docker:
docker run -p 8080:8080 ghcr.io/sensoris/semcache:latest
client = Semcache(
base_url="http://localhost:8080", # Semcache server URL
timeout=30, # Request timeout in seconds
)
from semcache import Semcache
# Create a client instance
client = Semcache()
# Store some key-data pairs
client.put("What is Python?", "Python is a high-level programming language")
client.put("What is machine learning?", "Machine learning is a subset of AI that enables systems to learn from data")
# Retrieve data - exact match not required
response = client.get("Tell me about Python")
print(response) # "Python is a high-level programming language"
from semcache import Semcache, SemcacheConnectionError, SemcacheTimeoutError
client = Semcache(base_url="http://localhost:8080", timeout=5)
try:
client.put("test query", "test response")
except SemcacheConnectionError:
print("Failed to connect to Semcache server")
except SemcacheTimeoutError:
print("Request timed out")
Initialize a new Semcache client.
Parameters:
base_url
(str): The base URL of the Semcache servertimeout
(int): Request timeout in seconds
Store a key-data pair in the cache.
Parameters:
key
(str): The key/query to cachedata
(str): The data/response to cache
Raises:
SemcacheError
: If the request fails
Retrieve cached data for a key using semantic similarity.
Parameters:
key
(str): The key/query to look up
Returns:
Optional[str]
: The cached data if found, None otherwise
Raises:
SemcacheError
: If the request fails
SemcacheError
: Base exception for all Semcache errorsSemcacheConnectionError
: Raised when unable to connect to the serverSemcacheTimeoutError
: Raised when a request times outSemcacheAPIError
: Raised when the API returns an error response
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
pytest
black src tests
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a pull request.