A Python library for the Semcache API
Project description
Semcache Python SDK
A Python client library for Semcache
Installation
pip install semcache
Quick Start
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
Configuration
client = Semcache(
base_url="http://localhost:8080", # Semcache server URL
timeout=30, # Request timeout in seconds
)
Usage Examples
Basic Usage
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"
Error Handling
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")
API Reference
Semcache(base_url="http://localhost:8080", timeout=30)
Initialize a new Semcache client.
Parameters:
base_url(str): The base URL of the Semcache servertimeout(int): Request timeout in seconds
put(key: str, data: str) -> None
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
get(key: str) -> Optional[str]
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
Exceptions
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
Development
Setup Development Environment
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
Run Tests
pytest
Format Code
black src tests
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a pull request.
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 semcache-0.1.0.tar.gz.
File metadata
- Download URL: semcache-0.1.0.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ce98e173892b41cb65f1ab0cb6e7c6ba0b60f2c047e565c0eb658f718c11df
|
|
| MD5 |
4f233e3e069c967a0b0d87383fc744f3
|
|
| BLAKE2b-256 |
7ba9eaa41d1c24c1837c9ed1c616d7b1d6c1317a1df977e5b7eda4cad2ca2881
|
File details
Details for the file semcache-0.1.0-py3-none-any.whl.
File metadata
- Download URL: semcache-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d753f16705a1552728635c64c668f86941a7c80299dab30d515bdb6c70a2a674
|
|
| MD5 |
f5a45d3d871f9086ccccce13040f1ee5
|
|
| BLAKE2b-256 |
a25b100d8dacf1dcc85de645d0970681c6c252979a4990dc788bd2a200934f26
|