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.