Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

sensoris/semcache-python

Repository files navigation

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 server
  • timeout (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 cache
  • data (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 errors
  • SemcacheConnectionError: Raised when unable to connect to the server
  • SemcacheTimeoutError: Raised when a request times out
  • SemcacheAPIError: 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.

About

Python library for the Semcache API

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /